// AUTOMATA 19-AGOSTO-2020
// PROGRAMA PARA MANIPULAR MEMORIA EEPROM
#include <EEPROM.h>
int menu=0;
String DatoSerial;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
DatoSerial.reserve(200);
}
void loop() {
Serial.println(" ");
Serial.println(" 0 para leer memoria ");
Serial.println(" 1 para escribir en memoria 1 byte o 1 caracter ");
Serial.println(" 2 Almacenar cadena de caracteres ");
Serial.println(" 3 Guardar variable float metodo PUT");
Serial.println(" 4 Recuperar variable float metodo GET");
Serial.println(" Digite la opcion: ");
while(Serial.available()==0) {}
menu = Serial.parseInt();
Serial.println(" ");
switch (menu) {
case 0:
ver_memoria();
break;
case 1:
guardar_byte();
break;
case 2:
guardar_cadena();
break;
case 3:
GuardarVariable();
break;
case 4:
Recuperar();
break;
default:
break;
}
}
// ****************************************
void ver_memoria(){
for (int i=0; i<5; i++){
Serial.print(" Direccion: ");
Serial.print(i);
Serial.print(" Dato: ");
char dato = EEPROM.read(i);
Serial.println(dato);
}
}
void guardar_byte(){
Serial.println(" Digite direccion...");
while(Serial.available()==0) {}
int direccion = Serial.parseInt(); // devuelve el primer numero entero valido
Serial.println(" Direccion: " + String(direccion));
Serial.println(" Digite dato 1 byte: ");
while(Serial.available()==0) {}
char dato = Serial.read(); //
Serial.println(" Dato: " + String(dato));
EEPROM.write(direccion, dato);
Serial.println(" Dato Guardado");
Serial.println(" ");
delay(1000);
}
void guardar_cadena(){
Serial.println(" ");
Serial.println(" Digite el texto a almacenar ");
while(Serial.available()==0) {} // esperamos datos seriales
DatoSerial = Serial.readStringUntil('\n');
Serial.print(" Texto recibido : ");
Serial.println(DatoSerial);
for (int i=0; i< DatoSerial.length(); i++){
EEPROM.put(i, DatoSerial.charAt(i));
}
Serial.println(" Texto almacenado !");
delay(1000);
}
void GuardarVariable() {
float pi = 3.1415926;
Serial.println(" ");
Serial.print(" Variable float a almacenar: ");
Serial.println(pi,8);
EEPROM.put(0, pi);
Serial.println(" Variable float almacenada !");
Serial.println(" ");
}
void Recuperar(){
float float_memoria;
EEPROM.get(0, float_memoria);
Serial.print(" Float recuperado de la memoria: ");
Serial.println(float_memoria,8);
}