#include <EEPROM.h>
const int EEPROM_SIZE = 10; // Tamaño de la memoria EEPROM para almacenar la contraseña (incluyendo el carácter nulo al final)
char contrasena[EEPROM_SIZE] = "1234";
String datos;
void setup() {
Serial.begin(115200);
Serial.println("Bienvenido");
// Inicializar EEPROM
EEPROM.begin(EEPROM_SIZE);
// Leer la contraseña almacenada en la EEPROM
for (int i = 0; i < EEPROM_SIZE; ++i) {
contrasena[i] = EEPROM.read(i);
Serial.print(contrasena[i]);
}
Serial.println(" "); // Nueva línea para separar las contraseñas leídas y las nuevas entradas del usuario
}
void loop() {
Serial.println("¿Quieres realizar una nueva contrasena? (si/no)");
while (!Serial.available()) {
// Esperar a que se ingrese datos por el puerto serie
}
datos = Serial.readStringUntil('\n');
datos.trim();
if (datos.equalsIgnoreCase("si")) {
Serial.println("Ingresa la nueva contrasena:");
while (!Serial.available()) {
// Esperar a que se ingrese datos por el puerto serie
}
String nuevaContrasena = Serial.readStringUntil('\n');
nuevaContrasena.trim();
// Validar la longitud de la nueva contraseña
if (nuevaContrasena.length() <= EEPROM_SIZE - 1) {
// Escribir la nueva contraseña en la EEPROM
for (int i = 0; i < nuevaContrasena.length(); ++i) {
EEPROM.write(i, nuevaContrasena[i]);
contrasena[i] = nuevaContrasena[i];
}
EEPROM.write(nuevaContrasena.length(), '\0'); // Escribir el carácter nulo al final de la cadena
EEPROM.commit();
Serial.print("Tu nueva contrasena es: ");
Serial.println(contrasena);
} else {
Serial.println("La nueva contraseña es demasiado larga. Inténtalo de nuevo.");
}
}
// Limpiar el buffer del puerto serie para evitar problemas con caracteres adicionales
delay(1000);
}