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
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.
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.
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.
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
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.
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
> 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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.