Skocz do zawartości

Zdalne sterowanie z RC5


mateusz797

Pomocna odpowiedź

Czesc wszystkim,

Mam pytanie odnosnie kodu dla odbiornika podczerwieni. Miesiac temu robot normalnie mi dzialal dla ponizszych dwoch pierwszych kodow. Po miesiacu nagle nie reagowal na komendy. Z tego co widze to dla 3 programu odbiornik odczytuje mi nastepujace kody, jednak dla tego pierwszego odczytywal mi miesiac temu a teraz cos sie stalo ze nie odczytuje. Czy moglby ktos pomóc? Na zdj widac ze pilot dziala oraz wszystko jest dobrze podlaczone. Uzywam

pilota philipps RC5 - Pilot uniwersalny z kodowaniem RC5 Botland - Sklep dla robotyków

 

image.thumb.png.f531eb88df8dc020eed787aa9b137226.pngimage.thumb.png.55934eb735fff39d466d788d25f7f70d.png

 

1. Kod na odczyt kodów z pilota - działał miesiąc temu.

#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.Kod na robota na 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. Odbiór kodów z pilota dla 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.cb205a7ad292a3f1477f0b619d2c9b8f.png

16126341223456536364893832838629.jpg1612634134522646120525624708458.jpg

16126341497129163473604287190108.jpg

16126341767966219073312465441363.jpg16126341869722586849159006222268.jpg1612634202012296866261882518853.jpg

16126342107105147825375062341821.jpg

16126342223457379546706933815138.jpg16126342318921334790940408934303.jpg16126342480897700947127037484647.jpg

Edytowano przez Gieneq
Link do komentarza
Share on other sites

(edytowany)

Ale miesiac temu działało mi wszystko z tymi dwoma pierwszymi programami. A teraz nagle na tych dwoch pierwszych nie działa a na trzecim kod zczytuje mi dla jednego przycisku kilka kodów Czestotliwosc nie ma znaczenia. Działało mi przeciez normalnie.

Edytowano przez mateusz797
Link do komentarza
Share on other sites

Nie wiem co zmieniłeś, co dodałeś, czy czegoś nie zaktualizowałeś bez czytania co zmienia nowa wersja. Po prostu kup najzwyklejszego chińskiego pilota z nadajnikiem (na ALi ok. 1.5zł) na Allego nie więcej niż 5zł, to nie jest pilot dedykowany pod moduły ARDUINO i jego odbiorniki. 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

Bateria sie w pilocie nie skonczyla skoro arduino odbiera kody rozne dla programu nr 3. Po za tym widisz wyraznie ze dioda sygnalizujaca wcisniecie przycisku sie swieci. No ja nie zamierzam kupowac innego pilota. Mam pilota philippsa ze standardem RC5. Dalem za niego 14zl wiec chcialbym zeby dzialal. Miesiac temu normalnie bylo i nagle przestal dzialac. Ja nic nie zmianialem

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.