Mein aktuelles Arduino-Projekt benötigt eine Fernsteuerung, welche ohne Kabel daherkommen soll. Es lag nahe, hier auf Infrarot zu setzen - die Hardware ist unkompliziert zu handhaben und die notwendige Software existiert bereits für die Arduino-Plattform.
Ich hatte noch eine unbenutzte eyeTV-Fernbedienung herumliegen, welche jetzt umfunktioniert werden sollte. Die Einbindung in die Software war mit der Library Arduino-IRemote ein Kinderspiel. Das einzige was ein wenig Fleißarbeit erforderte, war das Herausfinden der gelieferten IR-Codes zu den einzelnen Tasten.
Die eyeTV-Fernbedienung sendet übrigens NEC-Codes, die Encoder-/Decoder-Funktionen für alle anderen Hersteller können daher in Arduino-IRemote auskommentiert werden - das spart noch mal etwas Speicher auf dem Arduino.
Nachfolgend die Liste der IR-Codes zu den einzelnen Tasten der eyeTV-Fernbedienung:
On/Off | 0xA2A2807F |
Mute | 0xA2A240BF |
1 | 0xA2A2C03F |
2 | 0xA2A220DF |
3 | 0xA2A2A05F |
4 | 0xA2A2609F |
5 | 0xA2A2E01F |
6 | 0xA2A210EF |
7 | 0xA2A2906F |
8 | 0xA2A250AF |
9 | 0xA2A2D02F |
0 | 0xA2A2B04F |
Last | 0xA2A230CF |
Enter | 0xA2A2708F |
Rot | 0xA2A2F00F |
Grün | 0xA2A28877 |
Gelb | 0xA2A2A857 |
Blau | 0xA2A2E817 |
OK | 0xA2A2C837 |
Vol + | 0xA2A228D7 |
Vol - | 0xA2A248B7 |
Ch + | 0xA2A208F7 |
Ch - | 0xA2A26897 |
Repeat | 0xA2A218E7 |
Play/Pause | 0xA2A29867 |
Skip | 0xA2A258A7 |
Rewind | 0xA2A2D827 |
L | 0xA2A238C7 |
Forward | 0xA2A2B847 |
Stop/Reveal | 0xA2A27887 |
TXT | 0xA2A2F807 |
Record/Size | 0xA2A202FD |
Hold | 0xA2A2827D |
Select | 0xA2A242BD |
Für’s schnelle Copy’n’Paste:
/** * eyeTV Remote Control Codes */ const unsigned long IR_REMOTE_ON_OFF = 0xA2A2807F; const unsigned long IR_REMOTE_MUTE = 0xA2A240BF; const unsigned long IR_REMOTE_1 = 0xA2A2C03F; const unsigned long IR_REMOTE_2 = 0xA2A220DF; const unsigned long IR_REMOTE_3 = 0xA2A2A05F; const unsigned long IR_REMOTE_4 = 0xA2A2609F; const unsigned long IR_REMOTE_5 = 0xA2A2E01F; const unsigned long IR_REMOTE_6 = 0xA2A210EF; const unsigned long IR_REMOTE_7 = 0xA2A2906F; const unsigned long IR_REMOTE_8 = 0xA2A250AF; const unsigned long IR_REMOTE_9 = 0xA2A2D02F; const unsigned long IR_REMOTE_0 = 0xA2A2B04F; const unsigned long IR_REMOTE_LAST = 0xA2A230CF; const unsigned long IR_REMOTE_ENTER = 0xA2A2708F; const unsigned long IR_REMOTE_RED = 0xA2A2F00F; const unsigned long IR_REMOTE_GREEN = 0xA2A28877; const unsigned long IR_REMOTE_YELLOW = 0xA2A2A857; const unsigned long IR_REMOTE_BLUE = 0xA2A2E817; const unsigned long IR_REMOTE_OK = 0xA2A2C837; const unsigned long IR_REMOTE_VOL_UP = 0xA2A228D7; const unsigned long IR_REMOTE_VOL_DOWN = 0xA2A248B7; const unsigned long IR_REMOTE_CH_UP = 0xA2A208F7; const unsigned long IR_REMOTE_CH_DOWN = 0xA2A26897; const unsigned long IR_REMOTE_REPEAT = 0xA2A218E7; const unsigned long IR_REMOTE_PLAY_PAUSE = 0xA2A29867; const unsigned long IR_REMOTE_SKIP = 0xA2A258A7; const unsigned long IR_REMOTE_REWIND = 0xA2A2D827; const unsigned long IR_REMOTE_L = 0xA2A238C7; const unsigned long IR_REMOTE_FORWARD = 0xA2A2B847; const unsigned long IR_REMOTE_REVEAL_STOP = 0xA2A27887; const unsigned long IR_REMOTE_TXT = 0xA2A2F807; const unsigned long IR_REMOTE_SIZE_RECORD = 0xA2A202FD; const unsigned long IR_REMOTE_HOLD = 0xA2A2827D; const unsigned long IR_REMOTE_SELECT = 0xA2A242BD;