Tag & Nacht Steuerung 2.0


Ähnlich wie bei Version 1 der Tag und nacht Steuerung wird ein RGB LED Strip verwendet. Doch dieses mal ist es ein etwas intelligenterer. Ein sogenannter Neo Pixel LED Strip. Bei diesem LED Band ist es Möglich, einzelnen LEDs eine bestimmte Farbe und Helligkeit zuzuweisen. Dadurch sind viele Dinge Möglich, z.B. einzelne Blitze bei einem Nächtlichen Gewitter.


Zeitsteuerung ohne delays

Bevor wir damit allerdings anfangen sollte ich euch noch etwas zum Thema: Zeiten ohne Delays erklären. Am besten schaut Ihr euch dazu das Video an.


Download
Beispielsktech
mit 2 unterschiedlich blinkenden LEDs
ZeitenOhneDelay.ino
Text Dokument 2.2 KB

In dem hier zum Download bereit Sketch habe ich mit Hilfe der millis() Funktion, zwei LEDs unterschiedliche Blinkrythmen verpasst.

 

Diese Zeitsteuerung ohne delays ist wichtig da wir sonst keine Funktionen starten können, während wir z.B. in der Nacht warten bis es wieder tag wird.



state machine mit Steps

Im nächsten Schritt lernen wir die state machine kennen.

 

 

Was ist eine state machine? In unserem Sketch oben (ZeitenOhneDelay.ino) benutzen wir bereits eine state machine.


Ablauf state machine ZeitenOhneDelay

 

Grob gesagt: über all dort, wo wir einen Status abspeichern um eine neu Abfolge zu starten verwenden wir eine state machine.

 

Um eine state machine vernüftig zu programmieren ist es immer gut sich dies mal aufzuzeichnen. Die Zeichnung zum Beispiel Sketch oben  (ZeitenOhneDelay.ino) seht ihr hier im Bild.


Nun wollen wir unseren Ablauf etwas schöner machen und die LEDs auf- und abblenden. Dazu erweitern wir unsere Zeichnung.

Außerdem würde wir gerne noch eine Taste einbauen, mit der wir die LED immer einschalten können ohne den Zeitlichen Ablauf im Hintergrund zu beeinflussen.

Download
Beispielsketch2
LED die auf und abblendet.
TimerFadeLED.ino
Text Dokument 3.3 KB


Hardware

Das Netzteil.

Für meinen Strip brauche ich ca 18W/Meter.

Das macht bei 5Meter 90W. 90W / 5Volt wären dann 18 Ampere. Und da merkt man dann schon mit welchen Größenordnungen wir es hier zu tun haben. Sprich wir brauchen einen Ordentlich fetten Brummer als Netzteil. Ich habe mich für das TASVICO 100 Watt Netzteil entschieden.


Der Strip

Bei mir werden es 5Meter Strip. Mit jeweils  60 LEDs. Gekauft habe ich den im Nicht-Europäischen-Ausland..... 

Ich hoffe das Teil taugt was. Aber da ich so zeug viel dort bestelle, bin ich guter Dinge. 

Ich habe gleich die IP65 Variante genommen. Diese ist direkt in einem Klaren Gummischlauch eingepackt und daher schon von Haus aus etwas schöner und stabiler. Ich werden Sie allerdings trotzdem in meinen "alten" Kanal legen welcher über milchiges Diffusionsglas verfügt.

AUßerdem habe ich bei erten Test festgestellt, dass ein reiner RGB Strip zu dunkel und einfach bei vollem "Tag" nicht so schön wirkt. Daher habe ich nun einen 2. Bestellt. Einen RGBW (Natural white) SK6812 Strip.


Sicherung

Bei so viel Strom darf eine Sicherung nicht fehlen. genauer gesagt, eine mit 20A für den Strip und eine mit 500mA für den Arduino.


Der Mikrokontroller

Wie so oft werde ich den Nano verwenden. Er ist mittlerweile mein Liebling. Kompakt und trotzdem noch mit einer USB Schnittstelle versehen. 


Der Aufbau

...ist eigentlich ganz simpel. Im ersten Schritt verbinden unser Netzteil mit einem 230V Schuko Stecker. 

Braun            auf       L+

Blau               auf       N

Grün/Gelb   auf       PE

Anschließend die Spannungsversorgung des Strip:

Rot                auf        V+

Weis             auf        V-

Dann das Signal des Strip:

Grün             auf       Pin 9 des Arduino

Zum Schluss die Spannungsversorgung des Arduino:

GND             auf        V-

Und während Ihr den Arduino nicht über USB betreibt:

Von               auf        V+

 

In die V+ Leitungen können / Sollten dann noch jeweils die Sicherungen eingesetzt werden.



Das programm teil1

Nun zum Programm.

Im ersten Schritt, programmieren wir die reine Tag und Nacht Simulation.

Sprich 4 Schritte:

- Morgendämmerung

- Tag

- Abenddämmerung

- Nacht

....ähnlich unserem Beispielsketch2 von oben als wir die Statemachine besprochen haben.

Download
Beispielsketch3
Sketch mit simpler Tag-Nacht Simulation für einen Neo Pixel RGBW Strip.
VideoTagNacht.zip
Komprimiertes Archiv im ZIP Format 1.3 KB

Den ganzen Sketch hier zu erklären wäre zu ausführlich. Schau dir am besten einfach das Video an. 

Gerne kannst du dir auch den fertigen Sketch kostenlos downloaden.

 



Das Programm mit Blitze

Auch wieder am besten einfach das Video dazu anschauen. Da erkläre ich von der Hardware bis zum Programm alles ein wenig ausführlicher.

In diesem Abschnitt fügen wir die "Blitze" Funktion und das "Dauer-Hell" hinzu.

Dazu haben ich einen Taster und einen Rastenden Taster jeweils mit LED Ring in die Schaltung eingebaut.

Der Taster startet das "Gewitter" für eine bestimmte Zeit. Der Rastende Taster bringt den Strip auf volle Leuchtstärke solange dieser verrastet ist.

Die LED Ringe zeigen jeweils die aktive Funktion an.

Auch empfehle ich dir das Video zu schauen. Und auch hier stelle ich dir das Programm mit dem Aktellen Zustand zur Verfügung.

Download
Beispielsketch4
Sketch mit Blitze und Dauer-Hell.
TagNacht_mit_Gewitter.zip
Komprimiertes Archiv im ZIP Format 2.0 KB


Jetzt noch mit Donner!!!

Was darf bei einem Gewitter nicht fehlen? - Klar, der Donner. 

Den erzeugen wir mit einem DFPlayer Mini. 

Den gibt es z.B. bei Amazon: link zu Amazon

Daran kann man entweder einen Lautsprecher direkt anschließen, oder einen Verstärker. Da unser Donner ja etwas Wumms haben soll, habe ich mich für Variante B entschieden und schließe an meinen DFPlayer Mini einen alter PC Subwoofer an den ich noch im Keller stehen hatte.


Download
MP3 Audio-Files
Auf der Mikro-SD Card einen Ordner Namens "MP3" anlegen und darin die .mp3 Dateien ablegen
MP3.zip
Komprimiertes Archiv im ZIP Format 2.6 MB

Zum anschließen habe ich ein 3,5mm Klinken Kabel genommen und auf einer Seite abgeschnitten und abisoliert. So konnte ich es direkt am DFPlayer Mini anschließen.


Damit der Arduino mit dem Player kommunizieren kann, brauch es eine Verbindung zu RX und TX. Auf Seiten des Arduino bauen wir uns eine eigene Serielle Schnittstelle und verwenden dafür die Ports 3 und 5. Diese Ports müssen PWM fähig sein.

Zwischen dem Pin 5 und dem RX Eingang des Players hängen wir noch ein ca. 1kOhm starken Widerstand. Damit steht unsere Verdrahtung eigentlich auch schon.


Download
DFPlayer Library
DFRobotDFPlayerMini-1.0.1.zip
Komprimiertes Archiv im ZIP Format 9.7 KB

Der fertig überarbeitet Sketch stelle ich zum Download bereit. Ansonsten schaut euch am besten wieder das Video an. 

Download
Fertiger Sketch
TagNacht_mit_Donner.zip
Komprimiertes Archiv im ZIP Format 2.2 KB