#include <LiquidCrystal.h>
#include <Keypad.h>
//#include "estado_bomba.h"
// Inicializa la pantalla LCD en los pines correspondientes
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
// Define los pines utilizados para el teclado numérico
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {6, 5, 4, 3};
byte colPins[COLS] = {A0, A1, A2,A3};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Variables globales
bool bombaArmada = false;
int tiempoRestante = 0;
String password = ""; // Variable para almacenar el password ingresado
// Definimos el tamaño máximo del password
const int tamPassword = 4;
//estado_bomba estado_bomba;
void setup() {
lcd.begin(16, 2);
lcd.print("ScoutBomb v1.0");
lcd.setCursor(0, 1);
lcd.print("Presione #...");
}
void bomba_no_armada() {
char tecla = keypad.getKey(); // Leemos la tecla presionada
if (tecla == '#') {
lcd.setCursor(0, 0);
lcd.print("Armar Bomba");
lcd.setCursor(0, 1);
lcd.print("Presione #...");
armar_bomba();
}
}
void armar_bomba() {
configurar_password();
//configurar_tiempo();
}
void configurar_password() {
lcd.begin(16, 2);
lcd.print("Ingrese password");
char key = keypad.getKey(); // Leemos la tecla presionada
if (key != NO_KEY) { // Si se presionó una tecla
if (key == '#') { // Si se presionó el caracter '#' (fin del password)
lcd.clear(); // Borramos la pantalla LCD
lcd.print("Password: " + password); // Mostramos el password en pantalla
delay(2000); // Esperamos 2 segundos
lcd.clear(); // Borramos la pantalla LCD
lcd.print("Ingrese Password:"); // Mostramos el mensaje para ingresar el password
password = ""; // Borramos el password ingresado para empezar de nuevo
} else { // Si se presionó cualquier otra tecla
password += key; // Añadimos la tecla presionada al password
}
}
}
void bomba_armada() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Bomba armada!");
}
void loop() {
if (bombaArmada == false) {
bomba_no_armada2();
} else {
bomba_armada();
}
}
void bomba_no_armada2() {
char password[tamPassword + 1];
ingresarPassword(password);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Password ingresado:");
lcd.setCursor(0, 1);
lcd.print(password);
delay(2000);
}
void ingresarPassword(char* password) {
// Leemos las teclas del keypad y las vamos almacenando en una cadena
int posicion = 0;
while (posicion < tamPassword) {
char tecla = keypad.getKey();
if (tecla != NO_KEY) {
password[posicion] = tecla;
posicion++;
lcd.setCursor(posicion - 1, 1);
lcd.print("*");
}
}
password[tamPassword] = '\0';
}