Sleepmode code

Moin, ich brauche mal Hilfe bei einem Code.
Ich möchte das sich der Controller nach dem getätigtem Anruf abschaltet oder zumindest nur noch sehr wenig Strom verbraucht. Ich dachte da an SLEEP_MODE_PWR_DOWN. Durch ab- und wieder einschalten der Stromzufuhr soll das Programm wieder von vorne beginnen.
Der code läuft bis z = 60 und dann hängt er sich auf.

int z = 0 ;
#include <GSMSim.h>

#define RX 7

#define TX 8

GSMSim gsm(RX, TX);

#include <avr/sleep.h>//this AVR library contains the methods that controls the sleep modes


void setup()
{
  pinMode( A1 , OUTPUT);
  pinMode( 13 , OUTPUT);
  pinMode( 9 , OUTPUT);
  Serial.begin(9600);
  pinMode( 6 , OUTPUT);
  gsm.start();

  z = 0 ;

  digitalWrite(A1 , HIGH);

  digitalWrite(13 , LOW);

  digitalWrite(9 , LOW);

}

void loop()
{
  Serial.print("Zeit");
  Serial.print(( z / 60 ));
  Serial.print(" ");
  Serial.print("Minuten");
  Serial.print(z);
  Serial.print(" ");
  Serial.println();
  z = ( z + 1 ) ;
  if (( ( z ) == ( 30 ) ))
  {
    digitalWrite(6 , HIGH);
    Serial.print("Anrufen...");
    Serial.print(" ");
    Serial.println();
    char* phone_no = "xxxxx";
    gsm.start();
    Serial.println("Calling the number " + String(phone_no));
    Serial.println(gsm.call(phone_no));
    digitalWrite(6 , LOW);
  }
  if (( ( z ) == ( 60 ) ))
  {
    gsm.callHangoff();
    Serial.print("Anruf beendet!");
    Serial.print(" ");
    Serial.println();
    digitalWrite(A1 , LOW);
    digitalWrite(9 , LOW);
  }
  if (( ( z ) == ( 61 ) ))
  {
    sleep_enable();//Enabling sleep mode
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);//Setting the sleep mode, in our case full sleep
    digitalWrite(LED_BUILTIN,LOW);//turning LED off
    sleep_cpu();//activating sleep mode
  }
  delay( 1000 );
}

Wo ist dein Problem?
Ich sehe keinen Kombinationsversuch.

Tipp:
Interrupts vor dem Schlaf abschalten.

Hi

Statt Power-DN könnte man auch eine Selbsthaltung abschalten, dann braucht der Arduino ganz sicher keinen Strom mehr und muß händisch, mit einem Taster, erweckt werden.
Das Erste, was der Arduino in Seinem Programm macht: Selbsthaltung ansteuern.
Wenn man dann den Finger vom Taster runter nimmt, bleibt der Arduino wach, bis Er entscheidet, daß Zeit für's Bett ist.

MfG

postmaster-ino:
Hi

Statt Power-DN könnte man auch eine Selbsthaltung abschalten, dann braucht der Arduino ganz sicher keinen Strom mehr und muß händisch, mit einem Taster, erweckt werden.
Das Erste, was der Arduino in Seinem Programm macht: Selbsthaltung ansteuern.
Wenn man dann den Finger vom Taster runter nimmt, bleibt der Arduino wach, bis Er entscheidet, daß Zeit für's Bett ist.

MfG

das klingt nach einem guten weg. wie funktioniert das ?

combie:
Wo ist dein Problem?
Ich sehe keinen Kombinationsversuch.

Tipp:
Interrupts vor dem Schlaf abschalten.

Ich habe die versuche nicht gespeichert weil der Code immer kurz vor dem sleep befehl einfach hängen geblieben ist. Ich mache es morgen nochmal und poste es.

Hi

Musste etwas Suchen ... war mir aber doch noch recht sicher, daß ich Da 'vor gar nicht so langer Zeit drüber gestolpert war'.
So isses:
agmue postet Bild von Arduino-Selbsthaltung

MfG