Grabar en la memoria interna EEPROM del Arduino, super fácil

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);
}

;)