Infravörös távirányító/vevő

 

2020-09-06

Ez a kis távirányító a vevő modullal Kínából házhoz szállítva, nem kerül 2 USD-be (600HUF). Korábban már próbálkoztam ilyesmivel, de most felmerült a lehetősége, hogy nem szedett-vedett távirányítókat tudnék használni. Azután voltak olyan emberek, akik többet foglalkoztak nálam az IR távirányítókkal, cégekkel, és a jóvoltukból szabványos könyvtárat hasznáhatnék. A szabványos könyvtár azt eredményezte, hogy kb. 7kB-ról indul a lefordított program :(. Cserébe vagy 20 cég formátumát tudja adni/venni, ha kellene valakinek. A Library-t az Arduino keretrendszerbe a Könyvtárak kezelése menüpontba is le tudjuk tölteni, az "IRremote"-ra rákeresve. De letölthetjük az alábbi címről is:

https://github.com/shirriff/Arduino-IRremote

Az eladó a web lapján ezt a kódot mellékelte. Próbáljátok ki.


#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
} 

Aki kipróbálta ezt a progit, megérti, hogy kicsit megfogtam a fejem. A programomból láthatjátok, ha a végére jár az ember, azért nem lehetetlen kezelni a kapott katyvaszt. Megvizsgálva a library-t, azt látjuk, hogy kapunk benne egy irrecv objektumot. Nekem furcsa, hogy az eredményhez, illetve a változókhoz külön használ egy decode_result osztályt, biztos jó okuk volt rá... ennek a (unsigned long) value változójában kapjuk meg a vett adatot. Lehet, hogy csak az én kütyüm vesz mindenféle szemetet, és másé kifogástalanul működik, de azért 1,5 USD-ért nem Samsung minőséget kapunk. Úgy vettem észre, az asztali lámpám fénye is zavarja, irányba is kell tartani a távirányítót... lehet, hogy kell keresnem valami infra szűrőt a vevő elé.


/******************************************************************************
*   Author       -  Kiraly Tibor
*                   http://www.tkiraaly.hu
*   Date         -  2020.09.06.
*   Chip         -  Arduino nano, IR receiver/controller
*   Compiler     -  Arduino IDE 1.8.12
*         
*         NANO 
*      ----------+
*                !        IR receiver
*                !        +---------+
*            VCC +--------! +       !
*             D3 +--------! S       !
*            GND +--------! -       !
*                !        +---------+
*                !
*    
******************************************************************************/

#include <IRremote.h>


int RECV_PIN= 3;


IRrecv irrecv( RECV_PIN);


decode_results results;


void setup()
{
   Serial.begin( 9600);
   irrecv.enableIRIn();                // Start the receiver
}


void loop()
{
   if ( irrecv.decode( &results))
   {
      switch( results.value)
      {
         case 0xFF9867: Serial.println( "0"); break;
         case 0xFFA25D: Serial.println( "1"); break;
         case 0xFF629D: Serial.println( "2"); break;
         case 0xFFE21D: Serial.println( "3"); break;
         case 0xFF22DD: Serial.println( "4"); break;
         case 0xFF02FD: Serial.println( "5"); break;
         case 0xFFC23D: Serial.println( "6"); break;
         case 0xFFE01F: Serial.println( "7"); break;
         case 0xFFA857: Serial.println( "8"); break;
         case 0xFF906F: Serial.println( "9"); break;
         case 0xFF6897: Serial.println( "*"); break;
         case 0xFFB04F: Serial.println( "#"); break;
         case 0xFF38C7: Serial.println( "ok"); break;
         case 0xFF18E7: Serial.println( "fel"); break;
         case 0xFF4AB5: Serial.println( "le"); break;
         case 0xFF10EF: Serial.println( "balra"); break;
         case 0xFF5AA5: Serial.println( "jobbra"); break;
      }
      irrecv.resume();                 // Receive the next value
   }
} 

Itt a vége, fuss el véle.