Solar LED-Cube Teil 2

DIY-Solarlampe mit Attiny84

Kommen wir nur zum Zweiten und gleichzeitig den letzten Teil. Für den Solar LED-Cube habe ich an der Schaltung noch ein paar Veränderungen vorgenommen.

Schaltbild

Solar LED Cube

Solar LED-Cube

Ein paar Sachen habe ich hinzugefügt und auch etwas ausgetauscht. Da es mit Solar und einem Akku läuft, wollte ich Strom sparen. Also habe ich anstatt eines Arduinos einen Attiny84 verwendet.

Hinzukommt das Solarpanel, mit Laderegler, Step up Wandler und einem Akku. Dieses System habe ich schon öfter in anderen Beiträgen verwendet und beschrieben.

Es wurde noch ein Schalter hinzugefügt, damit man den Modus ändern kann (Zufall, aus, an).

Ganz neu ist der Spannungsteiler. Dieser besteht aus zwei Widerständen mit jeweils 10 kOhm. Der Arduino kann Spannungen zwischen ca. 0 und 5 Volt messen. Meine Solarplatte kann aber 6 und mehr Volt liefern. Daher habe ich einen Spannungsteiler verwendet. Dieser kann ca. 0-10 Volt messen. Das ist wichtig, da wir das Solarpanel gleichzeitig aus Sensor benutzen. Wenn keine bzw. nur eine sehr geringe Spannung an der Solarplatte anliegt, bedeutet es, dass es dunkel ist und wir der LED-Cube soll automatisch angehen.

Neue Teileliste

Programmcode

Solar_Cube_DIY

Hier gibt es eine Beschreibung zum Programmieren eines Attiny84A-PU Mikrocontrollers. Ihr könnt auch den Beitrag von mir verwenden, dort habe ich aber eine Erklärung zum Attiny85 gegeben. Das Beschreiben dieser Controller ist in etwa gleich.

Zu Beginn legen wir die nötigen Pins fest. REF_Voltage ist die Referenzspannung, die am Mikrocontroller anliegt. Durch den Step-Up-Wandler sind es bei mir exakt 5 Volt. Diese können bei euch abweichen, also lieber noch mal nachmessen.

R1 und R2 sind die Widerstandswerte vom Spannungsteiler. Es sollten 10 kOhm sein. Da diese Widerstände eine gewisse Toleranz haben, habe ich nachgemessen und bei mir ergaben sich 9930 Ohm.

Wir brauchen für 8 LED’s 6 Pins. So haben wir 2 Pins gespart. Das hört sich nicht viel an, aber wenn wir einen 3x3x3 Würfel bauen würden, bräuchten wir nur 12 Pins, anstatt 27.

Wir machen es uns zunutze, dass wir die Ausgänge sowohl auf HIGH und auch auf LOW setzen können. So bauen wir eine Matrix auf und können die LED’s ansteuern.

BerechneSpannungSolar(); berechnet die aktuelle Spannung von der Solarplatte. Solange die Spannung unter einem Volt liegt, bleibt die LED an. Über einem Volt geht sie aus.

Jetzt werden noch die Schalterzustände abgefragt und danach läuft das jeweilige Programm durch.

LED’s festlegen

Das geschieht bei LichtAn(int nummer). Als Beispiel wollen wir nun die erste LED einschalten.

digitalWrite(ledpins[0], HIGH);
digitalWrite(ledpins[1], LOW);
digitalWrite(ledpins[2], LOW);
digitalWrite(ledpins[3], LOW);
digitalWrite(groundpins[0], LOW);
digitalWrite(groundpins[1], HIGH);

Die zweite:

digitalWrite(ledpins[0], LOW);
digitalWrite(ledpins[1], HIGH);
digitalWrite(ledpins[2], LOW);
digitalWrite(ledpins[3], LOW);
digitalWrite(groundpins[0], LOW);
digitalWrite(groundpins[1], HIGH);

Die fünfte:

digitalWrite(ledpins[0], HIGH);
digitalWrite(ledpins[1], LOW);
digitalWrite(ledpins[2], LOW);
digitalWrite(ledpins[3], LOW);
digitalWrite(groundpins[0], HIGH);
digitalWrite(groundpins[1], LOW);

Hier wurde der Groundpin getauscht erst war [0] auf LOW und nun ist [1] auf LOW.

So können wir jede LED ansteuern und selbst Programme dafür schreiben.

Ich habe mich für ein Lauflicht und ein Zufallslicht entschieden und dafür ein paar Methoden geschrieben.

Ihr könnt nach Belieben ganz einfach eure eigenen Methoden schreiben und somit den LED-Cube anders leuchten lassen.

Aufbau

Ich habe eine Vorratsdose als Gehäuse für meinen Solar LED-Cube verwendet, weil diese Beschädigt war. Für die Lampe reicht es völlig aus.

 

Video

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert