Forum: Mikrocontroller und Digitale Elektronik Strom sparen für Fernbedienung


von gastro (Gast)


Lesenswert?

Hallo meine LIEBEN,
Ich habe eine RC5 Fernbedienung gebaut und wollte diese jezt mittels 
Akkus betreiben(Atmega8, IR-led+Transistor, 6 Taster, 
Spannungsversorgung:7805).
Zur Stromersparniss wollte ich den Atmega in den Sleepmode(POWERDOWN) 
schicken solange nix zu tun ist.

1.)Allerdings ist mir aufgefallen das der 7805 ja selbst 5mA verbraucht,
   oder sehe ich das aus dem Datenblatt falsch???? wieviel verbraucht 
er???

2.)Betreibe die Taster mit 10kOHM derzeitig als LOW activ, wie im
   Tutorial auf mikrocontroller.net. Wäre es nit klüger die Taster mit
   1MOHM zu betreiben als LOW activ, oder noch besser als HIGH activ,
   um Strom zu sparen??? Sricht da irgendwas dagegen oder dafür???
   Bisher wären das ja ansonsten 5V/10kOHM=0,5mA
   0,5mAx6Taster=3mA, oder???

3.)Möchte das ich mit allen Tastern den Atmega8 aus seinen Dornröschen
   schlaf erwecken kann, und zwar am PIND2, also mit INT0. Einfachste
   Möglichkeit die ich sehe(für HIGH activ) alle Pins über eine Diode an
   INT0, oder gibts ne einfachere Lösung???


4.)Letzte Frage, was ist der Unterschied zwischen dem setzen von
   ISC01-ISC00 = 00 und 10, also "The low level of INT0 generates an
   interrupt request" und "The falling edge of INT0 generates an 
interrupt
   request"???

Vielen Dank im voraus für Eure Antworten und Hilfe, GASTRO.

von Philipp B. (philipp_burch)


Lesenswert?

gastro wrote:
> Hallo meine LIEBEN,
> Ich habe eine RC5 Fernbedienung gebaut und wollte diese jezt mittels
> Akkus betreiben(Atmega8, IR-led+Transistor, 6 Taster,
> Spannungsversorgung:7805).
> Zur Stromersparniss wollte ich den Atmega in den Sleepmode(POWERDOWN)
> schicken solange nix zu tun ist.
>
> 1.)Allerdings ist mir aufgefallen das der 7805 ja selbst 5mA verbraucht,
>    oder sehe ich das aus dem Datenblatt falsch???? wieviel verbraucht
> er???

Der 7805 ist für sowas denkbar ungeeignet (Wegen dem hohen 
Eigenverbrauch). Schau mal z.B. bei TI, die haben Spannungsregler (Auch 
als Schaltregler), die mit Strömen im uA-Bereich auskommen. Die irgendwo 
zu bekommen dürfte dann halt wieder ein anderes Problem sein. Wenn es um 
Einzelstücke geht, liesse sich vielleicht mit den Samples etwas machen.
Und 1A wirst du in der Fernsteuerung auch eher nicht brauchen, was 
allerdings erforderlich ist, ist ein Elko, damit die Spannung beim 
Senden nicht einbricht (Hoher Strom durch die IR-Diode).

> 2.)Betreibe die Taster mit 10kOHM derzeitig als LOW activ, wie im
>    Tutorial auf mikrocontroller.net. Wäre es nit klüger die Taster mit
>    1MOHM zu betreiben als LOW activ, oder noch besser als HIGH activ,
>    um Strom zu sparen??? Sricht da irgendwas dagegen oder dafür???
>    Bisher wären das ja ansonsten 5V/10kOHM=0,5mA
>    0,5mAx6Taster=3mA, oder???

Die externen Widerstände kannst du dir sparen, der ATmega8 hat auch 
interne. Da wird ja auch nur während dem Drücken Strom verbraucht, das 
ist vernachlässigbar.

> 3.)Möchte das ich mit allen Tastern den Atmega8 aus seinen Dornröschen
>    schlaf erwecken kann, und zwar am PIND2, also mit INT0. Einfachste
>    Möglichkeit die ich sehe(für HIGH activ) alle Pins über eine Diode an
>    INT0, oder gibts ne einfachere Lösung???

Ein entsprechendes Logikgatter vielleicht. Ist aber alles nicht so toll. 
Besser wär's, du würdest gleich einen ATmega48/88/168 verwenden. Die 
sind Pinkompatibel, gehören aber zur neueren Sorte. Da gibt's bei jedem 
Pin einen Interrupt und der Stromverbrauch beim Schlafen ist erst noch 
niedriger.

> 4.)Letzte Frage, was ist der Unterschied zwischen dem setzen von
>    ISC01-ISC00 = 00 und 10, also "The low level of INT0 generates an
>    interrupt request" und "The falling edge of INT0 generates an
> interrupt
>    request"???

Bei ersterem werden dauernd Interrupts ausgelöst, während LOW anliegt, 
bei zweiterem eben nur bei der Flanke.

von Jörg B. (manos)


Lesenswert?

Mega8L verwenden und den Spannungsregler ganz rausschmeißen...
Versorgen über 3 Batterie/Akku-Zellen

von Jörg B. (manos)


Lesenswert?

Was war denn die ursprüngliche Energiequelle? 9V Block?

von antworter (Gast)


Lesenswert?

Wenn Du schon einen Mega8 hast, brauchst Du nicht auf Mega8-L umsteigen:

(google-Cache Link, da Originalseite nicht ging)

http://64.233.183.104/search?q=cache:9KWLU8rAzZYJ:www.robotgames.net/atmel/mega8_or_mega8l.htm+Mega8L&hl=de&ct=clnk&cd=6&gl=de

Kurz: 8L ist einfach nur auf geringere Taktrate bei geringerer Spannung 
getestet

von gastro (Gast)


Lesenswert?

hallo,
erstmal vielen dank für eure antworten!

@Jörg B. : ja ich hab hier eine 9V blockbatterie. wie meinst du das mit 
nur
           3 Akkuzellen den Spannungsregler ganz rausschmeißen???
           einfach nur 3 akkus mit 1,2V in reihe mit nem 100uF elko und
           gut ist???

und nochmal zurück zum taster problem, verbraucht es wirklich keinen 
strom, wenn ständig 5V am atmega pin anliegen. denn wenn ich drücke 
zieht der tASTER den pin auf 0V, das meinte ich mit LOW activ, genau wie 
hier im Tutorial halt. ist HIGH activ nit stromsparender???

vielen dank im voraus und gruss GASTRO.

von gastro (Gast)


Lesenswert?

oder sind beim POWERDOWN modus die kompletten pins gesperrt und ziehen 
keinen strom mehr????

vielen dank und gruss nochmal,GASTRO.

von Gast (Gast)


Lesenswert?

Der ATMEGA 8L wurde vermutlich deshalb vorgeschlagen, weil der ab 2,7V 
arbeitet und Du deshalb bei dem die Spannung nicht stabilisieren 
brauchst.

Aus dem Datenblatt:
> Operating Voltages
>  2.7 - 5.5V (ATmega8L)

Alles zu den verschiedenen sleep modes im Datenblatt des ATMega8(L) ab 
Seite 33 ...

von fnah (Gast)


Lesenswert?

ATMEGA 8Ls sind einfach nur ATMEGA 8, die bei 16Mhz nicht stabil genug 
waren. ansonsten sind beide chips identisch. also gleicher 
spannungsbereich. allein das marketing hat sich einfallen lassen, die 
"schlechten" als die "guten" mit erweitertem spannungsbereich 
hinzustellen bzw. den ATMEGA8 diesen bereich zu nehmen.

von fnah (Gast)


Lesenswert?

siehe auch:
http://www.siwawi.arubi.uni-kl.de/avr_projects/evertool
---
Another non-offical information: The datasheets state that only L-type 
AVRs should be used for voltages below 4.5V. According to the 
information I've got from some "insiders" (who do not work for ATMEL) 
there is no selection for "low-voltage" operation. The selection is done 
for controllers which do not work reliably at 16MHz. Those are labeled 
as "L"-type. So there should be no problem using "normal" (non-"L") AVRs 
with Evertool at 3.3V operation voltage. I have tested "normal" AVRs 
with my prototypes and had no problems with Vcc=3.3V. Since 
XTAL-frequencies for both Evertool-controllers are below 8MHz you may 
just select the type you can get cheaper.
---

von fnah (Gast)


Angehängte Dateien:

Lesenswert?

und hier noch die "save operating areas" fuer 16MHz/20MHz-typen. solang 
man da drin bleibt, ist alles in butter. ich habe allerdings einen mega8 
auch problemlos mit 3V3@12MHz, was ausserhalb dieser area liegt und 
daher nur labor- aber nicht serientauglich ist.

von Michael K. (mmike)


Lesenswert?

Ich nutze immer den ZLDO500 ... der braucht fast keinen Strom und hat 
eine sensationelle Drop-out Spannung ....

von Philipp B. (philipp_burch)


Lesenswert?

Die Pins brauchen keinen bemerkenswerten Strom. Ein Problem wird's erst, 
wenn z.B. die internen Pull-Ups aktiviert sind, der Pin aber extern mit 
einem Pull-Down versehen ist (Das könnte eben bei High-Aktiven Tastern 
passieren). Oder wenn ein offener Pin als Eingang geschaltet ist. Der 
kann anfangen zu schwingen und der Schmitt-Trigger zieht mehr Strom. 
Steht alles im Datenblatt, schau mal bei den diversen 
Stromspar-Funktionen.

von fnah (Gast)


Lesenswert?

LP2950 mit 75µA gibts auch noch, sogar bei R.

von Thomas V. (thomas_v)


Angehängte Dateien:

Lesenswert?

…eine andere Möglichkeit ist es, den 7805 erst zu versorgen, wenn er 
gebraucht wird (s. Anhang). Ein Tastendruck schaltet Q2 – dieser 
versorgt den 7805 und damit den Controller. Dieser wiederum aktiviert 
sofort Q1 und damit weiter Q2. Dann kann Abgefragt werden, welche Taste 
gedrückt ist (UC1 und UC2 über Spannungsteiler an den Controller.) Wenn 
der Controller fertig ist, lässt er Q1 los und nimmt sich selbst den 
Saft (solange keine Taste mehr gedrückt ist… Bei vielen Tastern 
allerdings recht aufwändig.
Hab die Schaltung noch nicht getestet – wollte sie mal für ein ähnliches 
Projekt einsetzen…

Gruß, Thomas

von Stefan K. (_sk_)


Lesenswert?

> 2.)Betreibe die Taster mit 10kOHM derzeitig als LOW activ, wie im
>    Tutorial auf mikrocontroller.net. Wäre es nit klüger die Taster mit
>    1MOHM zu betreiben als LOW activ, oder noch besser als HIGH activ,
>    um Strom zu sparen??? Sricht da irgendwas dagegen oder dafür???
>    Bisher wären das ja ansonsten 5V/10kOHM=0,5mA
>    0,5mAx6Taster=3mA, oder???

Die Tasten sind kein Problem, solange keine gedrückt ist, fliesst kein 
Strom. Auch wenn 5V (bzw. Vcc) am AVR anliegen. Es ist aus 
Stromsparsicht völlig egal, ob Du low oder high aktiv benutzt. Low aktiv 
hat den Vorteil, dass Du die internen Pullups benutzen kannst.

> 3.)Möchte das ich mit allen Tastern den Atmega8 aus seinen Dornröschen
>    schlaf erwecken kann, und zwar am PIND2, also mit INT0. Einfachste
>    Möglichkeit die ich sehe(für HIGH activ) alle Pins über eine Diode an
>    INT0, oder gibts ne einfachere Lösung???

Das ist die Methode der Wahl. GGf. ein Dioden-Array verwenden.
Wenn Du auch den ATmega88 verwenden kannst: der hat einen 
Pin-on-Change-Interrupt: Sobald ein Pin den Pegel wechselt (-> Taste 
gedrückt), dann wacht er auf, ganz ohne Zusatzhardware.

Generell ist der ATmega88 besser im Stromsparen.

Noch ein paar Tipps, um den Stromverbrauch zu senken:

* möglichst niedrige VCC benutzen

* entweder keinen Regler (siehe andere Posts) oder einen mit
  "low-quiescent-current" benutzen.

* Die Batteriespannung nur so hoch wie wirklich notwendig.


Viel Spass, Stefan

von Stefan K. (_sk_)


Lesenswert?

@Thomas:

Das geht noch etwas einfach mit einem Regler, der einen /EN Eingang hat.
Dann spart man sich den T2.

Habe ich schon oft benutzt (mit einem Torex-Regler, leider gibt es den 
nicht wirklich in Kleinmengen zu kaufen) und funktioniert super.

Viele Grüße, Stefan

von Thomas V. (thomas_v)


Lesenswert?

@Stefan:

Ich hatte bisher nur den L4931 mit Enable-Eingang - und der verbraucht 
ausgeschaltet immernoch 50µA. Muss mich wohl mal noch nach anderen 
Reglern umsehen...

Gruß, Thomas

von gastro (Gast)


Lesenswert?

hallo,
werde die taster also so beibehalten.
spannungsregler fliegt raus und 3x1,2V akkus.
und das interrupt problem werde ich dann wohl mit einem logik gatter 
lösen müssen oder i bestell mir den ATmega88 wie vorgeschlagen!

besten dank und gruss, GASTRO.

von Jörg B. (manos)


Lesenswert?

Bei einem Mega88 könntest Du auch auf 2 Zellen runtergehen, da der schon 
ab 1,8V läuft.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Und noch nen tip: falls du vor hast Flanken interrupts zu nutzen: die 
funktionieren nicht in den sleep modes in denen der Takt abgeschaltet 
wird, da um eine Flanke zu erkennen auch ein takt nötig ist.

von gastro (Gast)


Lesenswert?

hallo,
vielen dank für die vielen tipps!!!

allerletzte frage: will nen 74hc30 nehmen um den 6 tasten auf int0 zu
                   legen. wieviel strom verbraucht der???
                   habe nix dazu in dem datenblatt gefunden!

vielen dank an alle, habt mir sehr geholfen!
gruss gastro

von Jörg S. (Gast)


Lesenswert?

Was sprach gegen die Dioden Version?

von Thomas (kosmos)


Lesenswert?

Wenn schon einen Linearegler dann einen Low Drop oder Ultra Low Drop 
Typen zB. Reichelt. LM2940-CT5 nehmen der braucht dann nicht eine so 
hohe Eingangsspannung und muss dann auch  weniger verheizen.

Statt des 9V Blocks der ja nur wenige hundert mA hat kann man dann so 
nen 4er Halter für 4 Micros oder Mignons nehmen die wesentlich mehr 
Kapazität als der 9V Block haben, da weder der AVR noch die IR-LED mehr 
wie 5V brauchen.

Oder wie gesagt ganz auf den Spannungsregler verzichten, auch sollte auf 
die Verluste des Elkos geachtet werden nicht das diese zu hoch sind und 
auf Dauer die Akkus entladen.

Denke mal als Transistor wird du eh nen spannungsgesteuerten Typen 
haben, dann spart man sich auch etwas Basisstrom ein.

Um den AVR zu wecken würde ich jedem Taster eine Schottky-Diode=oder 
Arrey) schenken damit gleichzeitig auch der Ext. Interuppteingang 
angesteuert wird um den AVR zuwecken.

Zum Mega88 1,8V wäre für die IR-Led warscheinlich zu wenig, wobei 2 
Akkus ja bei 2,4V liegen. ich würde aber mit mind. 3 Zellen arbeiten 
damit die IR-Leds richtig gepowert werden.

Ich würde die Eingänge mit mind. 10kOhm Pulldown runterziehen. So hat 
man keinen Verbrauch wenn die Taste nicht gedrückt ist. Nur wenn eine 
Taste betätigt wird gelangt Strom auf den entsprechenden Eingang und 
durch den Pulldown.

Ich denke mal das der AVR bestimmt Leckverluste hat wenn man die Pullups 
einschaltet aber das läßt sich ja im Datenblatt nachlesen.

von gastro (Gast)


Lesenswert?

thomas o. wrote:
Oder wie gesagt ganz auf den Spannungsregler verzichten, auch sollte auf
die Verluste des Elkos geachtet werden nicht das diese zu hoch sind und
auf Dauer die Akkus entladen.

Was für Elkos würdest du denn dann vorschlagen, welche mit hohem 
wiedrstand?? oder wie???

gruss GASTRO

von Stefan K. (_sk_)


Lesenswert?

@ Thomas O.:

> Oder wie gesagt ganz auf den Spannungsregler verzichten, auch sollte auf
> die Verluste des Elkos geachtet werden nicht das diese zu hoch sind und
> auf Dauer die Akkus entladen.

Moderne Kondensatoren haben einen Isolationswiderstand, der wesentlich 
höher ist, als dass er relevant wäre. Bist Du sicher, dass Du hier nicht 
Reihen- und Isolationswiderstand (== Parallelwiderstand) 
durcheinanderwirfst?


> Ich würde die Eingänge mit mind. 10kOhm Pulldown runterziehen. So hat
> man keinen Verbrauch wenn die Taste nicht gedrückt ist. Nur wenn eine
> Taste betätigt wird gelangt Strom auf den entsprechenden Eingang und
> durch den Pulldown.

Wenn die Tasten nicht gedrückt werden, fliesst kein nennenswerter Strom 
(ausser dem input leakage current, der worstcase sowohl in Richtung GND 
als auch VCC mit 1uA angegeben ist, in der Praxis aber um 
Größenordnungen darunter liegen dürfte).
Insofern ist es egal, ob low- oder high-aktiv. Die internen Pullups sind 
vollkommen ausreichend und für genau diese Art von Anwendung vorgesehen.
Externe Pullups/downs sind eigendlich nur dann notwendig, wenn ein 
definierter Widerstand bereits vor der Initialisierung der AVR-Ports 
notwendig ist.


Gruß, Stefan

von Shortpulse (Gast)


Lesenswert?

Das einfachste ist doch wenn Du 2 polige Taster nimmst. Über den ersten 
Pol schaltest Du die Versorgungsspannung (Ein/Aus) und mit den zweiten 
Pol belegst Du Deinen Port Pin. Dann fließt tatsächlich nur dann Strom 
wenn Du einen Taster drückst.

von Gast (Gast)


Lesenswert?

>Das einfachste ist doch wenn Du 2 polige Taster nimmst.
>...
>Dann fließt tatsächlich nur dann Strom wenn Du einen Taster drückst.

Wenn Du die daraus resultierende Stromersparnis mal rechnerisch 
abgeschätzt hättest, wäre Dir klargeworden, dass sie völlig 
vernachlässigbar ist.

Beispielkalkulation: Durch einen Pullup von 10 kOhm fließt bei VCC = 2.5 
V (zwei Akkuzellen) ein Strom von 0.25 mA. Um einen 1000 mAh-Akku durch 
Dauerdrücken einer entsprechenden Taste leer zu bekommen, müsste man 
selbige also 1000 mAh/(0.24 mA) = 4000 h =     5.5 Monate     lang 
ununterbrochen niedergedrückt halten.

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.