Forum: Mikrocontroller und Digitale Elektronik Stromsparschaltung bzw. Stand-By-Schaltung


von Marcel Stach (Gast)


Angehängte Dateien:

Lesenswert?

Hi@ all,

ich versuche jetzt schon seit mehreren Tagen eine Stromsparschaltung 
bzw. Stand-By-Schaltung für mein aktuelles Projekt zu realisieren. 
Leider komme ich aber aktuell nicht zu einem wirklich brauchbaren 
Ergebniss.

Zum Projekt: Es handelt sich hierbei um ein Temperaturmessmodul an dem 
zwei Temperatursensoren (KTY81-110) angeschlossen sind. Die Wahl des 
jeweiligen Sensors erfolgt mit zwei Tastern; Taster A = Sensor A und 
Taster B = Sensor B. Angezeigt wird die jeweilige Temperatur auf einem 6 
stelligen 7-Segmentdisplay, welches wiederum durch ein Schieberegister 
(74HC595) angesteuert wird. Das durch steuern der jeweiligen Segmente 
(Digits) übernimmt der Microcontroller (ATmega328P-PU) welcher auch die 
Temperaturmesswerte berechnet. Das ganze bisher beschriebene 
funktioniert tadellos.

Nun zum eigentlichen Problem:  Das Temperaturmessmodul soll 
Batteriebetrieben sein und nicht 24h die Temperatur anzeigen – lediglich 
nach Bedarf. Aktuell werden die Anzeige und alle angeschlossenen 
Status-LEDs nach 20sek. ausgeschaltet. Dabei ist jedoch der 
Stromverbrauch noch bei knapp 100mA was bedeutet, dass die 
angeschlossene 9V-Blockbatterie nach mehr als einen Tag ausgetauscht 
werden müsste.

Nun versuche ich die ganze Zeit das Problem Schaltungstechnisch zu lösen 
um den Stromverbrauch bei Inaktivität weit unter 100mA zu bekommen.

Die hier gezeigte Schaltung funktioniert zwar, hat aber ein großes 
Problem. Sobald ich den Schalter J1 betätige Schaltet der Transistor Q1 
durch und der Festspannungsregler U1 wird geschaltet. Die gesamte oben 
beschriebene Schaltung wird dann von diesem mit der Betriebsspannung von 
5V versorgt. Leider fällt aber auch dann die Spannung am Eingang auf 
fast 6V ab. Was dazu führt, dass die Anzeige entweder nur sehr kurz oder 
gar nichts mehr anzeigt. ;(

Wie bekomme ich es hin, dass der Eingang des Festspannungsreglers auch 
bei eigeschalteter Last noch die volle Batteriespannung bekommt?

Viele Grüße, Marcel Stach

von Kein Name (Gast)


Lesenswert?

Normalerweise packt man das anders herum an. Einen Spannungsregler der 
nur uA selbst verbraucht und einen Mikrocontroller, der die meiste Zeit 
im stromsparensten Sleep Mode verbringt. Weitere Komponenten werden dann 
nur bei Bedarf vom MC mit Strom versorgt.

von Ulrich (Gast)


Lesenswert?

Ein 9 V Block und LED Anzeige ist keine gute Kombination. Mit einem Low 
Drop Regler sollte es auch 3 oder 4 AA Zellen tun. Da hat man rund die 
20 fache Kapazität.

Als Spannungsregler wäre so etwas wie ein MCP1702 eine Anregung - es 
müssen auch keine 5 V sein. Der µC braucht bei 3 V auch weniger Strom. 
Bei 3 Zellen ginge es ggf. auch ganz ohne Regler.

von Kein Name (Gast)


Lesenswert?

Stimmt eigentlich. 3 Zellen, LED und Widerstand haben wir früher auch 
ohne Spannungsregler gemacht. 47HC vertragen auch halbleere Batterien.

Und der KTY81 kommt auch ohne Spannungsregler aus, solange man die 
Versorgungsspannung als Referenzspannung für den ADC benutzt.

Sollte eigentlich ausreichen:
- ATmega direkt an 3 Zellen anschliessen.
- Programm so oft wie möglich in den den sleep Modus
- Spannungsversorgung Schieberegister und KTY81 mit P-Mosfets abschalten
  (Dann Sleep im Power-Down Mode)
- Mit den beiten Tastern über Interrupt aufwecken

Allerdings, auf die 2uA eines MCP1702 konnt es auch nicht mehr an.

von Marcel Stach (Gast)


Lesenswert?

Vielen Dank für Eure hilfreichen Tipps. Ich habe jetzt den AVR in den 
Sleep-Modus versetzt und wecke diesen wahlweise mit Taster "A" oder 
Taster "B" wieder auf. Der aktuelle Stromverbrauch im Sleep-Modus 
beträgt jetzt rund 7mA. Entferne ich den 7805 und verwende mein 
Labornetzteil mit eingestellten 3,3V Betriebsspannung, so beträgt die 
Stromaufnahme nur noch knapp 2mA im Sleep-Modus.

Viele Grüße, Marcel Stach

von Moritz A. (moritz_a)


Lesenswert?

Marcel Stach schrieb:
> Entferne ich den 7805 und verwende mein
> Labornetzteil mit eingestellten 3,3V Betriebsspannung, so beträgt die
> Stromaufnahme nur noch knapp 2mA im Sleep-Modus.

Das ist eigentlich immer noch zu viel, bist du wirklich
- im Power-Down-Sleep
- alle Möglichkeiten zum Energiesparen ausgereizt (ADC abgeschaltet, 
Referenzspannung abgeschaltet, BOD-Disable, PRR Register)

Da solltest du eigentlich im Bereich <0.5µA landen.

von Wolfgang B. (Firma: privat) (umsteiger)


Lesenswert?

Dieses Thema brennt auch mir "sehr heiss" auf den Nägeln.
 Aus diesem Grund beabsichtige ich für solche Zwecke ein "Butterfly 
Modul" zu nutzen in dem
werkelt ein Atmega 169 (so glaubebe ich heisst der). Dieser Prozessor 
ist auch in den Temperaturreglern für Heizkörper zu finden, die mit 
einer mini-USB-Buchse versehen sind und über den PC Programmiert werden 
können.
Ein solcher Regler läuft mit 2 AAA-Zellen ein Jahr.
-Das Problem für mich ist, das Programm im Batterfly-Modul zu ändern 
ohne gleich alls "Neu" programmieren zu müssen.
Also, den Surcecode nur (Schrittweise) zu ändern und an meine 
Bedürfnisse anzupassen.

Leider habe ich den  Originalcode, passend zu GCC noch nicht aufspüren 
können. Vielleicht kann ja hier jemand helfen.

Wolfgang

von Moritz A. (moritz_a)


Lesenswert?

Google wird auch überbewertet? 
http://siwawi.bauing.uni-kl.de/avr_projects/

: Bearbeitet durch User
von Kein Name (Gast)


Lesenswert?

> Da solltest du eigentlich im Bereich <0.5µA landen.

KTY81 mit 2k Widerstand verbraucht ja schon 1mA. Und dann noch mal 1mA 
Ruhestrom für die 74HC595.

Da müsste der ATmega vorm Sleep noch die Spannungsversorgung der 
Komponenten abschalten. So etwas in der Art mit Logiclevel P-Mosfet:
http://www.mikrocontroller.net/attachment/130170/p-mosfet.png

von Ulrich (Gast)


Lesenswert?

Der 74HC595 sollte nicht viel Strom verbrauchen. Im Datenblatt von ST 
steht für 25°C maximal 4 µA. In der Regel wird auch noch einiges weniger 
sein.

Den KTY81 sollte man natürlich schon abschalten - das geht auch direkt 
mit 1 Pin am µC.

von Wolfgang B. (Firma: privat) (umsteiger)


Lesenswert?

Hallo Moritz,

danke für den Link.
Es ist mir gelungen den Surcecode des Batterfly ins AVR-Studio mit 
Integriertem AVR GCC zu laden und auch das compilieren funktioniert
fehlerlos. Alle Files *.hex, *.eep, *.lss, *.map
und objektfiles *.o werden generiert.
In einem zusätzlihen Ordner "dep" finde ich noch Dateien:
*.o.d
- Nun sollte es mir gelingen einuge Änderungen in Projekten die
mit "C" entwickelt wurden durch zu führen.
Ein "C-Programmierer" der die Sprache im kleinen Finger hat, mus ich 
nicht
mer werden.

Nochmals Dank.

Wolfgang

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.