Also dann, wie angekündigt, hier mal die Software zum Ansteuern der LED-Lampe.
Dieser Beitrag inklusive des Anhangs wird bis zum Abschluss laufend aktualisiert, damit ihr nicht lange suchen müsst. Fragen werden natürlich fortlaufend beantwortet.
Optimal wäre es natürlich, wenn ihr den kompletten Aufbau wie -> hier <- im Hardware-Teil beschrieben, hättet. Allerdings reicht zum Testen der Oberfläche und der zugehörigen (Teil-)Funktionen auch ein Arduino und ein Nokia 5110 LCD. Das Display bitte wie im Anhang dargestellt verkabeln.
Zunächst mal benätigt das Programm folgende zusätzliche Libraries:
- EEPROM library (in der IDE enthalten)
- SPI library (in der IDE enthalten)
- OneWire library (in der IDE enthalten)
- Wire library (in der IDE enthalten)
- Adafruit GFX library
- Adafruit PCD8544 library
- DallasTemperature library
- ClickEncoder library
- TimerOne library
- IRremote library
- RgbIrLed library
An dieser Stelle noch mal ein dickes Danke an die Autoren o.g. Zusatzlibs für ihre hervorragende und nützliche Arbeit.
Am Anfang des sketch findet ihr zwei Makros:
Mit DEBUG werden diverse Ausgaben auf die rs232 aktiviert. Dadurch werden allerdings auch mehr lokale Texte usw. benötigt und der verbleibende verfügbare RAM des Arduino kommt an seine Grenzen.
Das kann zu Instabilitäten führen, deshalb sollte die Ausgabe wirklich nur dann aktiviert werden, wenn sie benötigt werden.
Mit DISPLAY_ONLY werden die RTC, die 1Wire-Funktionen sowie der Drehencoder abgeschaltet bzw. gar nicht erst initialisiert. Hier dient die rs232-Verbindung zur Simulation des Drehencoders. Durch die Eingabe eines 'c' wird ein Klick, durch 'k' ein Doppelklick, durch 'u' ein Aufwärtsdrehen und durch 'd' ein Abwärtsdrehen des Drehencoders simuliert.
Dieser Modus dient nur zum Erweitern/Testen des Menüs.
Für den realen Einsatz bitte beide Makros durch
deaktivieren.
Und dann gibt es noch eine Besonderheit: ich fand das Display sieht besser aus, wenn es so montiert wird, dass die breite, sichtbare Edelstahl-Umrahmung unten ist. Deshalb wird die Darstellung auf dem Display durch die Anweisung
in der setup()-Funktion um 180° gedreht. Wenn bei Euch also die Darstellung auf dem Kopf steht, o.g. Anweisung einfach auskommentieren.
Das war's jetzt erst mal und nicht vergessen, hin und wieder hier mal nachzusehen.
History:
01.06.2015: alle Funktionen der Original IR-Fernbedienung
01.06.2015: update - Zeit/Datum der RTC setzen / Beleuchtung bug behoben
Viel Spass damit,
-ds-