Moodlight
Dieses Projekt befindet sich noch in der Design-Phase und diese Seite wird ständig verändert und erweitert!
Hardware:
Als Prozessor wird ein Attiny2313 zum Einsatz kommen. Dieser erzegt per Software eine 3Kanalige PWM mit einer Wiederholfrequenz von etwa 75Hz. Denn so kann man auch sehr einfach einen Takt für die Abtastung der Fernbedienung ableiten.
Die Ausgabe der Farben erfolgt dann über eine 3W RGB-LED, welche von
meinem RGB-LEDTreiber angesteuert wird.
Die Wahl der Fernbedienung
Nach längerer Suche im Netz habe ich folgende Kandidaten in die nähere Auswahl genommen.
Die Wahl fiel auf die FB vom LED-Shop 24.
Vorbereitungen zur Protokollanalyse
Nachdem die FB nun ausgesucht, bestellt und geliefert wurde, geht es nun an die Untersuchung des verwendeten Protokolls. Da bei eigentlich allen IR-Fernbediehnugen, die Daten auf einen hochfrequenten Träger moduliert werden, muss als erstes die Sendefrequenz bestimmt werden.

Als erstes habe ich mir einen einfachen IR-Tastkopf zusammengebaut. Er besteht nur aus einem Fototransistor und einem Vorwiderstand.
Mit diesem ist es nun möglich die Signale mit dem Speicherosziloskop aufzunehmen.
Das Speicheroszi hat leider nur eine beschränkte Speichertiefe, so dass eine Analyse des Protokolls alles andere als komfortabel ist.
Das Ergebnis ist, dass der Träger eine Frequenz von 38kHz hat.
Die aufmodulierten Daten sind nicht gerade hochfrequent, also lassen sie sich über die über die Soundkarte eines Computers digitalisieren. und auf dem Computer einfach untersuchen. Alles was man braucht ist als Empfänger, welcher die Signale demoduliert.

Ein typischer Baustein hierfür ist der integrierte IR-Empfänger TSOP4838. Dieser enthält eine Fotodiode, Verstärkungsregelung, Filter und Demodulator, also alles was man braucht. Da diese Bausteine recht empfindlich gegenüber Störungen über die Versorgungsleitungen sind habe ich ihm einen 100µF Elko spendiert.
Zusätzlich ist eine 1N4148 Diode erforderlich um den Mikrofoneingang gegen die 5V des Ausgangs zu schützen.
Nun kann man die Signale ganz einfach und bequem mit einem beliebigem Audiorekorder aufzeichen und analysieren. Ich verwende hierfür das Freeware Programm Audacity.
Das Protokoll
Die Daten werden mit einer Pulsabstandmodulation übertragen, dass heißt, das alle Impulse (außer dem Burst zu Beginn) gleich lang sind und sich nur die Pausen zwischen ihnen unterscheiden. Es werden 33 Pulse gesendet, zwischen welchen 32 Bits übertragen werden.
Bei einem Tastendruck wird zuerst immer der sogenannte AGC-Burst übertragen. Dieser diehnt dazu, dass sich der Empfängerbaustein an die Stärke des empfangenen Signals anpassen kann. Dieser dauert 9ms und nach ihm folgt eine Pause.
Wenn eine Taste gedrückt wird, dann sendet die FB den Tastencodes. Wenn die Taste nun weiterhin gedrückt gehalten wird, dann sendet sie alle 100ms einen speziellen Wiederholungscode. Bei diesem fogt nach dem AGB-Burst eine verkürzte Pause von 2,25ms, gefolgt von einem normalem 700µs Puls.
Hier nochmal das Timing auf einen Blick:
| AGC Burst | 9ms | |
| anschließende Pause | 4,5ms / 2,25ms
| Verkürzt, wenn die Taste gedrückt gehalten wird |
| Impulslänge | 700µs | |
| kurze Pause | 500µs | Logisch 0 |
| lange Pause | 1500µs | Logisch 1 |
| Widerholungsrate | 100ms | |
Die Tastencodes
| Taste | 1. Byte | 2. Byte | 3. Byte | 4.Byte |
| Play/ Pause | 0000 0000 | 1111 1111 | 0000 0000 | 1111 1111 |
| Flash | 0000 0000 | 1111 1111 | 1000 0000 | 0111 1111 |
| Power | 0000 0000 | 1111 1111 | 0100 0000 | 1011 1111 |
| R/G/B | 0000 0000 | 1111 1111 | 0010 0000 | 1101 1111 |
| Speed + | 0000 0000 | 1111 1111 | 1010 0000 | 0101 1111 |
| Speed - | 0000 0000 | 1111 1111 | 0110 0000 | 1001 1111 |
| Smooth | 0000 0000 | 1111 1111 | 0001 0000 | 1110 1111 |
| R + | 0000 0000 | 1111 1111 | 1001 0000 | 0110 1111 |
| R- | 0000 0000 | 1111 1111 | 0101 0000 | 1010 1111 |
| Fast | 0000 0000 | 1111 1111 | 0011 0000 | 1100 1111 |
| G + | 0000 0000 | 1111 1111 | 1011 0000 | 0100 1111 |
| G- | 0000 0000 | 1111 1111 | 0111 0000 | 1000 1111 |
| Strobe | 0000 0000 | 1111 1111 | 0000 1000 | 1111 0111 |
| B + | 0000 0000 | 1111 1111 | 1000 1000 | 0111 0111 |
| B- | 0000 0000 | 1111 1111 | 0100 1000 | 1011 0111 |
Wie man in der Tabelle leicht erkennen kann, werden 2x 8Bit übertragen.
Da wäre als erstes die Geräteadresse, welche in Byte 1 normal und in Byte 2 invertiert vorliegt.
Der Tastencode ist in Byte 3 und invertiert in Byte 4.
Durch diese Redundanz können Übertragungsfehler einfach erkannt werden.
Zuordnung FB Funktionen zu den Tasten
| Tasten | Funktion |
| Power | An/Aus |
| Flash | Weißlicht: Beleuchtung |
| Play/Pause | Fading Anhalten |
| RGB | RGB-Modus (feste Farbe) |
| Smooth | langsames Fading (Speed änderbar) |
| Fast | schnelles Fading (Farbensuche) |
| Strobe | Stroboskop |
| Speed +,- | Geschwindigkeit |
| R Bri +,- | Farbe verändern (nur im RGB-Modus) |
| G Bri +,- |
| B Bri +,- |