Arduino tiene una memoria interna que se llama EEPROM, es super fácil de usar, acá un ejemplo concreto:
El siguiente código va para en las dos partes del ejemplo, vamos a hacer un programa para grabar las variables y uno para leerlas.
Incluir la librería:
#include <EEPROM.h>
Declarar las variables necesarias:
int v1;
int v2;
En el setup se podría leer las variables una vez que estén escritas, pero si es la primera vez, no lo hagamos. Mejor inicialicemos el puerto serie para obtener una respuesta:
void setup() {
Serial.begin(115200);
}
En el Loop: podremos grabar y leer también, vamos a ver un ejemplos de cada uno:
Grabar: se hace con EEPROM.write(posición,número de 0 a 255);
Leer: se hace con variable = EEPROM.read(posición);
void loop() {
v1 = EEPROM.read(1);
v2 = EEPROM.read(2);
Serial.print("El valor de la posición 1 es:"):
Serial.println(v1):
Serial.print("El valor de la posición 2 es:"):
Serial.println(v1):
delay(8000);
}
Así de fácil.
Por si no queda claro: pegar este ejemplo primero:
#include <EEPROM.h>
int v1;
int v2;
void setup() {
Serial.begin(115200);
}
void loop() {
v1 = EEPROM.read(1);
v2 = EEPROM.read(2);
Serial.print("El valor de la posición 1 es: ");
Serial.println(v1);
Serial.print("El valor de la posición 2 es: ");
Serial.println(v1);
delay(8000);
}
ahora pegar este otro:
#include <EEPROM.h>
int v1;
int v2;
void setup() {
Serial.begin(115200);
}
void loop() {
EEPROM.write(1,20); // guarda el valor 20 (atención: el máximo es es 255)
EEPROM.write(2,5); // guarda el valor 5
Serial.println("Se ha grabado");
Serial.println("hacer el ejemplo de lectura para recuperar el valor de la posición 1 y 2");
delay(8000);
}
;)