Arduino – Olcsó IR távirányító kezelése
(Letölthető innen:)
Ezek a távirányítók nagyon olcsón megvásárolhatóak pl. Ebay-ről.
Amit tudni kell róluk, hogy 38kHz-es jelet adnak ki
A
gombok elhelyezkedése ugyan különböző, de az adott helyen ugyanazt a
jelet adják ki.
A bal oldali távirányítón hiányzó gombok alatt is megvannak az érintkezők, csupán a felső fóliák nem azonosak.
Szétszerelve látszik, hogy belül egyformák.
Az alábbi táblázatban látható a kiadott jelsorozat (8 számjegyű).
A kétjegyű számok értelmezése: Sor, oszlop.
Pl. a bal felső nyomógomb 11, a Jobb felső 13, a jobb alsó 73.
17 gombos: 21 gombos: Parancs: Hozzárendelt parancs:
11 CH- 16753245 11
12 ▲ 16736925 12 CH 16736925 12
13 CH+ 16756815 13
21 ◄ 16720605 21 |◄◄ 16720605 21
22 OK 16712445 22 ►►| 16712445 22
23 ► 16761405 23 ►|| 16761405 23
31 - 16769565 31
32 ▼ 16754775 32 + 16754775 32
33 EQ 16748655 33
41 1 16738455 41 0 16738455 0
42 2 16750695 42 100+ 16750695 100
43 3 16856815 43 200+ 16756815 200
51 4 16724175 51 1 16724175 1
52 5 16718055 52 2 16718055 2
53 6 16743045 53 3 16743045 3
61 7 16716015 61 4 16716015 4
62 8 16726215 62 5 16726215 5
63 9 16734885 63 6 16734885 6
71 * 16728765 71 7 16728765 7
72 0 16730805 72 8 16730805 8
73 # 16732845 73 9 16732845 9
#include <IRremote.h>
int RECV_PIN = 2; //Távirányító bemenet
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long tavparancs = 0; // Távirányító parancs
byte tavgomb = 255; // Távirányító megnyomott gomb
void taviranyito() //38kHz NEC kódolási formátum, upd6122 kódolás
{
if (irrecv.decode(&results)) { // Távirányító jel feldolgozása
if (results.value != 0xFFFFFFFF) { // Ismétlődés jel. Ezt most nem használjuk
tavparancs = results.value;
if (tavparancs == 16738455) tavgomb = 0; //0 ______________
if (tavparancs == 16724175) tavgomb = 1; //1 | |
if (tavparancs == 16718055) tavgomb = 2; //2 | 11 12 13 |
if (tavparancs == 16743045) tavgomb = 3; //3 | 21 22 23 |
if (tavparancs == 16716015) tavgomb = 4; //4 | 31 32 33 |
if (tavparancs == 16726215) tavgomb = 5; //5 | 0 100 200 |
if (tavparancs == 16734885) tavgomb = 6; //6 | 1 2 3 |
if (tavparancs == 16728765) tavgomb = 7; //7 | 4 5 6 |
if (tavparancs == 16730805) tavgomb = 8; //8 | 7 8 9 |
if (tavparancs == 16732845) tavgomb = 9; //9 |____________|
if (tavparancs == 16750695) tavgomb = 100; //100+
if (tavparancs == 16756815) tavgomb = 200; //200+
if (tavparancs == 16753245) tavgomb = 11; //CH-
if (tavparancs == 16736925) tavgomb = 12; //CH
if (tavparancs == 16769565) tavgomb = 13; //CH+
if (tavparancs == 16720605) tavgomb = 21; //I<<I
if (tavparancs == 16712445) tavgomb = 22; //I>>I
if (tavparancs == 16761405) tavgomb = 23; //I>II
if (tavparancs == 16769055) tavgomb = 31; //-
if (tavparancs == 16754775) tavgomb = 32; //+
if (tavparancs == 16748655) tavgomb = 33; //EQ
Serial.print(tavparancs, DEC);
Serial.print(' ');
Serial.println(tavgomb, DEC);
}
irrecv.resume(); // Receive the next value
}
} // Távirányító vége