En modo sleep se pierde la información de algunas variables?

Al colocar arduino en modo sleep como hago para que una variable que esta contando un proceso determinado no pierda la información al momento de despertar..

Gracias..

Vamos a suponer que tu contador estaba en 1000 antes de entrar en SLEEP, al momento de despertar seguirá en SLEEP y no esperes que cuenta algo estando en SLEEP.
Luego no hay razón para PERDER información, el valor presente enlas variables no se debería alterar a no ser que tu programa lo haga. Ejemplo si defines la variable contador dentro del loop por ejemplo.

Poco puedo decirte sin ver el código y que expliques de que variable hablas.

Muchas gracias por tu respuesta, lo que pasa es que estoy contando cuantas veces el arduino lee el parametro de un sensor de temperatura, y al momento de despertar la variable que lleva el registro queda en cero mi pregunta es si al momento en que el arduino esta en modo sleep se borran los datos que he guardado en determinada variable gracias.

Otra pregunta es si puedo llevar el registro en una determinada variable de cuantas veces el arduino queda en modo sleep..

Coloca el código, ya te lo indiqué antes. Sin ver mas poco podemos decirte.

puedo llevar el registro en una determinada variable de cuantas veces el arduino queda en modo sleep..

Si que puedes.

jdelrio810:
mi pregunta es si al momento en que el arduino esta en modo sleep se borran los datos que he guardado en determinada variable

surbyte:
Luego no hay razón para PERDER información, el valor presente enlas variables no se debería alterar a no ser que tu programa lo haga. Ejemplo si defines la variable contador dentro del loop por ejemplo.

#include “ThingSpeak.h”
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <EEPROM.h>

char ssid = “Perla”; // your network SSID (name)
char pass = “38122618”; // your network password
int status = WL_IDLE_STATUS;
WiFiClient client;

unsigned long myChannelNumber =341358;
const char * myWriteAPIKey = “K6XNVDEUE4N6ZUI4”;
int sensor = 0;

int n = 4.0;

void setup() {
WiFi.begin(ssid, pass);
ThingSpeak.begin(client);

}
void loop() {

int sensor = analogRead(A0);
float voltaje = ((sensor * 3.3) / 966.0 )*2;

int conta=conta;
conta++;
if (voltaje < n ){
carga();
}
ThingSpeak.writeField(myChannelNumber, 1, conta, myWriteAPIKey);
ESP.deepSleep(15*1000000,WAKE_RF_DEFAULT);
}
void carga(){
pinMode(14, OUTPUT);
digitalWrite(14, HIGH);
delay(60000);
return ;
}

Edita según normas. Usa etiqueta </>

Qué es esto?

int conta=conta;
conta++;

Porque no defines a conta como global antes del setup asi

int conta = 0;

y luego incrementas según corresponda en el loop.

conta++;

Ese es el exactamente el problema con la variable conta, Si ya lo hice lo coloque antes de setup como tu me indicas int conta =0; y cuando el NodeMcu que esta programado con el ide de arduino se levanta depues de estar 15 segundos dormido pierde la informacion de conta y se vuelve 0.

Ya descubri que en modo deep sleep el programa se reinicia entonces por eso toma los valores de inicio cuando cont era igual a cero..

No hay nada que hacer trate de programarlo para guarda los datos en la EEPROM pero no me funciona.

Yo simplemente no logro que reinicie. Cuando lo hace todo lo que obtengo es basura.

NOTA: algun problema para editar los post anteriores?

Estoy probando esto… sin resultados

void setup() {
  Serial.begin(115200);
  //Serial.setTimeout(2000);

  // Wait for serial to initialize.
  while(!Serial) { }
  
  Serial.println("inicializando.");

}

void loop() {

  Serial.println("Despierto x 10 seg.");
  delay(10000);
  Serial.println("Voy a deep sleep por 10 seg");
  ESP.deepSleep(10e6); // 10e6 es en microsegundos
}

Clip2net_171007182632.png

Depronto es porque tienes que configurar los baudios 115200, yo estoy utilizando nodeMcu lolin y me funciona correctamente

Ya lo resolvi con la memoria EEPROM cuando están utilizando un nodeMcu en modo deepsleep y quieren llevar un contador al momento de despertar la unica forma de almacenar el dato en una variable es con el comando EEPROM.write(address,valor);.

Muchas gracias por las respuestas y los comentarios..

No estoy de acuerdo con tu solución pero si para ti esta bien nada puedo decir.

Depronto es porque tienes que configurar los baudios 115200

Si ves la imagen del Terminate, leerás 115200 bps 8N1.
también active el modo debug y pude ver el comportamiento, como intenta reconectarse a WIFI, luego logré desactivar WIFI pero aún asi no restaura en mi caso.