Das Arduino Laderegelungs - Projekt ist jetzt fertig und in der Testphase.
Die Eckdaten sind:
- Der Arduino Nano verbraucht gemessen ca. 18mA, das läßt sich noch optimieren, da er z. B. mit der Bordspannung läuft und auf der Platine ein Linearregler ist. Der Strom bleibe konstant auch wenn man ihn mit 5V füttert. Man kann auch direkt 5V speisen (z. B. aus einem kleinen Step-Down) und den Linearregler umgehen. Deep Sleep wäre auch noch möglich aber optimieren kann es besser wenn alles fertig ist. Momentan würde der Bordakku nach ca. 3 Wochen leer sein wenn ich ihn vergesse abzuschalten (ohne Sonne versteht sich)
- Die Solarzelle ist über eine Diode getrennt. Der Arduino mißt die Akkuspannung und wenn er feststellt, dass diese 8,2V überschreitet, schaltet er einen IRLIZ44N durch, der dann den Stromkreis der Solarzelle vor der Diode kurzschließt. Warum Kurzschließen und nicht einfach trennen? Antwort: Würde der IRLIZ44N den Solarstrom einfach trennen und verbinden, hätte ich ca. 1-2V Spannungsverlust wegen der Durchlasspannung des Mosfet. Das ist ineffizient. Wenn der Akku voll ist, habe ich ohnehin genug Strom und der Solarstrom kann einfach verbraten werden. Der Mosfet wird dabei etwas heiss, wenn ich von einer maximalen Ladespannung von 500mA ausgehe. Ohnehin ist das nur eine Sicherheitsfunktion und der Fall sollte eher selten auftreten. Wenn ich wirklich zuviel Strom habe mach ich einfach mehr Licht - auch am Tag. So ist gewähleistet, dass in der Ladephase praktisch die ganze Energie genutzt wird, ausgenommen der 18mA, die der Arduino Nano zieht.
- Die beiden Leuchdioden in der Konsole nutze ich jetzt für Statusmeldungen:
1. Wenn das System eingeschaltet ist und der Arduino bootet (dauert ca 1s) blinkt die rote Led ganz schwach und zeigt damit an, dass das System im Betrieb ist. Es ist auch eine Erinnerung nicht zu vergessen den Akku zu trennen .
2. Wenn Sonne auf die Zellen strahlt und Ladestrom vorhanden ist, leuchtet die rote LED permanent. Dieses sagt mir, dass die Solarspannung hoch genug ist um Strom in den Akku fließen zu lassen. Um das herauszufinden, habe ich die Tatsache genutzt, dass die Schottky Trenndiode einen kleinen Spannungshub hat. Der Arduino mißt die Spannung vor - und hinter der Diode. Sobald der Wert vor der Diode höher ist als dahinter (Akkuspannung) schaltet der die rote LED auf Dauerlicht.
3. Wenn die Akkuspannung den Ladeschluss erreicht hat, leuchtet die grüne LED und sagt mir, dass der Akku voll ist.
Die rote LED ist absichtlich schwach, so dass sie nicht stört und braucht dabei weniger als 1mA, ausserdem blinkt sie im Idle Zustand und braucht dabei fast nichts mehr. Die grüne ist heller aber der Fall tritt erst auch wenn der Akku voll ist. Dann ist Strommangel ohnehin kein Problem.
Was ich jezt tue ist, einen Akku ganz vollzuladen und testen ob die "Akku voll" Anzeigt funktioniert wie erwartet. Auf dem Tisch hat das alles funktioniert aber ich teste jetzt im eingebauten Zustand im DF.
Anbei der Code:
#############################
int mosfet = 2;
int green = 4;
int red = 7;
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(mosfet, OUTPUT);
pinMode(green, OUTPUT);
pinMode(red, OUTPUT);
}
void loop() {
int sensorAccu = analogRead(A0);
int sensorSolar = analogRead(A1);
float accuvoltage = sensorAccu * (5.0 / 1023.0);
float solarvoltage = sensorSolar * (5.0 / 1023.0);
////
if (accuvoltage > 4.1) {
digitalWrite(mosfet, HIGH);
digitalWrite(green, HIGH);
}
else {
digitalWrite(mosfet, LOW);
digitalWrite(green, LOW);
}
////
if (solarvoltage > accuvoltage) {
digitalWrite(red, HIGH);
}
else {
digitalWrite(red, HIGH);
delay(50);
digitalWrite(red, LOW);
}
////
Serial.print(accuvoltage);
Serial.print(" ");
Serial.println(solarvoltage);
delay(950);
}
################################################
Leider habe ich vergessen Fotos zu machen und es ist schon in der Konsole eingebaut. Das war etwas Fummelei. Wenn ich mal was ändere und das Teil wieder rausholen, mach ich Fotos, verspochen!
Die Analogpins A0 und A1 sind mit einem Spannungsteiler versehen: 2x 10kOHm, so dass aus 5V 10V werden. Die Pins 2 ist mit 200Ohm am Gate und Pin 4, hat 1,5kOhm und Pin 7 10kOhm Vorwiederstand. Die grüne LED ist heller als die rote.
Anmerkung: Die Einrückungen im Code sind durch die Forensoftware glattgebügelt worden
Nächster Schritt: Ein E-Paper Display für die Anzeige der Bordspannung
Übernächster Schritt: Ein Current Sensor Modul für Messung von Lade und Entladestömen. Anzeige auf dem E-Paper Display