ak95 Napisano Sierpień 31, 2015 Udostępnij Napisano Sierpień 31, 2015 Mój projekt to nadajnik i odbiornik do np. samochodu RC. Oparty o arduino (w tym przypadku nano), moduł nRF24L01 i sterownik silnika (np. L293). Steruje jednym silnikiem DC oraz jednym serwem. Ma możliwość regulacji zakresu prędkości silnika, jak i zakresu serwa. Uważam, iż projekt jest bardzo przydatny, gdyż sam zaczynając przygodę z komunikacją radiową na module nRF miałem spore problemy. W szkicu arduino korzystam z bibliotek RF24 oraz standardowej Servo. Odbiornik #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <Servo.h> //const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe const byte rxAddr[6] = "00001"; RF24 radio(7, 8); //pin CE i CS short joystick[2]; bool stan12=0; Servo myservo; int pos = 45; int a=0; void setup() { myservo.attach(10); // podlaczamy serwo do pinu 10 radio.begin(); radio.openReadingPipe(0,rxAddr); radio.startListening(); pinMode(5,OUTPUT); // pin do silnika pinMode(6,OUTPUT); //pin do silnika pinMode(9,OUTPUT); // pin PWM silnika pinMode(10,OUTPUT); //pin do serwa } void loop() { if ( radio.available() ) { bool done = false; while (!done) { radio.read( joystick, sizeof(joystick) ); a=joystick[0]; pos=joystick[1]; if(a>129) { digitalWrite(5,LOW); digitalWrite(6,HIGH); analogWrite(9,a); } else if(a<125) { digitalWrite(5,HIGH); digitalWrite(6,LOW); analogWrite(9,255-a); } else { digitalWrite(5,LOW); digitalWrite(6,LOW); } myservo.write(pos); } } else { Serial.println("No radio available"); delay(1000); } } Nadajnik #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> //const uint64_t pipe = 0xE8E8F0F0E1LL; const byte rxAddr[6] = "00001"; RF24 radio(7, 8); short joystick[2]; void setup() { radio.begin(); radio.setRetries(15, 2); radio.openWritingPipe(rxAddr); radio.stopListening(); pinMode(A0,INPUT); //joystick do regulacji predkosci silnika pinMode(A1,INPUT); //joystick do regulacji skretu serwa pinMode(A2,INPUT); //potencjometr do regulacji zakresu predkosci silnika pinMode(A3,INPUT); //potencjometr do regulacji zakresu skretu serwa } void loop() { short amax=map(analogRead(A2),0,1023,150,255); short posmax=map(analogRead(A3),0,1023,0,30); short a=map(analogRead(A0),0,1023,0,amax); short pos=map(analogRead(A1),0,1023,30-posmax,60+posmax); joystick[0]=a; joystick[1]=pos; radio.write( joystick, sizeof(joystick) ); } Link do komentarza Share on other sites More sharing options...
slawko_k Marzec 8, 2017 Udostępnij Marzec 8, 2017 Jaki zasięg osiągnąłeś? Ja zrobiłem nadajniczek na nrf wsadziłem do najtańszego pada i też sterowałem różnymi zabawkami. Ale zasięg to 4-5m o ile nic nie przysłoni. Mizeria Link do komentarza Share on other sites More sharing options...
Sabre Marzec 12, 2017 Udostępnij Marzec 12, 2017 slawko_k, wczoraj zrobiłem podobny projekt z tym, że soft w Bascomie ze strony mcselec Zasięg jaki uzyskałem w mieszkaniu przeszedł moje oczekiwania. Spokojnie wszystko działa przez 2 ściany żelbetonowe w bloku z sypialni do salonu. I to na modułach z antenami tymi na płytce 🙂 bez jakiejś specjalnej troski o orientację modułów względem siebie. Moduł nadawał na 0dB. Pytanie czy lutowaliście kondensator na module na pinach zasilania. Trzeba do nich dolutować 4,7uF, ja dolutowałem ceramiczny 10uF bo akurat taki miałem pod ręką. Bez tego kondensatora ponoć są właśnie problemy, ja najpierw go dolutowałem i nie miałem żadnych problemów. Ja robię dla mojego synka aparaturę na nich. Może jak skończę to wrzucę projekt na forum 🙂. Link do komentarza Share on other sites More sharing options...
slawko_k Marzec 12, 2017 Udostępnij Marzec 12, 2017 Ja korzystałem z jakiejś gotowej biblioteki pod arduino. Nie ma tam chyba opcji żeby moc wybrać. Działało to nie wnikałem. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
hashpl Kwiecień 18, 2017 Udostępnij Kwiecień 18, 2017 Witam. Czy mógłbyś wrzucić schemat podłączenia nadajnika?? Nie bardzo rozumiem ta linijkę kodu "bool stan12=0" Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »