Arduino XboxOne, TV och Fan fjärrkontroll (3 / 5 steg)
Steg 3: Avkoda IR-signaler (krets och programvara)
Krets:
Om du har en infraröd sköld är du bra att gå.
Om du inte gör det har IR sköld du kan fortfarande följa detta steg genom att göra följande:
Du kan enkelt avkoda IR-signaler med din Arduino använder en TSOP382 och IR sköld bibliotek för Arduino.
- Anslut en TSOP382 som visas i sida 1 av TSOP382 datablad ansökan krets (bifogas här). "Ut" PIN-koden för TSOP382 måste du vara ansluten till stift 4 på din Arduino.
Programvara:
- Ladda i IR-mottagaren dumpa exempel i din Arduino.
- Öppna fönstret Arduino seriell monitor.
- Grab IR kontroller du vill bli, då deras IR ledde till TSOP382 och tryck på den /-nycklar du vill avkoda.
Du bör se en effekt som liknar följande:
Avkodade NEC: FF609F (32 bitar)
RAW (68):-16246 8950-4500 600-550 550-600 500-600 550-550 600-550 550-550 550-600 550-550 550-1700 550-1650 600-1700 550-1700 550-1650 600-1700 550-1650 600-1650 600-550 600-1650 600-1650 550-600 550-550 600-550 550-550 550-600 550-1650 600-550 550-600 500-1700 600-1650 600-1650 550-1700 600-1650 600
Där, i det här fallet "NEC" är kontrollens IR-protokollet, och "FF609F" är nyckelns IR koden i HEX.
"Raw" matris med tal som är en representation av varje IR signaler puls i mikrosekunder (us) stirrar med en hög puls sedan en låg puls och omväxlande tills hela signalen har lästs.
I exemplet ovan "-16246 8950-4500 600" betyder 16246us hög, 8950us låg, 4500us hög, 600us låg.
Obs: Om du vill använda en rå kod i stället för dess Hexvärde har du att rensa upp genom att ta bort det första elementet (-16346) och ta bort minustecknet (-) från alla andra element.
I exemplet ovan skulle resulterande raw koden efter rengöring se ut så här:
8950 4500 600 550 550 600 500 600 550 550 600 550 550 550 550 600 550 550 550 1700 550 1650 600 1700 550 1700 550 1650 600 1700 550 1650 600 1650 600 550 600 1650 600 1650 550 600 550 550 600 550 550 550 550 600 550 1650 600 550 550 600 500 1700 600 1650 600 1650 550 1700 600 1650 600
Om du vill lära dig att ändra en NEC rå koden till ett HEX värde för hand (bara för skojs skull), kolla denna sida om NEC-protokollet. Att hjälpa dig att komma igång, i rå koden ovan:
- 8950us (som är nästan 9000us) motsvarar 9ms start hög puls (1000us = 1 MS) i NEC-protokollet.
- 4500us motsvarar 4.5ms
- och 600us 550us skulle vara en "0" lite (två 562.5us pulser, en hög och en låg)