Skocz do zawartości

belkocik

Użytkownicy
  • Zawartość

    22
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O belkocik

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  1. Mam taki multimetr: https://botland.com.pl/pl/mierniki-uniwersalne/5151-miernik-uniwersalny-dpm-dt9205a-5906881199107.html Moglbys mi wytlumaczyc jaki ma to zwiazek z tym pomiarem?
  2. Ten l298n wzialem bo mam go pod reka, a trzeba troche pocwiczyc na starociach zeby zrozumiec co i jak, a pozniej wloze tam tb6612 i tb9051 i bede wiedzial co robic. Jeszcze tb6612 nie mam przy sobie tylko tb9051 tak wiec bede dzialal jak przyjdzie i dam znac czy mi sie udalo Edit: @marek1707 @ethanak Mam juz tb6612.Podpialem do niego jeden silnik i oto co otrzymalem: przy wypelenieniu = 150 jest 4V na silniku / 180 =5V / 210=6V. Zwiekszajac co 30 mam ok. 1V w gore. Najgorsze jest to ze zostal mi jeden pin pwm i na nim musze ustawic odpowiednie wypelnienie aby bylo 6V na dwoch mostkach h. Teraz mi pozostaje tylko podlaczyc drugi silnik do tb6612 i dolozyc ten drugi mostek h i zbadac na nim napiecie i ustawic tak pwm aby nie przekraczalo 6V na dwoch mostkach. Pewnie ten tb6612 ma wiekszy spadek od tego DRV tak jak pisales i na nim bedzie 6V a na tym tb6612 mniejsze. Jakbym mial jeszcze jeden wolny pin pwm to bym ustawil na dwoch te 6V
  3. Chcialbym aby na wyjsciu bylo to 6V i chce sie upewnic ze tam jest zanim podlacze tam silnik 6V. Dobra czyli w taki sposob to robic zasilanie mostka = napiecie na wyjsciusilnika? Jest juz tam uwzgledniony spadek napiecia na mostku? Podpialem l298n do pakietu 2s i zasilanie mostka = 8V. Akumulatory maja 8,2V. Czyli: 75 procent z 8V to 6V. 75 procent z 255 to 191,25. Ustawiam wypelenienie 191,25 na pinie 3 i bedzie to 6V na wyjsciu silnika'? A co ze spadkiem napiecia na mostku?
  4. Mam pytanie jak zmierzyc napiecie sterowane pwmem na wyjsciach silnika w mostku H? Podpialem wszystko tak jak nalezy lecz na wyjsciu silnika na mostku h jak przykladam sondy to nic nie pokazuje. Rozumiem ze musze tam jakies obciazenie podpiac? Silnik boje sie podpiac bo jak ustawilem za duze wypelnienie to sie zjara. W takim wypadku prykrecic tam na chwile rezystor z jak najnizsza rezystancja jaka bede mial i zmierzyc jego napiecie (mam rezystor 100 ohmow)? Dopisalem taka linijke do kodu w celu sprawdzenia tego napiecia: #define PWM_PIN 3 void setup() { pinMode(PWM_PIN, OUTPUT); analogWrite(PWM_PIN, 170); } 70 procent z 8,4V = 5.88V 70 procent z 255 = 178.5 Dobrze to licze? Chcialbym 6V na wyjsciu, tylko jak to sprawdzic czy rzeczywiscie tyle jest na wyjsciu? Macie jakis patent jak to zmierzyc?
  5. Zakupilem co trzeba. Tak to ma byc podlaczone? Bedzie podpiety do tego pakietu 2s2p ten bms: https://abc-rc.pl/product-pol-7891-Modul-BMS-PCM-PCB-ladowania-i-ochrony-ogniw-Li-ion-2S-8-4V-5A-18650.html Moge ten niebieski przewod od wtyczki xh przylutowac bezposrednio do pada <BM>? Tak jak na zdjeciu nr 2?
  6. Z gory dziekuje za zainteresowanie sie tematem i pomoc bo widac ze chcesz pomagac poczatkujacym. Dobra w takim razie robie 2s2p i dam jakas mala przetwornice 5V na logike bo akurat mam . Tylko teraz jak to ladowac i jaka wtyczke wstawic w obudowe do ladowania tych akumulatorow? Nie mam ladowarki sieciowej do ladowania takiego pakietu w takim razie co mi radzisz zeby kupic? Jest taka ladowarka sieciowa, ale do Li-Pol - jest o wiele tansza: https://botland.com.pl/pl/ladowarki-lipol-sieciowe/1446-ladowarka-li-pol-imax-b3-pro-z-balanserem.html slyszlaem ze mozna ja przerobnic zeby mozna bylo ladowac li ion, ale czy gra warta swieczki jak nie wiem jak to zrobic? (gdzies widzialem ostatnio temat w sieci o tym, ale nie moge teraz znalezc) Druga opcja jest kupienie takiego cuda: https://botland.com.pl/pl/ladowarki-lipol-sieciowe/1832-ladowarka-lipo-life-liion-nimh-nicd-z-balanserem-gpx-greenbox.html albo https://botland.com.pl/pl/ladowarki-lipol-sieciowe/9347-ladowarka-li-pol-li-ion-li-fe-ni-cd-ni-mh-z-balanserem-imax-b6-czujnik-temperatury.html? Albo co innego polecisz bo za bardzo nie wiem co wybrac. Tylko teraz kwestia jaka wtyczke zenska mam wstawic w obudowie zeby mozna bylo to ladowac i jak podlaczyc ten pakiet 2s2p do tej wtyczki??
  7. To jak inaczej mam rozwiazac ladowanie jesli chcialbym zrobic pakiet 3s - musialbym kupic i przerobic ladowarke modelarska (wlozenie jej do srodka tez wchodzi w gre, ale miejsca brak) lub ladowac poprzez zasilacz llaboratoryjny.
  8. @marek1707 Juz tak mam ze mnie ciezko zrozumiec Dziekuje bardzo za porady. Odnosnie zasilania to rozdzielilem akusy tak aby mozna bylo latwo je ladowac - 2x18650 beda na boku obudowy w koszyczku z dolutowanym bmsem gdzie bedzie pokrywka do sciagniecia, a nastepnie mozna wyjac latwo akusy i wlozyc je do ladowarki dla akumulatorow 18650. Odnosnie zasilania logiki to bedzie to 1x 18650 z modulem do ladowania przez micro usb (TP4056). Dlatego przy tym zasilaniu logiki zastouje przetwornice step up do 5V (MT3608) powinno byc ok? Odnosnie kontrolowania stanu silnikow to wystarczy taki czujnik temperatury przyczepiony do silnika mg 996R?: https://botland.com.pl/pl/czujniki-temperatury/165-czujnik-temperatury-ds18b20-cyfrowy-1-wire-tht.html i do tego buzzer jak przekroczy jakos tam temperature - tylko ile stopni Celsjusza ustawic zeby syrena wyła :D? Mysle ze tylko jeden czujnik wystarczy do tego silnika? Dwa pozostale silniki odpowiedzialne za ruch przod tyl nie beda dostawaly tak po tylku jak ten mg 996R. Chce aby to bylo latwe do zrobienia. A co by dala kontrola obrotow silnika i jak ja mniej wiecej wykonac to poczytam i moze sie skusze. Co do tego mostka h to ten bedzie dobry dla tego mg996r?: https://botland.com.pl/pl/sterowniki-silnikow-moduly/12059-pololu-tb9051ftg-jednokanalowy-sterownik-silnikow-28v26a.html PWM z silnikow bedzie podpiety do 5V z arduino tak wiec ciagle pelne obroty. Wole sie dopytac jesli: silnik ma napiecie zasilania 6V, a mam sterownik silnika ktory ma zasilanie silników(VMOT): od 4,5 V do 13,5 V to bezpiecznie moge podac tam 13,5V jesli mam podpiety tam silnik ktorego napiecie zasilania to 6V? Mostek H dobiera odpowiednie napiecie dla danego silnika wtedy? Tak wiec smialo moge podpiac 2x18650 bezposrednio do mostka bez przetwornicy ktora obnizala by napiecie do 6V - tak jak wspomniales
  9. Przepraszam ze tak pozno. Serwo przerobione na silnik zostalo podpeite do l293d w celu wstepnego napisania programu do sterowania oraz nauki co do czego lecz teraz jest problem bo chcialbym dobrac sterownik zeby wykorzystywal prawie caly potencjal z tego serwa. Serwo to MG 996R - wczytalem ze pobiera 2A przy zablokowanym wale - 500mA bez obciazenia. Do orczyka ktore jest przupomocowane do serwa bedzie przykrecony swider na ktorym beda lopatki ktore beda mialy za zadanie wyrzucanie lisci/galazek na zewnatrz rynny, tak wiec troche mocy potrzebuje. Zasilanie to 2x 18650 z przetwornica step down do 6V podlaczone do silnikow. Te dwa silniki odpowiedzialne ze ruch przod tyl beda podpeite do TB6612. Teraz napotkalem problem co zrobie z tym mg 996r. Mam malo miejsca w obudowie tak wiec musze upchac sterownik na plytce uniwersalnej, tak wiec ten Pololu DRV8838 bylby dobrym rozwiazaniem. Myslalem nad l298n - ma on 2A na kanal, lecz raczej go nie upcham w obudowie jakos sensownie i do tego jest dwukanalowy lecz to chyba nie problem bo tam jest 2A na kanal, a nie przy polaczonych kanalach? Moze jeszcze wspomne ze odzielne bedzie zasilalanie do logiki - 1x 18650 z przetwornica step up ustawiona na 5V na wyjsciu. edit: zamowilem jeszcze taki l298n w wersji "mini" do lutowania. Ma 1,5A na kanal tak wiec tez moze byc dobry - doda sie jakis radiator i powinno byc dobrze? https://pl.aliexpress.com/item/32854762955.html?spm=a2g0s.9042311.0.0.73725c0fChAoGz
  10. Czesc. Ma ktos ten sterownik: https://botland.com.pl/pl/sterowniki-silnikow-dc/2695-pololu-drv8838-jednokanalowy-sterownik-silnikow-11v17a.html --- Pololu DRV8838? Chcialbym sie dowiedziec jaki ma spadek napiecia na mostku. Napisalem do botlandu lecz oni tez nie wiedza - w nocie katalogowej nie ma takiej informacji. Bawil sie ktos tym sterownikiem? Z gory dzieki.
  11. Tresc z monitoru portu szereowego: 19:11:45.517 -> CheckConnection Starting 19:11:45.517 -> 19:11:45.517 -> FIRST WITH THE DEFAULT ADDRESSES after power on 19:11:45.550 -> Note that RF24 does NOT reset when Arduino resets - only when power is removed 19:11:45.618 -> If the numbers are mostly 0x00 or 0xff it means that the Arduino is not 19:11:45.721 -> communicating with the nRF24 19:11:45.755 -> 19:11:45.755 -> STATUS = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0 19:11:45.821 -> RX_ADDR_P0-1 = 0x0000000000 0x0000000000 19:11:45.855 -> RX_ADDR_P2-5 = 0x00 0x00 0x00 0xff 19:11:45.889 -> TX_ADDR = 0xffffffffff 19:11:45.924 -> RX_PW_P0-6 = 0xff 0x00 0x00 0x00 0x00 0x00 19:11:45.992 -> EN_AA = 0x00 19:11:45.992 -> EN_RXADDR = 0x00 19:11:46.026 -> RF_CH = 0x00 19:11:46.026 -> RF_SETUP = 0x00 19:11:46.060 -> CONFIG = 0x00 19:11:46.060 -> DYNPD/FEATURE = 0x00 0x00 19:11:46.095 -> Data Rate = 1MBPS 19:11:46.129 -> Model = nRF24L01 19:11:46.129 -> CRC Length = Disabled 19:11:46.164 -> PA Power = PA_MIN 19:11:46.199 -> 19:11:46.199 -> 19:11:46.199 -> AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1 19:11:46.268 -> and 250KBPS data rate 19:11:46.268 -> 19:11:46.268 -> STATUS = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0 19:11:46.336 -> RX_ADDR_P0-1 = 0x0000000000 0x0000000000 19:11:46.403 -> RX_ADDR_P2-5 = 0x00 0x00 0x00 0xff 19:11:46.436 -> TX_ADDR = 0xffffffffff 19:11:46.469 -> RX_PW_P0-6 = 0xff 0x00 0x00 0x00 0x00 0x00 19:11:46.503 -> EN_AA = 0x00 19:11:46.536 -> EN_RXADDR = 0x00 19:11:46.536 -> RF_CH = 0x00 19:11:46.571 -> RF_SETUP = 0x00 19:11:46.571 -> CONFIG = 0x00 19:11:46.605 -> DYNPD/FEATURE = 0x00 0x00 19:11:46.638 -> Data Rate = 1MBPS 19:11:46.638 -> Model = nRF24L01 19:11:46.672 -> CRC Length = Disabled 19:11:46.705 -> PA Power = PA_MIN 19:11:46.705 -> 19:11:46.705 -> po wgraniu tego kodu do sprawdzania polaczenia pomiedzy arduino a nrfem ( w tym przypadku joystick shield + arduino i nrf. Jest duzo tych 0x00 wiec cos jest nie tak. // 18 Mar 2018 - simple program to verify connection between Arduino // and nRF24L01+ // This program does NOT attempt any communication with another nRF24 #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <printf.h> #define CE_PIN 9 #define CSN_PIN 10 const byte thisSlaveAddress[5] = {'R','x','A','A','A'}; RF24 radio(CE_PIN, CSN_PIN); char dataReceived[10]; // this must match dataToSend in the TX bool newData = false; void setup() { Serial.begin(9600); printf_begin(); Serial.println("CheckConnection Starting"); Serial.println(); Serial.println("FIRST WITH THE DEFAULT ADDRESSES after power on"); Serial.println(" Note that RF24 does NOT reset when Arduino resets - only when power is removed"); Serial.println(" If the numbers are mostly 0x00 or 0xff it means that the Arduino is not"); Serial.println(" communicating with the nRF24"); Serial.println(); radio.begin(); radio.printDetails(); Serial.println(); Serial.println(); Serial.println("AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1"); Serial.println(" and 250KBPS data rate"); Serial.println(); radio.openReadingPipe(1, thisSlaveAddress); radio.setDataRate( RF24_250KBPS ); radio.printDetails(); Serial.println(); Serial.println(); } void loop() { } A tutaj sam nrf i arduino: 19:17:14.033 -> CheckConnection Starting 19:17:14.033 -> 19:17:14.033 -> FIRST WITH THE DEFAULT ADDRESSES after power on 19:17:14.101 -> Note that RF24 does NOT reset when Arduino resets - only when power is removed 19:17:14.168 -> If the numbers are mostly 0x00 or 0xff it means that the Arduino is not 19:17:14.271 -> communicating with the nRF24 19:17:14.304 -> 19:17:14.304 -> STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 19:17:14.372 -> RX_ADDR_P0-1 = 0x3130303030 0x4141417852 19:17:14.405 -> RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 19:17:14.438 -> TX_ADDR = 0xe7e7e7e7e7 19:17:14.472 -> RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00 19:17:14.539 -> EN_AA = 0x3f 19:17:14.539 -> EN_RXADDR = 0x02 19:17:14.572 -> RF_CH = 0x4c 19:17:14.572 -> RF_SETUP = 0x01 19:17:14.606 -> CONFIG = 0x0e 19:17:14.606 -> DYNPD/FEATURE = 0x00 0x00 19:17:14.640 -> Data Rate = 1MBPS 19:17:14.674 -> Model = nRF24L01+ 19:17:14.674 -> CRC Length = 16 bits 19:17:14.674 -> PA Power = PA_MIN 19:17:14.708 -> 19:17:14.708 -> 19:17:14.708 -> AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1 19:17:14.775 -> and 250KBPS data rate 19:17:14.775 -> 19:17:14.775 -> STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 19:17:14.842 -> RX_ADDR_P0-1 = 0x3130303030 0x4141417852 19:17:14.911 -> RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 19:17:14.946 -> TX_ADDR = 0xe7e7e7e7e7 19:17:14.981 -> RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00 19:17:15.016 -> EN_AA = 0x3f 19:17:15.051 -> EN_RXADDR = 0x02 19:17:15.051 -> RF_CH = 0x4c 19:17:15.086 -> RF_SETUP = 0x21 19:17:15.086 -> CONFIG = 0x0e 19:17:15.121 -> DYNPD/FEATURE = 0x00 0x00 19:17:15.154 -> Data Rate = 250KBPS 19:17:15.154 -> Model = nRF24L01+ 19:17:15.187 -> CRC Length = 16 bits 19:17:15.221 -> PA Power = PA_MIN 19:17:15.221 -> 19:17:15.221 -> EDIT: Zmienilem joystick shield na inny bo mam drugi i przesyla dane (wczesniej zrobiilem ten test i nie bylo duzo tych 0x00. Boze ale mam przeboje. Wszystko dziala tak jak nalezy - winny byl joystick shield. Na cale szczescie mialem zapasowy.
  12. Zaczalem od komunikacje pomiedzy dwoma nrfami. Wgralem kod do sprawdzania z robotbloga (nie wiem czy moge kopiowac, ale skopiowalem zeby nie trzeba bylo wchodzic): kod nadajnika #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #define CE_PIN 9 #define CSN_PIN 10 #define JOYSTICK_X A0 #define JOYSTICK_Y A1 const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int joystick[6]; int upbut = 2; int rightbut = 3; int downbut = 4; int leftbut = 5; void setup() { Serial.begin(9600); radio.begin(); radio.openWritingPipe(pipe); pinMode(upbut,INPUT); digitalWrite(upbut,LOW); pinMode(rightbut,INPUT); digitalWrite(upbut,LOW); pinMode(downbut,INPUT); digitalWrite(downbut,LOW); pinMode(leftbut,INPUT); digitalWrite(leftbut,LOW); } void loop() { joystick[0] = analogRead(JOYSTICK_X); joystick[1] = analogRead(JOYSTICK_Y); joystick[2] = digitalRead(upbut); joystick[3] = digitalRead(rightbut); joystick[4] = digitalRead(downbut); joystick[5] = digitalRead(leftbut); radio.write( joystick, sizeof(joystick) ); Serial.print("X = "); Serial.print(analogRead(JOYSTICK_X)); Serial.print(" Y = "); Serial.print(analogRead(JOYSTICK_Y)); Serial.print(" Y = "); Serial.print(" Up = "); Serial.print(digitalRead(upbut)); Serial.print(" Right = "); Serial.print(digitalRead(rightbut)); Serial.print(" Down = "); Serial.print(digitalRead(downbut)); Serial.print(" Left = "); Serial.println(digitalRead(leftbut)); } kod odbiornika: #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define CE_PIN 9 #define CSN_PIN 10 const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int joystick[6]; void setup() { Serial.begin(9600); delay(1000); Serial.println("START"); radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening();; } void loop() { if ( radio.available() ) { bool done = false; while (!done) { done = radio.read( joystick, sizeof(joystick) ); int joystickX = map(joystick[0],0,1023,0,180); int joystickY = map(joystick[1],0,1023,0,180); int upbut = joystick[2]; int rightbut = joystick[3]; int downbut = joystick[4]; int lefttbut = joystick[5]; Serial.print("X = "); Serial.print(joystickX); Serial.print(" Y = "); Serial.print(joystickY); Serial.print(" Up = "); Serial.print(joystick[2]); Serial.print(" Right = "); Serial.print(joystick[3]); Serial.print(" Down = "); Serial.print(joystick[4]); Serial.print(" Left = "); Serial.println(joystick[5]); delay(15); } } else { Serial.println("Nie znaleziono nadajnika"); } } Do tego zmienilem linijke: void loop() { if ( radio.available() ) { bool done = false; while (!done) { done = radio.read( joystick, sizeof(joystick) ); int joystickX = map(joystick[0],0,1023,0,180); int joystickY = map(joystick[1],0,1023,0,180); (...) na void loop() { if ( radio.available() ) { radio.read( joystick, sizeof(joystick) ); int joystickX = map(joystick[0],0,1023,0,180); int joystickY = map(joystick[1],0,1023,0,180); (...) bo nie chcialo sie kompilowac i to rozwiazanie znalazlem w sieci: https://forum.arduino.cc/index.php?topic=302380.0 I pozniej w monitorze portu szeregowego nadajnika pokazuje mi te wspolrzedne joysticka i zmieniaja sie przy zmianie polozenia joysticka oraz stany na przyciskach. Z drugiej strony w monitorze portu szeregowego odbiornika wyskakuje ze "nie znaleziono nadajnika" i jak ruszam to nie pokazuje wspolrzednych joysticka i stanow na przyciskach podczas klikania jak w przypadku nadajnika. Juz nie wiem co robic kompletnie.
  13. Przechylam joystick w osi y na przod -> ponad 600 = 0 reakcji ze strony silnikow, tak samo w druga strone. Ide pokombinowac z tym zasilaniem. https://drive.google.com/open?id=1-HuTl9_AoYUIMBWx9DNJNppB8HiJU4-C Czasami cos przycina i te wartosci powoli sie pojawiaja gdy zmieniam polozenie joysticka.
  14. Na wstepie dziekuje, ze sie zainteresowales tematem bo to dla mnie bardzo wazne W zalaczniku jest schemat. Mam nadzieje ze jest czytelny. Zasilanie 6V z jest wpiete do gniazda zasilajacego 2.1/5.5 w arduino. Czyta pozycje joysticka jak przechylam w tyl i przod. Jest warunek, jesli zadnych z tych nie jest spelniony to silniki nie kreca sie (jak joystick jest na srodku): else{ digitalWrite(OUT1,0); digitalWrite(OUT2,0); digitalWrite(OUT3,0); digitalWrite(OUT4,0); } Czy raczej zrobic to tak?: if ( 300 < Y < 350) { digitalWrite(OUT1,0); digitalWrite(OUT2,0); digitalWrite(OUT3,0); digitalWrite(OUT4,0); } No coz ide dalej testowac.
  15. Czesc. Zmontowalem sobie uklad ktory bedzie sterowal silnikami: przod i tyl. Program wgrany do nadajnika i odbiornika, ladnie pieknie wszystko pokazane w monitorze portu szergowego, ze pozycje joysticka sa odczytane lecz silniki nie ruszaja sie. Moze mi ktos wytlumaczyc dlaczego tak sie dzieje? Zasilanie 2x 18650 przetwornica wyregulowane na 6V - silniki + arduino uno/ joystick shield + uno - zasilanie z portu usb. Silniki normalne kreca sie podpiete jak na schemacie i podanie tych wartosci co w kodzie, ale bez nrfa i joysticka wiec sa sprawne oraz mostek h. Sprawdzalem tez na innym joystick shieldzie i tez tez nie dziala Czasami mi w terminalu takie cos wyskakuje (zalacznik) To nie sa bledy? RF24 wersja 1.1.6 Kod Nadajnika (joystick shield+ uno): #include <SPI.h> #include "RF24.h" #define ce 9 #define csn 10 RF24 myRadio (ce, csn); byte addresses[][6] = {"0"}; struct package { int X=1; int Y=1; }; typedef struct package Package; Package data; void setup() { Serial.begin(115200); delay(100); myRadio.begin(); myRadio.setChannel(115); myRadio.setPALevel(RF24_PA_MIN); myRadio.setDataRate( RF24_250KBPS ) ; myRadio.openWritingPipe( addresses[0]); delay(100); } void loop() { myRadio.write(&data, sizeof(data)); Serial.print("X:"); Serial.print(data.X); Serial.print(" Y"); Serial.println(data.Y); data.X = analogRead(A0); data.Y = analogRead(A1); delay(100); } Kod odbiornika (uno + silniki): #include <SPI.h> #include "RF24.h" #define ce 9 #define csn 10 RF24 myRadio (ce, csn); struct package { int X=351; int Y=328; }; byte addresses[][6] = {"0"}; int OUT1 = 5; int OUT2 = 6; int OUT3 = 7; int OUT4 = 8; typedef struct package Package; Package data; void setup() { Serial.begin(115200); delay(1000); myRadio.begin(); myRadio.setChannel(115); myRadio.setPALevel(RF24_PA_MAX); myRadio.setDataRate( RF24_250KBPS ) ; myRadio.openReadingPipe(1, addresses[0]); myRadio.startListening(); pinMode(OUT1, OUTPUT); pinMode(OUT2, OUTPUT); pinMode(OUT3, OUTPUT); pinMode(OUT4, OUTPUT); } void loop() { if ( myRadio.available()) { while (myRadio.available()) { myRadio.read( &data, sizeof(data) ); } Serial.print("X:"); Serial.print(data.X); Serial.print(" Y"); Serial.println(data.Y); int X = data.X; int Y = data.Y; if(Y>400){ digitalWrite(OUT1,1); digitalWrite(OUT2,0); digitalWrite(OUT3,0); digitalWrite(OUT4,1); }else if(Y<200){ digitalWrite(OUT1,0); digitalWrite(OUT2,1); digitalWrite(OUT3,1); digitalWrite(OUT4,0); } else{ digitalWrite(OUT1,0); digitalWrite(OUT2,0); digitalWrite(OUT3,0); digitalWrite(OUT4,0); } } }
×
×
  • Utwórz nowe...