Hola Compañeros
Recientemente me he introducido en el mundo Arduino. He adquirido un Kit de inicio de Arduino Uno y he comenzado a explorar.
He adquirido una sonda de humedad y temperatura DHT11 y ayudado por varias paginas web he escrito un sketch. Además, leo la luz ambiente mediante una LDR y hago parpadear un LED cada ciclo de actualización de todos los datos (Así sé que Arduino esta vivo).
Para visualizar las variables, uso el Hyperterminal comunicando con el puerto serie.
Todo correcto hasta aquí, pero....
Mi pregunta: ¿Por qué cada vez que inicio la comunicación serie se reinicializa el controlador? Me he dado cuenta de esto porque tengo unas variables de maximo y minimo que mientras estoy ejecutando, almacenan estos maximos y minimos, pero al cerrar y abrir nuevamente el Hyperterminal, estas variable se reinician. He revisado el programa por si las moscas, pero he observado que al abrir el Hyperterminal e iniciar la comunicación, Arduino tiene el comportamiento de Reset y por eso se inician las variables en las que almaceno los datos.
los valores para que se mantengan los debes guardar en la memoria flash del micro. pero esta tiene vida util de 100.000 ciclos de escritura.
Puedes usar tencicas de que al perder la energia guarde los valores antes de que se apague del todo. Asi escribes solo las veces que realmente necesites.
Hola
Gracias, pero no me refiero a cuando se pierde la energia. Arduino esta siempre alimentado, pero el Hyperterminal no está siempre ejecutandose.
Cuando ejecutas el Hyperterminal para leer el puerto serie, Arduino se reinicia.
para eso debes quitar un jumper de la placa de arduino para evitar el autoreset, lo malo es que para programar debes resetear manualmente antes de iniciar el upload.
O buscarte un terminal que no juege con el CTS o DTS ... uno de los pines del puerto serie que es el que se usa para indicar al AVR que implementa el puerto serie que resetee el micro principal.
Ese pin se usa para el control de flujo hardware.
Fijate si puedes desconectarlo en la configuración de conexión del puerto (dentro del hyperterminal).
Ojo! Tampoco estoy seguro que eso funcione; yo no tengo un Uno ...