[gelöst] Arduino automatisch abschalten (Auto Power Off)

Für einen bestimmten Anwendungsfall soll der MC schlafen gehen oder sich selbst ausschalten. Mit Hilfe von zwei MOSFETS konnte sich der Arduino Uno nach Joberledigung selbst ausschalten. Gestartet wird der Vorgang durch Drücken einer Taste (real bei mir über den Kontakt eines Fernbedienungsempfängers). Nach Ablauf der Zeit schaltet sich der MC selbst aus, was die maximale Stromersparnis ist. Über den Pin D7 (hier nicht gezeichnet) wird bei mir über einen weiteren MOSFET ein Wechselrichter an- und wieder ausgeschaltet.
Hier der absolut einfache Sketch:

/*********************************************************************
Self Power-Off minimal example
*********************************************************************/

#include <SPI.h>

void setup()   {                
  pinMode(7,OUTPUT);    // connect MOSFET to Pin D7
  digitalWrite(7,HIGH); // set to HIGH to keep arduino on after user releases pushbutton

  delay(5000);          // replace this by your stuff

  digitalWrite(7,LOW);  // power-off
}


void loop() {
}


Da der Vorgang nur einmal durchläuft, wird im loop kein Eintrag benötigt (alles steht im setup drin).

Und hier der Schaltplan:

Frage:
Der Arduino Uno startet bei Tastendruck sofort.
Der ESP8266 startet ebenfalls sofort.
Der Arduino Nano startet erst nach etwa 2 sec. Drücken (und Festhalten) der Taste.
Gibt es da eine Erklärung, warum der Nano zum Starten länger braucht?

Anderer Bootloader

OK.
Das lässt sich also nicht ändern?

du könntest auf den Nano den UNO Bootloader aufbringen.

Doch klar!

Danke für den Tipp. Den Aufwand möchte ich nicht treiben.

Danke für die Info. Ich habe festgestellt, dass der ESP8266 ebenfalls sofort beim Stromeinschalten startet. Damit habe ich eine Alternative zum "alten" Uno.
Für meinen Anwendungsfall wird kein WLAN benötigt, so dass ein Uno-Exemplar aus meinem Bauteile-Magazin hier sein Gnadenbrot fristen kann.
In meinem ersten Beitrag oben habe ich den ESP8266 nachgetragen.

Wenn du den nackten 328P verwenden würdest, könntest du auf den ganzen Abschaltkram verzichten. Und der startet ebenfalls sofort

Ich nehme lieber einen Schraubsockel für den endgültigen Aufbau. Danke auch für diesen Hinweis.
Vorgesehen ist nun ein Uno mit einem aufgesteckten Shield, wo die zusätzlichen Bauteile (MOSFETs, Widerstände) angebracht werden.

Eine Weitere Möglichkeit wäre den Sketch per ISP (Hochladen mit Programmer) aufzuspielen, dann biste das Problem mit der Startverzögerung durch den Bootloader los, da der Bootloader durch das Hochladen (Flashen) über ISP rausfliegt und damit keine Verzögerung mehr verursachen kann.

1 Like

Damit habe ich noch keine Erfahrungen gesammelt. Danke für den Tipp.
Ich löte jetzt mal die Bauteile auf das Shield und hoffe, es läuft hinterher.

Musst Dir aber bwusst sein: sobald du das einmal gemacht hast, kannst Du den Nano erst wieder über USB flashen, wenn Du vorher den Bootloader wieder (mittels Programmer über ISP, und der Funktion 'Bootloader brennen') neu aufgespielt hast. Aber wenn Der sketch soweit läuft , für den Einsatz im Endgerät , ist das flashen per ISP durchaus eine Variante.

Ich bin mit der bisherigen Lösung zufrieden. Habe das Shield bestückt und es läuft alles wunschgemäß. Werde noch ein zweites Shield bestücken und ggf. ein Bild einstellen.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.