#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço do LCD I2C e número de colunas e linhas
const byte rows = 4; // número de linhas no teclado
const byte cols = 3; // número de colunas no teclado
char keyMap[rows][cols] = { // define os símbolos nos botões do teclado
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[rows] = {11, 10, 9, 8}; // pinos das linhas do teclado
byte colPins[cols] = {6, 5, 4}; // pinos das colunas do teclado
Keypad keypad = Keypad(makeKeymap(keyMap), rowPins, colPins, rows, cols);
void setup() {
lcd.init(); // inicializar o LCD
lcd.backlight(); // ligar a luz de fundo do LCD
}
void loop() {
// Solicitar tempo de detonação ao usuário
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tempo detonacao:");
int tempoMinutos = lerTempo();
// Exibir tempo de detonação
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tempo detonacao:");
lcd.setCursor(0, 1);
lcd.print(tempoMinutos);
lcd.print(" minutos");
delay(2000);
}
int lerTempo() {
String tempoString = "";
int index = 0;
while (true) {
char key = keypad.getKey();
if (key) {
// Verificar se a tecla pressionada é um dígito numérico
if (key >= '0' && key <= '9') {
tempoString += key;
lcd.print(key); // Exibir o dígito digitado
index++;
} else if (key == '#') {
break; // Sai do loop quando # é pressionado
}
}
}
return tempoString.toInt(); // Converte a string de tempo para um valor inteiro
}