Forum: Mikrocontroller und Digitale Elektronik attiny Spaannungsüberwachung


von Hans (Gast)


Lesenswert?

Ich möchte bei einer Led Lampe einen attiny13 mit 3 Mignon Akkus 
verwenden. Wenn die Spannung unter 3V sinkt soll der Mikrocontroller in 
den sleep-mode schalten. Ich habe hier mehrere Ideen mit brown-out 
detektor gelesen. Aber ist dieser eigentlich nicht nur für kurze 
Spannungseinbrüche? Meine Idee wäre daher alle 5 min die Spannung mit 
dem integrierten Adc zu messen und dann bei 3V kontrolliert in den sleep 
mode zu wechseln. Beim Einschalten muss bei der ersten Messung dann die 
Spannung bei 3,2V liegen um eine Hysterese zu haben. Kann man das so 
machen? Und brauche ich für die Versorgungsspannungsmessung einen 
Spannungsteiler oder kann die interne Referenz des Adcs bis 4 V messen?
von Uwe (Gast)


Lesenswert?

Du kannst nie mehr messen als du dem ADC als Ref gibst also 
Spannungsteiler. Aber wie willst du den den wieder aufwecken ? Der ADC 
ist ja aus wenn im Sleep mode. Guck mal ob du was mit dem Analogen 
Komperator hin bekommst.
von VAR (Gast)


Lesenswert?

mit Ucc als Referenz die Bandgap messen:
Ucc = 1024/ADC * Bandgap
oder mit Beispielwerten: (hab grad keine Infos zum tiny13, nur allg. 
AVR)
2,4V  = 1024/512 * 1,2V
von VAR (Gast)


Lesenswert?

OK, Tiny13 hat zwar Bandgap von 1,1V, aber der ADMUX kann das nicht.
Tiny24/25 u.v.a können das.
von Max (Gast)


Lesenswert?

Auf Knopfdruck aufwachen, Spannungsteiler an (high-seite an portpin) und 
dann mit interner Referenz gemessen und vergleichen, fertig
von Hans (Gast)


Lesenswert?

Schade dass das mit der bandgap Spannungsmessung nicht funktioniert, das 
wäre die eleganteste Lösung. Werde wohl 2 Widerstände verwenden müssen. 
Ich denke der analoge Komparator scheidet aus, da die Spannung dann 
nicht softwaremäßig eingestellt werden kann, wenn ich das richtig sehe..
von Hannes L. (hannes)


Lesenswert?

Hans schrieb:
> Werde wohl 2 Widerstände verwenden müssen.

Nööö...

Schalte zum Messen kurz einen LED-Ausgang (an einem ADC-Pin) auf Eingang 
mit PullUp und miss die LED-Spannung gegen Vcc als Referenz. Wirkt 
genauso wie das Messen der Bandgap-Spannung gegen Vcc.

...
von Hans (Gast)


Lesenswert?

Gute Idee mit der Led Spannung. Das geht aber nur wenn man sie nach VCC 
schaltet oder? Bei mir wird die Led nach Masse geschaltet und hängt mit 
der Anode dauerhaft an VCC.
von Hannes L. (hannes)


Lesenswert?

Hans schrieb:
> Gute Idee mit der Led Spannung. Das geht aber nur wenn man sie nach VCC
> schaltet oder?

Dann wird das mit dem hochohmigen internen PullUp nix...

> Bei mir wird die Led nach Masse geschaltet und hängt mit
> der Anode dauerhaft an VCC.

Dann könntest Du extern einen hochohmigen PullDown anbringen, der einen 
geringen Messstrom durch die LED treibt, wenn der Pin als Eingang 
umgeschaltet ist. Du hast dann eine konstante Spannung zwischen Vcc und 
Eingang. Da Du ja keine Spannung anzeigen musst, sondern nur einen 
Schwellwert zum Abschalten brauchst, kannst Du damit leben.

Beispiel (angenommene Werte):
Vcc,  über LED, über R, Messwert
4,0 V  2,0 V     2,0 V   50 %
3,0 V  2,0 V     1,0 V   33 %

Dein Messwert ändert sich also um 1/6 des Max-Wertes. Dies müsste für 
eine Abschaltschwelle dicke reichen. Ich würde da noch die gleitende 
Mittelwertbildung mit einsetzen, um Ausreißer auszublenden.
Beitrag "Re: ADC Code"

...
von Hans (Gast)


Lesenswert?

Ich denke ich werde dann eher den uC umprogrammieren dass die Led nach 
Vcc geschaltet wird. Ein externer pull down verursacht evtl. im 
sleep-mode einen zu hohen Leckstrom.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.