Ich habe mir vor ein paar tagen einen Elegoo MEGA zugelegt und habe mir jetzt folgendes Projekt in den Kopf gesetzt:
Ich möchte mit einem Panel eine Batterie aufladen, aber sobald es dunkel ist soll das solar Panel praktisch vom der Batterie getrennt sein(Dies auch mit einer LED darstellen).
Akku Anzeige 6 LEDs (2 Grüne, 2 Orangen 2, Rote),
Solar Panel AN/AUS LED (Nur leuchten wenn Nacht ist),
2 LEDs die anzeigen ob eine Batterie eingelegt ist
Du könntest deinen Eingangspost editieren mit Teilen aus diesem Text
Dominik:
Ich möchte das ein Solar Panel einen Akku Block mit 2 AAA Batterien aufläd und in der Nacht die 2 AKKUS einspringen z. B. für einen kleinen Motor oder eine LED...
Den Füllstand der beiden Akkus soll über eine 6 stellige LED anzeige (2 Rote 2 Orange, 2 Grüne) dargestellt werden. Es soll außerdem mit einer RGB LED angezeigt werden in was für einem Status das System ist "Rot ...."
Rot: wenn die Batterie nicht eingelegt ist
Orange ...
Wie könnte man das machen das wenn die Batterie nicht eingelegt ist das eben die und die Lampe leuchtet
... oder auf die aufgeworfenen Fragen (Wie soll das gehen ohne Batterien) antworten.
Batterie-Laderegler kann, z.B. bei LiPo - Akkus, relativ riskant sein.
Ich würde daher die Akkus über einen fertigen und zuverlässigen Laderegler laden, und höchstens zum Spaß zu Informationszwecken die Batteriespannung messen und in eine LED-Anzeige umwandeln, wenn der Laderegler das nicht zufriedenstellend kann.
weiters Problem ist das ich die Spannung garnicht erst messen kann.
Ich habe mein Batterie fach an pin A0 gesteckt und GND zu GND auf dem arduino.
//so habe ich die Volt umgerechnet
voltage = sensorValue * (5.0 / 1023.0)
wenn alle 2 batterien eingelgt ist stimmt die Volt komischer weise
Folgende zahlen kommen raus wenn keine Batterie eingelegt ist:
3.36
1.67
0.97
3.24
2.40
0.78
2.98
2.83
0.66
2.35
3.07
0.80
1.60
3.25
Wenn ich den stecker von A0 Ziehe kommt das:
1.39
1.40
1.45
1.40
1.39
1.45
1.41
1.39
1.44
1.43
1.38
1.43
1.44
weiters Problem ist das ich die Spannung garnicht erst messen kann.
analogRead(A0); wird gern mal als Zufallszahlengenerator verwendet. Insbesondere, wenn man einen losen Draht anschließt. Man kann oft etwas mit 50 Hz Schwankendes erkennen und versuchen sich (in Alufolie gewickelt) vor Elektrosmog zu schützen.
Dann ist der Eingang offen und dein Kabel ist eine Antenne, die alles drumherum empfängt, u.a. sehr viele Störungen.
Da solltest du mit einem Spannungsteiler arbeiten.
Das habe ich schon gemerkt wenn ich mit meinem headset näher gekommen bin hat sich immer was verändert.
Kann mir einer sagen wie ich das machen mit dem Spannungsteiler?
Dominik1313:
Das habe ich schon gemerkt wenn ich mit meinem headset näher gekommen bin hat sich immer was verändert.
Kann mir einer sagen wie ich das machen mit dem Spannungsteiler?
Weißt du nicht, was ein Spannungsteiler ist ?
Und schön wäre es auch, wenn du unsere Fragen beantwortest, wir beantworten deine doch auch.
Was könnte damit gemeint sein, daß Du nicht alle Fragen beantwortet hast?
Wahrscheinlich, daß in einem der 16 Post's über Deinem eine Frage zu Deinem Problem steht, Die noch auf Antwort wartet ... ok, Das habe ich mir nun nur aus den Fingern gezogen, möchte aber wetten, daß Das genau so passt.
So, zu Deinem Sketch.
Was mir aufgefallen ist - Du fragst die Spannung, unter Anderem, mit if >=0.00 ab ... was soll Das bringen?
Welche Werte erwartest Du, wenn Du mit einem ADC-Wert (0...1023) eine positive Zahl multiplizierst?
Ich wurde irgendwas größer-gleich Null erwarten - somit ist die IF zumindest verbesserungswürdig (da immer true unnötig).
Was passiert zwischen 0.30 und 0.40??
Laut Seinem Sketch ... Nichts!
Die delay() in Deinem Blink-Funktionen stören akut nicht sonderlich - trotzdem solltest Du Dir überlegen, ob man Das nicht auch anders hinbekommen kann.
Auch, da beide Funktionen nahezu das Gleiche machen, könnte man Diese zusammen fassen und mit einem Parameter entscheiden, welche LED nun blinken soll (oder wie schnell).
... wobei Das bei 2 digital.Write + delay nicht unbedingt kürzeren Code bedeuten muß ...
Deine Probleme sind:
Verhindern, daß am A0 'Müll' anliegt - geht per externem Pull-Down
die Lücken in den Anzeigen schließen (>=0 <X, >=X <Y, >=Y <Z ...)
delay raus (noch kein Muss)
Mache Dir Gedanken, ob Du überall 'int' benötigst oder ob es 'bessere' Datentypen gibt
was const ist, mache auch const - LED-Pins werden sich zur Laufzeit wohl nicht ändern
drücke STRG+T in der IDE - Das rückt den Sketch entsprechend der Klammer-Ebenen ein
MfG
PS: Drei Threads?? ... dann werde ich wohl gleich noch Einen finden ...