Skocz do zawartości

Pomocna odpowiedź

Napisano (edytowany)

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
(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

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. 

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

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ę »
×
×
  • Utwórz nowe...