mateusz797 Napisano Luty 5, 2021 Udostępnij Napisano Luty 5, 2021 (edytowany) 1. Program na odczyt kodow z pilota #define TSOP_PIN 13 #include <RC5.h> RC5 rc5(TSOP_PIN); //Informacja o podłączeniu odbiornika TSOP //Zmienne dla RC5 byte address; byte command; byte toggle; void setup() { Serial.begin(9600); } void loop() { //Jeśli odebrano komendę if (rc5.read(&toggle, &address, &command)) { Serial.print("A:"); Serial.print(address); Serial.print(" K:"); Serial.print(command); Serial.print(" T:"); Serial.println(toggle); } } 2.Program do sterujacy robotem przez podczerwień #include <RC5.h> int TSOP_PIN = 13; // def.PIN odbiornika RC5 rc5(TSOP_PIN); //Informacja o podłączeniu odbiornika TSOP byte address; byte command; byte toggle; const int IN1 = 7; const int IN2 = 6; const int IN3 = 4; const int IN4 = 5; const int ENA = 11; const int ENB = 3; // Piny silników void setup() { pinMode (IN1, OUTPUT); pinMode (IN2, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); pinMode (ENA, OUTPUT); pinMode (ENB, OUTPUT); // ust.silnikow jako wyjscia } void przod() { digitalWrite (IN1, LOW); digitalWrite (IN2, HIGH); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); analogWrite (ENA, 150); analogWrite (ENB, 150); } void lewo() { digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); analogWrite (ENA, 150); analogWrite (ENB, 150); } void prawo() { digitalWrite (IN1, LOW); digitalWrite (IN2, HIGH); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); analogWrite (ENA, 150); analogWrite (ENB, 150); } void tyl() { digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); analogWrite (ENA, 150); analogWrite (ENB, 150); } void stop() { digitalWrite (IN1, LOW); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); analogWrite (ENA, 0); analogWrite (ENB, 0); } void loop() { if (rc5.read(&toggle, &address, &command)){ switch(command) { case 2: //Do przodu przod(); break; case 4: //Do tyłu lewo(); break; case 6: //STOP prawo(); break; case 8: //Obrót w lewo tyl(); break; case 0: stop(); break; } } } 3. Podpowiedz jest taka ze dla innego programu mi wyswietla takie cos. drugi raz napisalem program podobny, ale chce zeby dla standardu kodowania RC5 mi wczytywało. Pod kodem efekt, tylko podkreslam ze miesiac temu mi dzialalo normalnie dla programu nr 1. czyli standard RC5 A nagle przestalo dzialac, wpisalem inny kod i cos odbiera. ale rozne sygnaly.Co tutaj sie stało ze miesiac pozniej nie odbiera mi dla RC5 tylko dla jakiegos innego programu? #include <IRremote.h> #define irPin 13 IRrecv irrecv(irPin); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.print("0x"); Serial.println(results.value, HEX); delay(250); irrecv.resume(); } } image.thumb.png.82a8c08a7e13801604f17f8de9e1bc95.pngimage.thumb.png.81ee8e1464243bfdd51ced5082bc76a7.png W ponizszym folderze sa zapisane dwa programy - efekt jest taki ze robot przed miesiacem normalnie dzialal teraz nagle nie reaguje na wcisniecia przycisku. Kupilem nowe odbiorniki podczerw ieni jak widac w poscie. image.thumb.png.f96afb242772bfa8f89762324946e666.pngimage.thumb.png.bfb9eaf4f19be59f5f297f79d10985ce.png Edytowano 5 godzin temu przez mateusz797 Edytowano Luty 8, 2021 przez Gieneq Link do komentarza Share on other sites More sharing options...
PowerTGS440 Luty 6, 2021 Udostępnij Luty 6, 2021 (edytowany) Spróbuj załączonych bibliotek i poniższego kodu. Biblioteki bezpośrednio do katalogu ze sketchem. Zwracane kody to liczby całkowite z przedziału 0 - 255, więc może będzie CI prościej temat ogarnąć. Biblioteki pochodzą od chińczyka, były dedykowane dla takiego urządzenia RichUNO - dla syna kupiłem bo kabelków mu się nie chciało podłączać. Często te ich biblioteki mi problemy same rozwiązywały - czy to odtwarzacz mp3, czy wyświetlacz, czy to termometr, w załączniku cały ich pakiecik ci mi kiedyś podesłali, może się kiedyś przydadzą. #include "RichUNOIRremote.h"; #define PilotPIN 11 IRrecv PILOT(PilotPIN); void setup() { PILOT.enableIRIn(); Serial.begin(9600); } void loop() { Pilot(); } void Pilot() { if (PILOT.decode()) { if(PILOT.isReleased()) { { Serial.print(F("Odczyt z pilota !!! Kod to : ")); Serial.println(PILOT.keycode); } delay(100); } PILOT.resume(); } } nazwy zdefiniowane są tu (RichUNOIRremote.h) jak by ci nie pasowały i nie były takie same to zamienisz /*IR remote control key code table*/ #define KEY_POWER 0x45 #define KEY_MENU 0x47 #define KEY_TEST 0x44 #define KEY_PLUS 0x40 #define KEY_BACK 0x43 #define KEY_PREV 0x07 #define KEY_PLAY 0x15 #define KEY_NEXT 0x09 #define KEY_ZERO 0x16 #define KEY_MINUS 0x19 #define KEY_C 0x0D #define KEY_ONE 0x0C #define KEY_TWO 0x18 #define KEY_THREE 0x5E #define KEY_FOUR 0x08 #define KEY_FIVE 0x1C #define KEY_SIX 0x5A #define KEY_SEVEN 0x42 #define KEY_EIGHT 0x52 #define KEY_NINE 0x4A /*-----------------------------------*/ A na końcu switch do obsługi pilota i już void loop() { if (IR.decode()) {//If decode is valid if(IR.isReleased())// { switch(IR.keycode) { case KEY_PLUS: break; case KEY_MINUS: break; case KEY_PLAY: break; case KEY_PREV: break; case KEY_NEXT: break; case KEY_ONE: break; case KEY_TWO: break; default: break; } delay(100); } IR.resume(); // Receive the next value } } RUNOIRremote.zip Arduino libraries for Rich UNO R3.rar Edytowano Luty 6, 2021 przez PowerTGS440 Link do komentarza Share on other sites More sharing options...
mateusz797 Luty 6, 2021 Autor tematu Udostępnij Luty 6, 2021 Dziekuje za program ale kodow nie moge odczytac. Takie cuda wyswietla 1 Link do komentarza Share on other sites More sharing options...
PowerTGS440 Luty 6, 2021 Udostępnij Luty 6, 2021 (edytowany) no i jaki z tego wniosek ? w programie masz ustawione : Serial.begin(57600); a ty masz monitor portu szeregowego 9600 🙂 przestaw w monitorze na 57600 lub w programie : Serial.begin(9600); Ale wklej ten pierwszy program (kod w treści forum) bez tych ifów do SERIAL bo tak widzę o ile ArduinoPRO IDE toleruje klamry w #if #endif to zwykłe IDE coś się mota. Wklej i sprawdź - już tam nawet przestawiłem na 9600 Edytowano Luty 6, 2021 przez PowerTGS440 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
mateusz797 Luty 6, 2021 Autor tematu Udostępnij Luty 6, 2021 Podłączyłem plytke arduino. Testowalem rozne czujniki jak dzialaja. Niestety plytka sie juz nie świeci i nie odczytuje portu. Co moze byc przyczyną? Zdj ponizej Link do komentarza Share on other sites More sharing options...
PowerTGS440 Luty 6, 2021 Udostępnij Luty 6, 2021 Czemu testowałeś bez osobnego dodatkowe zasilania ? tam masz podejrzewam silniczki, itp itd. Nie wytrzymało poboru prądu wg. mnie Link do komentarza Share on other sites More sharing options...
mateusz797 Luty 6, 2021 Autor tematu Udostępnij Luty 6, 2021 Juz dziala normalnie. Jak odpialem czujnik podczerwieni tsop to zaczelo ponownie normalnie dzialac.ok testuje twoj program Link do komentarza Share on other sites More sharing options...
PowerTGS440 Luty 6, 2021 Udostępnij Luty 6, 2021 to widocznie coś z masą miałeś , ale na przyszłość i tak lepiej tak nie ryzykuj. Jak już są silniczki, servo, czujniki to lepiej zasilanie osobne podawać. Link do komentarza Share on other sites More sharing options...
mateusz797 Luty 6, 2021 Autor tematu Udostępnij Luty 6, 2021 takie co wyswietla sie jak klikam przyciski na pilocie - testowalem 1. program Link do komentarza Share on other sites More sharing options...
PowerTGS440 Luty 6, 2021 Udostępnij Luty 6, 2021 (edytowany) no a pod jaki port masz podpięty pilot ? #define PilotPIN 11 w definicji jest 11 , zmień na swój chociaż coś odczytuje bo reaguje Edytowano Luty 6, 2021 przez PowerTGS440 Link do komentarza Share on other sites More sharing options...
mateusz797 Luty 6, 2021 Autor tematu Udostępnij Luty 6, 2021 Zmienilem swoj na 13 i jak do 1. programu dodatem to drugie zdj to dalej zera wyswietla jak klikam rozne przyciski Link do komentarza Share on other sites More sharing options...
PowerTGS440 Luty 6, 2021 Udostępnij Luty 6, 2021 ale tego #define nie ma być w kodzie, to jest w bibliotece Link do komentarza Share on other sites More sharing options...
mateusz797 Luty 6, 2021 Autor tematu Udostępnij Luty 6, 2021 (edytowany) #include "RichUNOIRremote.h" #define PilotPIN 13 IRrecv PILOT(PilotPIN); void setup() { PILOT.enableIRIn(); Serial.begin(9600); } void loop() { Pilot(); } void Pilot() { if (PILOT.decode()) { if(PILOT.isReleased()) { { Serial.print(F("Odczyt z pilota !!! Kod to : ")); Serial.println(PILOT.keycode); } } PILOT.resume(); } } Ok mimo ze usunalem takie cos wyswietla Edytowano Luty 6, 2021 przez mateusz797 Link do komentarza Share on other sites More sharing options...
PowerTGS440 Luty 6, 2021 Udostępnij Luty 6, 2021 (edytowany) a co to w ogóle za odbiornik podczerwieni i pilot ? Spróbuj rózne piloty nawet do TV i zobacz czy odczyty i zwraca. Bo jak oddaje 0 to znaczy w sumie że go widzi ale nie rozpoznaje kodów. Edytowano Luty 6, 2021 przez PowerTGS440 Link do komentarza Share on other sites More sharing options...
mateusz797 Luty 6, 2021 Autor tematu Udostępnij Luty 6, 2021 (edytowany) Moduł KY-022 - odbiornik podczerwieni 1838 - 38kHz Botland - Sklep dla robotyków Pilot uniwersalny z kodowaniem RC5 Botland - Sklep dla robotyków Edytowano Luty 6, 2021 przez mateusz797 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ę »