Forum: Mikrocontroller und Digitale Elektronik Arduino Uno im Energiesparmodus


von Wer B. (Gast)


Lesenswert?

Hallo,

ich bin zurzeit mit der Frage beschäftigt, ob ich meinen Arduino Uno in 
den Energiesparmodus versetzen kann und ihn aber wieder aufwecken kann, 
sobald er ein Signal empfängt...

Aber erstmal von vorne:

Das ist mein erster Beitrag in einem Forum, deswegen bitte ich um etwas 
Rücksichtnahme.

Ich möchte mit meinem Uno ein Relais schalten, wenn der entsprechende 
Befehl über einen 433hz Empfänger kommt.

Das funktioniert auch alles soweit, nur möchte ich jetzt die Batterie 
länger nutzen/Energie sparen und habe davon gehört, das man den 
Prozessor/ATmega328p in mehrere Arten von Energiesparmodis versetzen 
kann.

Frage nun:

Welchen sollte ich nehmen und wie mach ich das ?

Im voraus schon mal
Vielen Dank

Simon.Sp


PS: Habe mich schon erkundigt, nur die meisten Beiträge die ich im 
Internet fand waren auf Englisch und/oder unverständlich

von Falk B. (falk)


Lesenswert?

Siehe Sleep Mode.

von Wer B. (Gast)


Lesenswert?

Falk B. schrieb:
> Siehe Sleep Mode.

Danke schonmal für deine Antwort, nur soweit war ich leider auch schon.

Meine Frage ist ja welche der Energiesparmodis sollte ich verwenden. (?)

von Max (Gast)


Lesenswert?

das hat bei einem uno alles keinen sinn, da er spannungsregler usw auf 
der platine hat, de auch im sleep strom verbrauchen

von Falk B. (falk)


Lesenswert?

Power Down, aufwecken mit einem Pin Change Interrupt oder Low Level 
Interrupt.

von Wer B. (Gast)


Lesenswert?

Max schrieb:
> das hat bei einem uno alles keinen sinn, da er spannungsregler usw auf
> der platine hat, de auch im sleep strom verbrauchen

Ich hab ja auch nicht gesagt das er keinen Strom mehr verbrauchen soll,
sondern einfach nur WENIGER.

von Dieter S. (Gast)


Lesenswert?

Um wirklich Strom zu sparen, solltest du einen Atmega328 (ist auch auf 
dem Uno) als Stand-Allone verwenden.

Da ist der Regler und die Leds nicht mit drauf, die so viel Strom 
verbrauchen.

Oder noch besser, einen ATtiny85. Der braucht normal schon sehr wenig, 
im Stromsparmodus noch weniger.

von Wer B. (Gast)


Lesenswert?

Falk B. schrieb:
> Power Down, aufwecken mit einem Pin Change Interrupt oder Low Level
> Interrupt.

Also ich hab mir den Text zum Thema Sleep Mode selbst nocheinmal 
durchgelesen und mir ist der Idle Mode aufgefallen...

~70% Engergíeeinsparung
Aufwecken per Interrupt
usw...

Klingt für mich erstmal passend.

Ich bin auf dem Gebiet Mikrokontroller noch etwas jung und mir würde 
eine einfache und unkomplizierte Lösung reichen.

Es muss also nicht das beste vom besten sein.

von Wer B. (Gast)


Lesenswert?

Dieter S. schrieb:
> Um wirklich Strom zu sparen, solltest du einen Atmega328 (ist auch auf
> dem Uno) als Stand-Allone verwenden.
>
> Da ist der Regler und die Leds nicht mit drauf, die so viel Strom
> verbrauchen.
>
> Oder noch besser, einen ATtiny85. Der braucht normal schon sehr wenig,
> im Stromsparmodus noch weniger.

Erstmal vielen Dank das du dich so bemühst.

Deine Lösungsvorschläge mit dem Chip als Stand-Allone oder dem ATtiny85 
sind mit Sicherheit gut und besser als meine, jedoch kleingen sie für 
mich zu kompliziert und ich möchte auch nicht so einen großen "Umstand" 
machen.

70% würden erstmal reichen, außerdem habe ich sowieso vergessen zu 
erwähnen das es erstmal nur ein Prototyp ist

von Michael U. (amiga)


Lesenswert?

Hallo,

abgesehen vom schon genannten: welchen Empfänger nutzt Du? Der mß ja 
schließlich laufen und empfangen und verbraucht damit auch ständig 
Strom.

Wenn der Empfänger was empfängt, muß er sich ja dem Mega328 auf dem Uno 
bemerkbar machen um den zu wecken.
Bei einem der üblichem OOK-433MHz-Empänger geht das nicht. Der Empfängt 
ständig irgendwelchen Müll aus dem Umfeld und die Software auf dem Uno 
entscheidet, ob es was erwartetes war oder nicht.
Der Uno wäre letztlich also ohnehin immer wach, weil sofort wieder vom 
Empfängersignal geweckt werden würde.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Wer B. (Gast)


Lesenswert?

Michael U. schrieb:
> Hallo,
>
> abgesehen vom schon genannten: welchen Empfänger nutzt Du? Der mß ja
> schließlich laufen und empfangen und verbraucht damit auch ständig
> Strom.
>
> Wenn der Empfänger was empfängt, muß er sich ja dem Mega328 auf dem Uno
> bemerkbar machen um den zu wecken.
> Bei einem der üblichem OOK-433MHz-Empänger geht das nicht. Der Empfängt
> ständig irgendwelchen Müll aus dem Umfeld und die Software auf dem Uno
> entscheidet, ob es was erwartetes war oder nicht.
> Der Uno wäre letztlich also ohnehin immer wach, weil sofort wieder vom
> Empfängersignal geweckt werden würde.
>
> Gruß aus Berlin
> Michael

Hallo,

mit dem Empfänger...
Ich benutze folgendes Set:

"Aukru 3x 433 MHz Empfänger und Funk- Sende Modul Superregeneration 
Wireless Transmitter-Modul Einbrecher Alarm 433M receiver module Burglar 
Alarm für Arduino Raspberry pi"

Hoffe das hilft dir.

Ich habe vor das ganze auf einem Nano (Klon) umzusetzen, vorher aber auf 
meinem (Uno) Prototyp auszuprobieren. Es ist aber auch generell 
interessant für mich, auch wenn ich es  wahrscheinlich nicht mehr auch 
den Nano nutzen kann (Sleep Mode).

Gruß zurück aus Mülheim
Simon

von Wer B. (Gast)


Lesenswert?

Der Stromverbrauch vom Sender ist mir erstmal egal, den mich 
interessiert "nur", wie ich generell mit/an dem Uno Strom sparen kann, 
in dem ich so einen Sleep Mode nutze.

Das mit dem Sender ist sozusagen nur ein Beispiel von meinen aktuellen 
Projekten, wo ich diesen Sleep Mode gerne nutzen würde.

Den am Sender kann ich ja sowieso nicht sparen.

PS: Wenn möglich, weiß jm ob ich einen Digitalen Pin vom Arduino auch 
als Stromversorgung für den Empfänger nehmen kann ?

von Dieter S. (Gast)


Lesenswert?

Simon S. schrieb:
> Der Stromverbrauch vom Sender ist mir erstmal egal, den mich
> interessiert "nur", wie ich generell mit/an dem Uno Strom sparen kann,
> in dem ich so einen Sleep Mode nutze.
>
> Das mit dem Sender ist sozusagen nur ein Beispiel von meinen aktuellen
> Projekten, wo ich diesen Sleep Mode gerne nutzen würde.

In deinem Thread sprichst du aber vom Empfänger und da muss ich Michael 
völlig recht geben, das funktioniert nicht.

Wenn du Strom sparen möchtest, wird es mit dem Empfänger nichts.
Hier ist die Lösung mit einem reinen Controller evtl. doch besser.

Aber für deine Versuche, unabhängig vom Empfänger, kannst du es schon 
über den Sleep Modus nutzen.

von Dieter S. (Gast)


Lesenswert?

Simon S. schrieb:
>
> PS: Wenn möglich, weiß jm ob ich einen Digitalen Pin vom Arduino auch
> als Stromversorgung für den Empfänger nehmen kann ?

damit empfängt er aber nix.

von Wer B. (Gast)


Lesenswert?

Das verstehe ich nicht ganz, den unabhängig von dem Empfänger
(ich korriegiere meine Aussage von letztens auf Empfänger)
kann ich doch am Uno Strom sparen, auch wenn der Empfänger weiterhin 
viel Strom verbraucht ?

von Dieter S. (Gast)


Lesenswert?

Simon S. schrieb:
> Das verstehe ich nicht ganz, den unabhängig von dem Empfänger
> (ich korriegiere meine Aussage von letztens auf Empfänger)
> kann ich doch am Uno Strom sparen, auch wenn der Empfänger weiterhin
> viel Strom verbraucht ?

Ja, sicher geht das. Nur wie oder durch welche Aktion möchtest du den 
Uno dann aus dem Schlaf hohlen?
Der Empfänger fällt dazu aus.

von Wer B. (Gast)


Lesenswert?

Dieter S. schrieb:
> Simon S. schrieb:
>> Das verstehe ich nicht ganz, den unabhängig von dem Empfänger
>> (ich korriegiere meine Aussage von letztens auf Empfänger)
>> kann ich doch am Uno Strom sparen, auch wenn der Empfänger weiterhin
>> viel Strom verbraucht ?
>
> Ja, sicher geht das. Nur wie oder durch welche Aktion möchtest du den
> Uno dann aus dem Schlaf hohlen?
> Der Empfänger fällt dazu aus.

Also sowie ich das gelesen habe kann der Arduino durch einen Interrupt 
"geweckt" werden.

Der Emfänger ist ja an einen Interrupt angeschlossen...

Zu dem "Müll" den der Empfänger ja oft ausgeben soll, kann man 
nachgucken wie stark die Interferenzen sind ?
Und würden sie einen Arduino wirklich die ganze Zeit wecken ?

von Harry M. (harrymo)


Lesenswert?

Hallo Simon,
bezüglich des Sleep Modes gibt es ein sehr gutes Video auf YouTube von 
Kevin Darrah, ist allerdings auf Englisch: 
https://www.youtube.com/watch?v=urLSDi7SD8M

So wie ich das sehe kannst du den Empfänger schon über einen Pin vom 
Arduino mit Strom versorgen, die ja theoretisch einen max. Strom von 
40mA liefern sollen, meines Wissens brauchen die 433MHz Empfänger ja 
blos um die 5mA.

von Dieter S. (Gast)


Lesenswert?

Simon S. schrieb:
> Also sowie ich das gelesen habe kann der Arduino durch einen Interrupt
> "geweckt" werden.
>
> Der Emfänger ist ja an einen Interrupt angeschlossen...
>
> Zu dem "Müll" den der Empfänger ja oft ausgeben soll, kann man
> nachgucken wie stark die Interferenzen sind ?
> Und würden sie einen Arduino wirklich die ganze Zeit wecken ?

Das Rauschen des Empfängers erzeugt ein ebenso kräftiges Signal am 
Datenpin, womit der Atmega immer einen Interupt auslöst.

von Wer B. (Gast)


Lesenswert?

Ich werde im mich gleich dem Video widmen.

Im voraus schonmal vielen Dank fürs raussuchen

von Michael U. (amiga)


Lesenswert?

Hallo,

Simon S. schrieb:
> Ich habe vor das ganze auf einem Nano (Klon) umzusetzen, vorher aber auf
> meinem (Uno) Prototyp auszuprobieren. Es ist aber auch generell
> interessant für mich, auch wenn ich es  wahrscheinlich nicht mehr auch
> den Nano nutzen kann (Sleep Mode).

Der Nano ist ein Uno mit ein paar Teilen weniger drumrum, die mit der 
Funktion des ATMega328 direkt überhaupts nichts zu tun haben, sie 
betreffen nur die Spannungsversorgung.
Wenn, dann wäre ein ProMini und ein USB-seriell-Adapter sinnvoll.
Auch der ProMini ist ein Uno, nur fehlt ihm auch der USB-Wandler, der 
auch Strom verbraucht und sich bei Uno und Nano nicht abschalten läßt.

Zu Deinem Empfänger gilt voll, was ich gesagt habe, der hat keinerlei 
eigene Intelligenz.

Ich gehe mal davon aus, Daß Du die Arduino-Programmierumgebung benutzt, 
da gibt es zum Thema Sleep-Mode doch durchaus lesbares, hier z.B.
http://shelvin.de/arduino-in-den-sleep_mode_pwr_down-schlaf-modus-setzen/

Ansonsten wirst Du nach Informationen zum Mega328 und Sleep suchen 
müssen, unter dem Stichwort Uno oder Nano wirst Du einfach deshalb wenig 
finden, weil es bei denen kaum lohnt, auf diese Art Strom zu sparen.

Gruß aus Berlin
Michael

von Wer B. (Gast)


Lesenswert?

Ok, dann danke ich für eure Antworten.

von Marco (Gast)


Lesenswert?

Hallo zusammen,

um energie auf empfänger seite zu sparen gibt es eine möglichkeit die 
noch nicht angesprochen wurde.

Man kann hergehen und anstatt permanent auf empfang zu lauschen das 
komplette system (arduino und empfänger) einfach in festen zyklen 
erwachen lassen.

das heisst das ein timer den arduino sagen wir mal alle 500ms erwachen 
lässt, horcht ob was empfangen wurde und wenn nix da war wieder 500ms 
schläft.

wenn das system normal 100 mal pro sekunde empfangen würde sparst du 
also 98% energie ein (theoretisch. Es gibt sicher einschaltströme)

Mit den 500ms timer kann man nach belieben spielen und optimieren, da 
ein nachteil dieser idee ist das eine leichte verzögerung zwischen 
senden/empfangen entsteht.

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.