Im ersten Teil habe ich die grundlegende Idee beschrieben. Wie angekündigt müssen wir nun die Infrarot Codecs herausfinden, die von der LED Stripe erwartet werden.

Installation der Software

Wie bereits erwähnt gibt es die IDE auf der Arduino Homepage zum Download. Die Software ist OpenSource und für 32- als auch für 64bit Linux verfügbar. Installiert werden muss nichts, es gibt ein Binary, welches einfach ausgeführt wird. Zu beachten dabei ist, dass man je nach Distribution verschiedene Rechte benötigt, damit die Software per USB auf das Device zugreifen kann. Ich habe mir das Leben an der Stelle ein wenig einfacher gemacht und einfach als root gearbeitet :-P

Der Sketch

Unter Arduino heißen die Scripte “Sketch”. Um die Befehle der Fernbedienung herauszufinden haben wir folgenden Code genutzt:

#include <IRremote.h>

const unsigned int IR_RECEIVER_PIN = 11;
const unsigned int BAUD_RATE = 9600;
IRrecv ir_receiver(IR_RECEIVER_PIN);
decode_results results;

void setup() {
 Serial.begin(BAUD_RATE);
 ir_receiver.enableIRIn();
}
void dump(const decode_results* results) {
 const int protocol = results->decode_type;
 Serial.print("Protocol: ");
 if (protocol == UNKNOWN) {
  Serial.println("not recognized.");
 } else {
  if (protocol == NEC) {
   Serial.println("NEC");
  } else if (protocol == SONY) {
   Serial.println("SONY");
  } else if (protocol == RC5) {
   Serial.println("RC5");
  } else if (protocol == RC6) {
   Serial.println("RC6");
  }
  Serial.print("Value: ");
  Serial.print(results->value, HEX);
  Serial.print(" (");
  Serial.print(results->bits, DEC);
  Serial.println(" bits)"); }
 }
}

void loop() {
 if (ir_receiver.decode(&results)) {
  dump(&results);
  ir_receiver.resume();
 }
}

Library

In dem Sketch ist euch vielleicht das include aufgefallen. Wir benutzen Funktionen aus einer externen Library. Diese wird einfach per include im Sketch eingebunden. Die IDE erwartet dass diese Library im Unterverzeichnis libraries zu finden ist (ansonsten gibt es Fehler und der Sketch kann nicht kompiliert werden).

Die IRremote Library findet ihr hier.

Upload

Damit der Sketch auf dem Arduino läuft, muss er kompiliert und hochgeladen werden. Das geschieht über die beiden Symbole links in der Symbolleiste der IDE.

Schaltplan

Der Schaltplan ist recht einfach. Wir benötigen den Infrarot Empfänger und das Arduino Board. Das ganze wird wie folgt verkabelt:

Die Codes

Nach dem Upload des Scripts startet Arduino neu und führt das Script aus. Um die Ausgaben des Scripts zu sehen, müssen wir die Serielle Konsole öffnen. Das geschieht über das Symbol ganz rechts innerhalb der IDE (USB Verbindung muss vorhanden sein!). Haltet nun die Fernbedienung auf den IR-Empfänger und drückt eine Taste. Es sollte sowas erscheinen wie


Protocol: NEC
Value: 77E1695E (32 bits)

Protocoll NEC, 32bit und der Value gibt den quasi den Code an.

Ihr müsst nun alle Tastenbefehle die nachher über den Arduino gesendet werden sollen, an das Board schicken und die Ausgabe entsprechend aufschreiben.

Im nächsten Artikel: Sender programmieren (und bauen), Status per Script setzen