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-IRremoteAz 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.