Welcher Elko für kurze Notstromversorgung?

Hallo, schon wieder ein Thread von mir, entschuldigt bitte :smiley:

Da ich bezogen auf meine Frage keinerlei Erfahrung habe hoffe ich dass ihr gewollt seid mir wieder zu helfen. Es geht um Folgendes:
Ein Arduino Nano zählt zwei verschiedene Timer und zeigt diese auf einem Display an. Betrieben wird mit einer 9V-Batterie. Ich messe an einem Analogpin die an der Batterie anliegende Spannung. Wenn die Spannung unter einen bestimmten Wert fällt (oder die Batterie entnommen wird) sollen die Timerwerte ins eeprom gespeichert werden.
Dafür benötige ich ja einen Kondensator, welcher das Setup nach Verlust der Spannungsquelle noch kurz mit Strom versorgt. Der Stromverbrauch liegt nach meiner Recherche fürs Display bei ~40mA, fürs Arduino bei ~35mA, also sagen wir mal es müssten für 2-3 Sekunden (als Sicherheit) rund 80mA und 7V (der empfohlene Wert) zur Verfügung stehen.

Ich habe leider wie gesagt damit keinerlei Erfahrung, kann mir aber zB auch denken dass der Elko nicht zu groß sein sollte, der muss ja auch erstmal geladen werden.
Anbei noch die Schaltung die ich mir vorgestellt habe. Wenn durch diese Art von Schaltung das Arduino etwas länger zum starten braucht weil der Elko erst geladen werden muss stellt das kein Problem dar.

Vielen Dank, wieder einmal :slight_smile:

Abgesehen von der Größe des Kondensators, er muss parallel zur Spannungsversorgung angeschlossen werden und nicht in Reihe.

Und was genau möchtest du mit dieser Schaltung bewirken ?
Ein Elko wird da nicht ausreichen.
Min. ein Goldcap solltest du verwenden.
Die sind aber soviel mir bekannt ist, nur für 5Volt spezifiziert. Da müsstest du deine Schaltung ändern.

ELKO richtig anschließen wurde schon genannt.
Aufpassen, die Diode (die du brauchst) wird dir auch einen Spannungsfall bescheren.
Sobald die Spannung abfällt, sofort auch das backlight des LCD abschalten, dann erst ins EEPROM schreiben.
ich würde einfach mal mit 4700µF anfangen. Aber das hängt wohl eher davon ab, was du zu Hause hast… was kannst anbieten?
edit: hab grad einen UNO + PCF + LCD ohne Backlight ausprobiert, 4700µF ist knapp könnte aber reichen … hab keinen Skech dafür geschrieben.

edit2:
ja geht verlässlich

#include <EEPROM.h>
const byte cols = 16;                  // columns/characters per row
const byte rows = 2;                   // how many rows
const byte addr = 0x27;                // set the LCD address to 0x3F or 0x27

#include <NoiascaLCD.h>      // use the adopted library downloaded from https://werner.rothschopf.net/202009_arduino_liquid_crystal_intro.htm//  
#include <NoiascaHW/lcd_i2c.h>         // include the proper IO interface
LiquidCrystal_I2C lcd(addr, cols, rows);           // create lcd object - with support of special characters
//LiquidCrystal_I2C_base lcd(addr, cols, rows);           // create lcd object - without support of special characters

uint16_t powercycles = 0;

void setup()
{
  EEPROM.get(42, powercycles);
  powercycles++;
  Wire.begin();                        // start I2C library
  lcd.begin();                         // initialize the LCD
  lcd.backlight();                     // turn on backlight
  lcd.setCursor(0, 0);
  lcd.print("Save on noPower");
}

void checkbat()
{
  if (analogRead(A2) < 1000)
  {
    lcd.noBacklight();
    lcd.setCursor(0, 1);
    lcd.print("powerloss");
    EEPROM.put(42, powercycles);
    lcd.print(" - written");
    delay(5000);
  }
  else
  {
    lcd.backlight();
    lcd.setCursor(0, 1);
    lcd.print(millis());
    lcd.print("   ");
    lcd.print(powercycles);
  }
  
}

void loop()
{
  checkbat();
}

hab jetzt kleinere Werte ausprobiert: 220 reicht mit einer Shottky IN5819 nicht mehr. 330, 470µ, 1000µF haben funkioniert.

mit einer normalen N4007 Diode braucht es schon 1000µF, man sieht aber auch am LCD, dass die Spannung im Normalbetrieb dann zu gering wurde.

Also kurz gesagt, hängt von deiner Schaltung ab was du brauchst.

@Scherheinz
Man sollte sich eben doch vorher mal ne Schaltung angucken, danke habs jetzt hoffentlich korrigiert, Bild siehe unten.

@noiasca
Danke. Also sollte es mit der von dir genannten Diode und diesem Kondensator (Link: FC-A 4,7M 16) funktionieren? 16V und 4700µF. Soweit ich das nachlesen konnte sind die 16V ja nur das maximale für den Kondensator. Oder wäre es sinnvoller einen 5V Elko zu nehmen und die Spannung davor mit einem Widerstand runterzusetzen?
Edit: Die Beleuchtung am Display ist die größte Zeit sowieso aus, die wird nur angeschaltet wenn ein Button zur Timerumschaltung gedrückt wird.

Hier die (hoffentlich) korrigierte Schaltung:

Bist du denn auch so freundlich und beantwortest meine Frage ?

die 16V sind maximale Spannung die er ab kann. Das passt schon. Wenn du nur 9V hast, liegen eben 9V an.
Die Schaltung schaut besser aus, außer dass bei meinem Elko der weiße Strich auf - ist … aber das siehst dann eh wenn deine Dinger da sind.
Bestell halt ein paar andere Werte mit, kosten eh quasi nix und nehmen in der Bastelkiste kaum Platz weg

@HotSystems
Sorry, das ist gerade untergegangen. Die Schaltung war eigentlich nur dazu da um zu zeigen wo der Kondensator hin soll und ob das so passt.
Im Projekt geht es darum dass zwei verschiedene Zeitwerte hochgezählt werden, die Buttons sind dafür da um den jeweiligen Timer aktiv zu schalten und den anderen zu pausieren. Das hat also mit der eigentlichen Frage zur “Notstromversorgung” nichts zu tun.

@noiasca
Okay, das war in Fritzing nicht ersichtlich. Aber am Bauteil wird es ja sicher gekennzeichnet sein, wie du schon sagst. Dann bestell ich einfach mal ein paar verschiedene Werte.

Ok, dann ist es klar.
Nur 3-4 sek. kann man nicht als Notstromversorgung kennzeichnen.
Daher meine Frage, was du damit erreichen möchtest ?

Wie oben beschrieben sollen bei “Stromausfall”, also im konkreten Fall Batterie leer, die Timerwerte ins eeprom geschrieben werden dass diese nicht verloren gehen.

Ok, das sollte passen.

Ich seh das kritisch, den Display aus den 5V des Nano zu speisen.
Nimm einen StepDown, dessen Eingang an den 9V-Pin der Batt.
Der Ausgang geht dann
A) an den VCC-PIN des Display
B) über eine Diode UND den Kondensator an den 5V-PIN des Nano

Vorteil, der Display ist aussen vor
Nachteil, die Batterie muss ab, wenn USB-Kabel dran gehen soll.
Aber Du verbrennst damit weniger und belastest den NANO-Spannungsregler nicht, wenn nur der ELKO dran hängt.

nur damit da keine Missverständnisse aufkommen, der läuft auch keine 3…4 Sekunden mit 4700mü, das ist gerade mal so viel dass die paar Takte zum EEPROM schreiben sich ausgehen :wink:

@noiasca
Woran genau hast du die “1000” eigentlich festgemacht? Welcher Spannung entspricht das in etwa? Ist da “mein” Spannungsteiler (durch 11, 100kOhm und 10kOhm) berücksichtigt?
Und ja, dachte ich mir schon. So lange die Werte gespeichert werden ist alles andere egal.

@my_xy_projekt
Sinnvoller wäre das bestimmt, aber da am Ende wenn es zuverlässig funktioniert mehrere davon gebaut werden wollte ich es so einfach und günstig wie möglich halten.

Allein der Versuch die Displaybeleuchtung zum Zeitpunkt des Ausfall nicht abgeschaltet zu haben, macht das zunichte.

Wenn Du davon eh mehrere bauen willst, dann ergeben sich noch viel mehr Fragen…
U.a. die, ob es ein 5V Nano sein muss…

Achja, bedenke, ich habe den anderen Thread gelesen :slight_smile:

war keine Wissenschaft. Es hätten auch 0815 sein können. Erst wollte ich Digital messen, dann hätte ich aber einen Pulldown gebraucht um ein exaktes Low bei Spannungswegfall zu bekommen. Also hab ich halt analog gemessen und bin auf die externe 5V Versorgungspannung gegangen. Du hast einen Spannungsteiler, musst halt ausrechnen.

Okay okay, dann muss ich jetzt aber nochmal bezüglich dem Betrieb mit 9V Batterie nachfragen:
Ich habe gelesen dass der “typische” 9V-Block bei 7V aufgibt. Heißt das unter 7V fließt nicht mehr ausreichend Strom? denn die 7V würden dem Arduino ja noch problemlos ausreichen.

Der 9V-Block den ich gerade zum Testen hier habe hat ohne Last mit nem billigen Multimeter gemessen 8.7V. Betreibt er den Timer dann zeigt mir das Multimeter wenn das Licht am LCD an ist 7.7V und ohne Licht am Display 8.3V.

Ich habe mir heute vom Betriebselektriker zwei Widerstände ausmessen lassen die “relativ genau” (laut seinem “besten” Multimeter) 100kΩ und 10kΩ haben. Demzufolge sollte der Spannungsteiler relativ genau durch 11 teilen. Mit Arduino gemessen komme ich auf aber auf folgende Abweichungen zum Multimeter:
Arduino / Multimeter
8.1V / 8.3V LCD-Licht an
7.3V / 7.7V LCD-Licht aus

Einmal 0.2V, einmal 0.4V Abweichung zum Multimeter. Woran kann das liegen?

Das Sinnvollste wird also sein wie es in @noiasca’s code ist ab einer bestimmten Spannung alle x Sekunden zu speichern? Bei Batterien wird es keine zuverlässige Möglichkeit geben genau den Moment des Versagens zu “erkennen”, oder? Da wird sich ja jede Batterie etwas unterschiedlich verhalten.

Sorry für den Roman… :smiley:

Ja.
Darum: Verbrenne nicht alles in Wärme.
Dein Spannungsteiler: Wärme
Der Spannungsregler auf dem Nano: Wärme
Der I2C-Adapter: Wärme
(Unnütze LED’s: Na Du weisst schon…)

Bedenke: Deine R’s können auch nur eine bestimmte Last ab. Willst Du 10mA durch den Teiler jagen oder 300? Der Spannungsabfall x Strom = Leistung. Kann das der R?

also es war nicht mein Plan alle x Sekunden zu speichern, sondern das Delay ist nur drinnen, um nur einmal vor Stromaus zu schreiben. nach 5 Sekunden Wartenzeit war bei mir der Elko immer leer.

Ich unterstreiche: du sollst verhindern dass er “alle x Sekunden” speichert. Also den Grenzwert soweit runtersetzen, dass du den Ausfall der Spannungsquelle erkennst, zum letzten Speichern hast ja die Kapazität im Elko.

@my_xy_projekt
Verstehe schon, deswegen ist das Display jetzt auch die meiste Zeit aus. Eventuell kann ich komplett auf die Beleuchtung verzichten, ich hab mir dummerweise erst ein blaues LCD bestellt, momentan ist ein grünes mit schwarzer “Schrift” im Zulauf, das sollte ohne Beleuchtung deutlich besser lesbar sein.
Den Spannungsteiler brauch ich ja aber bei der 9V-Batterie, der Pin am Arduino kann ja nur 5V ab?! Wäre es hier sinnvoller einen einzelnen Widerstand zu nutzen der entsprechend dimensioniert ist?

@noiasca
Dass das nicht der Plan war dachte ich mir, aber das ist ja quasi das was der Code macht, je nachdem wie man die schwelle dann setzt. Also bleibt da wirklich nur probieren, na gut…