Erstes Arduino Projekt, Stromsparvariante

Hallo Zusammen

Ich bin daran mein erstes Arduino Projekt zu bauen und bin in diesem Bereich ein völliger Newbee. Hintergrund ist dieser: Meine Freundin braucht für ein Projekt eine Art autonome MP3-Jukebox. Sie soll im Freien stehen mit folgender Funktion:

Knopf 1 drücken - Sound 1 wird abgespielt bis zum Ende
Knopf 2 drücken - Sound 2 wird abgespielt bis zum Ende
Knopf 3 drücken - Sound 3 wird abgespielt bis zum Ende

Wird Knopf X gedrückt, während Sound Y läuft, wird Sound Y beendet und Sound X abgespielt.

So weit, so simpel.

Um das mal grob zu bauen und auszutesten habe ich folgendes bestellt:

Arduino UNO
UART MP3 Voice Modul: Siehe: Gravity: UART MP3/WAV Voice Module with 8MB Flash Memory - DFRobot
Einen kleinen Lautsprecher (max 3 W)

Kabel und Bastelmaterial habe ich auch...

Nun habe ich die zusätzliche Anforderung erhalten, das System soll möglichst lange autonom funktionieren, d.h. bestenfalls 1 Monat.

Ich habe versucht mich etwas einzulesen, insbesondere was den Stromverbrauch betrifft. Klar ist, dass der Stromverbrauch auch stark von der Häufigkeit des Gebrauchs abhängt. Ich rechne jetzt mal mit 20 mal 3 Minuten Sound pro Tag (???).
Klar ist mir auch, dass der UNO mit ca. 40-50 mA Dauerstromverbrauch (mit Stromsparlibraries evtl. etwas weniger) schon viel Strom brauchen wird. Ich habe den UNO als einfaches Bastelobjekt gewählt, würde aber dann für die Produktion der 3 total benötigten Systemchen auch auch auf eine andere Arduino Version umsteigen. Wahrscheinlich komme ich aber um einen Bleiakku nicht rum.

Nun meine Fragen:

Welche Arduino Variante würdet ihr für ein stromsparendes Projekt empfehlen?

Wäre es machbar, Strom zu sparen, indem man mit dem Taster 1 (oder einem Taster 0) gleich den den Strom einstellt und damit den Arduino bootet? Damit liesse sich viel Strom für den Dauerbetrieb sparen. Wie gross wäre dann die Verzögerung (zwischen booten und bereit für den ersten Sound)?

Stromversorgung: Ich komme wohl um einen Bleiakku nicht herum. Würdet ihr einen 6V empfehlen oder einen mit 12V? Wenn ich richtig gelesen habe, wird bei 12 V Eingangsspannung viel in Wärme verbraten, da die Umwandlung nicht sehr effizient sei.

So, das wäre es erst mal von mir, ich hoffe, nicht alles doppelt gefragt zu haben, was es hier zu lesen gibt (habe versucht einiges selber zu recherchieren) und freue mich über euren Input.

Hi,

gib mal in eine Suchmaschine Deiner Wahl "arduino mini pro deep sleep" ein, zum Thema Verbrauch im Sleep.
Und ansonsten gibt es Buck-Konverter um aus z.Bsp. 12V dann 5V mit 85-90% Wirkungsgrad zu machen.
Oder einen 3,3V Arduino nehmen (wenn möglich), und LiPos nehmen, oder LiFePO,
letztere sind eigensicher und haben 3,2 - 3,3V.

Gruß André

redirection:
...Stromversorgung: Ich komme wohl um einen Bleiakku nicht herum. Würdet ihr einen 6V empfehlen oder einen mit 12V? ...

Ich würde das von Preis und Verfügbarkeit (und natürlich Kapazität) abhängig machen. Mit den diversen Schlafmodi kann man den Energiebedarf des Arduino ziemlich weit reduzieren. Damit habe ich allerdings keine konkreten Erfahrungen.

Gruß

Gregor

@ SpaghettiCode:

das mit dem arduino mini pro deep sleep
hatte ich auch bereits gesehen, dachte aber den gäbs nicht mehr. Habe nun nach einem clone gesucht und einige gefunden. Danke für den Hinweis!

Betreffend Batterie: Mit einem Bleiakku und einem entsprechenden Wandler sollte das ja recht lange halten. Ich werde mal schauen, dass ich das ganze auf dem UNO zum laufen bringe und dann wohl mit dem mini pro weiterschauen. Die 3.3V Variante wäre sicher ganz gut geeignet. Danke für den Hinweis mit dem Wandler. Sowas sollte doch passen, oder?

Was haltet ihr davon, Strom zu sparen, indem man mit einem Taster gleich den den Strom einstellt und damit den Arduino bootet? Damit liesse sich viel Strom für den Dauerbetrieb sparen. Wie gross wäre dann die Verzögerung?

Hi

Da der Arduino kein Prozessor ist, bootet Da auch nix.
Einzig der Bootloader (Da war Es wieder, das Wort) wartet 2 Sekunden, ob Jemand einen neuen Sketch aufspielen will.

Also: 2 Sekunden

Das Starten des Arduino über einen Taster und das 'selbst halten' lässt sich - Überraschung - durch eine Selbsthaltung realisieren.
Diese kann der Arduino nach getaner Arbeit abschalten und ist dann komplett spannungslos.

Ich wage kaum zu Fragen ... bis wann?

MfG

postmaster-ino:
Ich wage kaum zu Fragen ... bis wann?

Es ist „ein erstes Projekt“. Also bis gestern :slight_smile:

SCNR

Gregor

redirection:
@ SpaghettiCode:

das mit dem arduino mini pro deep sleep
hatte ich auch bereits gesehen, dachte aber den gäbs nicht mehr. Habe nun nach einem clone gesucht und einige gefunden. Danke für den Hinweis!

Damit du da nichts verwechselst:
Die verschiedenen Arduinos haben im Regelfall schon einen USB Wandler aufgelötet damit du die Software aufspielen kannst.
Es gibt aber auch Platinen ohne den USB Wandler. z.B den Pro.
Das macht schon Sinn weil Platz gespart wird und wenn das Programm mal fertig ist benötigt den Wandler niemand mehr (solange du nicht Daten an der seriellen Schnittstelle ausgeben willst).

Für das Stromsparen ist das schon mal gut. Die "normalen" Arduinos benötigen immer Energie für den USB Wandler und für die Power LED.

Das andere Thema ist der Energieverbrauch des Prozessors. Da gibt es Methoden (und Befehle dazu) einen Sleep Modus zu erreichen. Von den Sleep Modi gibt es verschiedene Arten und der "deep sleep" schafft es besonders wenig Strom zu benötigen.
Das schlafen gehen und das Aufwecken passiert dann auch über die Software.

Also es gibt keinen fertigen Baustein "Arduini pro mini deep sleep"!

redirection:
Was haltet ihr davon, Strom zu sparen, indem man mit einem Taster gleich den den Strom einstellt und damit den Arduino bootet? Damit liesse sich viel Strom für den Dauerbetrieb sparen. Wie gross wäre dann die Verzögerung?

Das wäre mal eine Idee. Allerdings benötigst du noch etwas Hirnschmalz. Mit der Taste x soll der Arduino eingeschalten werden und gleich das richtige Lied gespielt werden. Blöd nur, dass es ca. 3 Sekunden dauert bis der Arduino läuft und der Benutzer den Taster nicht 3 Sekunden gedrückt halten wird. Weil erst wenn der Arduino läuft kann der Taster abgefragt werden und das richtige Lied startet.

Ich vermute du wirst schneller zum Erfolg kommen wenn du alles 3 fach aufbaust.
Arduino 1 (mini Variante ohne USB Wandler) wird mit der Taste 1 aufgeweckt und Spielt sein Lied. Nach dem Lied schaltet die Software wieder den Schlafmodus ein.
Arduino 2 = Lied 2
Arduino 3 = Lied 3
Nun gibt es ein neues Problem mit dem gegenseitig unterbrechen. Das wäre aber leicht über Ein/Ausgänge zu lösen.
Die Frage ist ob du den Aufwand so treiben willst.

Eine (alte) 12V Autobatterie und ein Arduino der alles macht wird dir vermutlich reichen. Ein DC/DC Wandler eingestellt auf 5V Ausgangspannung und beim Arduino direkt angeschlossen optimiert den Wirkungsgrad.

Das Aufwecken wird dich noch ein wenig beschäftigen. Die Standard Arduinos (Mit dem Prozessor 328) haben nur 2 Interrupt Eingänge. Du willst aber mehrere Tasten nutzen. Da muss eine Lösung gefunden werden. Ein Arduino Mega hätte 6 Interupt Eingänge.

Ist ein nettes Projekt, ist lösbar aber hoffentlich benötigst du es nicht bis morgen.

redirection:
Knopf 1 drücken - Sound 1 wird abgespielt bis zum Ende
Knopf 2 drücken - Sound 2 wird abgespielt bis zum Ende
Knopf 3 drücken - Sound 3 wird abgespielt bis zum Ende

für so was braucht man imho keinen Arduino. Und nichts verbraucht weniger als ein Arduino als kein Arduino.

Such dir irgend ein MP3-Modul das du direkt mit Tasten ansteuern kannst.

z.B. https://www.elv.at/mp3-sound-modul-msm-2-komplettbausatz.html?refid=SEM_30007?refid=Gads_Shopping&gclid=CjwKCAiA99vhBRBnEiwAwpk-uFr24wsCYoum3blTD7OfoQZvtY16vSQ72b36rX2KFc-ALFFtn9NzAhoCMXAQAvD_BwE
(und nein um Rückfragen zu vermeiden - ich arbeite nicht bei/für elv ... und bekomm auch nichts von denen)

Stromaufnahme Betrieb:
50 bis 300 mA (je nach Lautstärke), max. 500 mA

Stromaufnahme Stand-by:
5 mA (Idle-modus),
50 μA (Sleep-modus)

Heute bestellt, übermorgen fertig :wink:

Wenn der Bootloader stört, kann man den auch runterschmeißen.

Ein niedrig getakteter ATmega328P mit ein paar Bauteilen auf einer Platine braucht nicht so viel Strom. Auch ein ATtiny wie der 2313 käme in Betracht.

Na gut, die Variante ohne Arduino ist natürlich nicht zu toppen :slight_smile:

Danke für die Tipps!

Das mit dem Bootloader runterschmeissen hatte ich auch gelesen und dachte, das wäre dann eine gute Möglichkeit, um die Startzeit zu verkürzen.

Ich muss zugeben, dass die Varianten ohne Arduino wahrscheinlich die einfachste Lösung ist, und wenn ich die Anforderungen meiner Freundin wirklich so umsetzen kann, werde ich wohl dieses Modul wählen. Wie ich gesehen habe, hat es auch eine recht brauchbare Dokumentation dazu bei ELV.

Mist, jetzt hatte ich schon Arduino-Blut geleckt!!!

Ich halte Euch auf dem Laufenden, wie ich diese Aufgabe lösen werde (oder hole mir evtl. nochmals Rat). Sollte es mit der nicht Arduino-Version sein, habe ich ja noch genügend Hardware übrig für ein nächstes Projekt.

Bis jetzt schon mal vielen Dank!