Necessario:
-arduino
-modulo IR ricevente TSOP183X o simile
-telecomando :-)
Parte Hardware:
il TSOP ha tre pin, quello a sinistra è il DATA, il centrale è il GND mentre quello a destra è il 5+.
Bisogna collegare il pin 5+ al PIN11 dell'Arduino e caricare su di esso il file di esempio "IRrecvDump".
Una volta avviato, si preme il solito tasto Serial Monitor e si preme il tasto UNO del telecomando Samsung. Dovrebbe apparire una stringa simile a questa:
Could not decode message
Raw (68): -20600 4550 -4450 600 -1650 600 -1650 600 -1650 600 -500 650 -500 600 -500 650 -500 600 -500 650 -1600 650 -1600 600 -1650 600 -550 600 -500 600 -550 600 -500 600 -550 600 -500 600 -550 600 -1650 600 -500 600 -550 600 -500 600 -550 600 -500 600 -1650 600 -1650 600 -550 600 -1650 600 -1650 600 -1650 600 -1650 600 -1650 600.
Raw (68): -20600 4550 -4450 600 -1650 600 -1650 600 -1650 600 -500 650 -500 600 -500 650 -500 600 -500 650 -1600 650 -1600 600 -1650 600 -550 600 -500 600 -550 600 -500 600 -550 600 -500 600 -550 600 -1650 600 -500 600 -550 600 -500 600 -550 600 -500 600 -1650 600 -1650 600 -550 600 -1650 600 -1650 600 -1650 600 -1650 600 -1650 600.
Seguendo le istruzioni di questa pagina:
http://www.arcfn.com/2010/03/understanding-sony-ir-remote-codes-lirc.html
e della pagina LIRC del telecomando samsung:
begin remote
name Samsung_BN59-00940A
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 4605 4344
one 678 1551
zero 678 436
ptrail 679
pre_data_bits 16
pre_data 0xE0E0
gap 107626
toggle_bit_mask 0x0
begin codes
Power 0x40BF
TV 0xD827
1 0x20DF
2 0xA05F
name Samsung_BN59-00940A
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 4605 4344
one 678 1551
zero 678 436
ptrail 679
pre_data_bits 16
pre_data 0xE0E0
gap 107626
toggle_bit_mask 0x0
begin codes
Power 0x40BF
TV 0xD827
1 0x20DF
2 0xA05F
Si capisce che il treno di dati è composto da 16 bit di pre-data e 16 bit di data.
Cosa vuol dire? prendiamo i dati ricavati prima:
Raw (68): -20600 4550 -4450 600 -1650 600 -1650 600 -1650 600 -500 650 -500 600 -500 650 -500 600 -500 650 -1600 650 -1600 600 -1650 600 -550 600 -500 600 -550 600 -500 600 -550 600 -500 600 -550 600 -1650 600 -500 600 -550 600 -500 600 -550 600 -500 600 -1650 600 -1650 600 -550 600 -1650 600 -1650 600 -1650 600 -1650 600 -1650 600.
Secondo il LIRC:
header 4605 4344
one 678 1551
zero 678 436
ptrail 679
one 678 1551
zero 678 436
ptrail 679
Ciò vuol dire che il bit header per la sincronizzazione sarà di circa 4605ms on e 4344ms off, il bit ONE sarà di 678ms ON e 1551ms OFF, mentre lo ZERO sarà 678ms ON e 436ms OFF. E il ptrail? è un bit finale che sarà di 679msON.
Quindi, mettendo i suddetti dati in colonna ricaviamo:
4600 -4400 Bit di sincronia
700 -1550 1
650 -1600 1
700 -1550 1
700 -400 0
700 -450 0
700 -400 0
700 -450 0
650 -450 0
700 -1550 1
700 -1550 1
700 -1550 1
700 -450 0
650 -450 0
700 -450 0
650 -450 0
700 -450 0
650 -450 0
700 -450 0
650 -1600 1
650 -450 0
700 -450 0
650 -450 0
700 -450 0
650 -450 0
700 -1550 1
700 -1550 1
700 -400 0
700 -1600 1
650 -1600 1
650 -1600 1
650 -1600 1
650 -1600 1
650 ptrail BIT
700 -1550 1
650 -1600 1
700 -1550 1
700 -400 0
700 -450 0
700 -400 0
700 -450 0
650 -450 0
700 -1550 1
700 -1550 1
700 -1550 1
700 -450 0
650 -450 0
700 -450 0
650 -450 0
700 -450 0
650 -450 0
700 -450 0
650 -1600 1
650 -450 0
700 -450 0
650 -450 0
700 -450 0
650 -450 0
700 -1550 1
700 -1550 1
700 -400 0
700 -1600 1
650 -1600 1
650 -1600 1
650 -1600 1
650 -1600 1
650 ptrail BIT
Quindi avremo questi dati:
1110000011100000 0010000011011111
1110000011100000 0010000011011111
Ovvero in HEX: 0xE0E0 e 0x20DF, ovvero ancora, il suddetto PRE_DATA_BIT e il tasto corrispondente, ovvero il tasto UNO!!!
Nessun commento:
Posta un commento