#include <WiFi.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(22, 23, 5, 18, 19, 21);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const int pinPulsador1 = 2;
int contador = 0;
unsigned long tiempoUltimaPulsacion = 0;
bool botonBloqueado = false;
bool contadorBloqueado = false;
unsigned long tiempoBloqueoBoton = 3000; // 3 segundos en milisegundos
unsigned long tiempoReinicioContador = 5000; // 5 segundos en milisegundos
void conectarWiFi() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Conectando a WiFi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
}
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Conectado a WiFi");
}
void reiniciarContador() {
contador = 0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CUPOS SOLIC: ");
lcd.print(contador);
tiempoUltimaPulsacion = millis();
}
void setup() {
Serial.begin(115200);
lcd.begin(16, 2);
conectarWiFi();
reiniciarContador();
}
void loop() {
unsigned long tiempoActual = millis();
if (!botonBloqueado && digitalRead(pinPulsador1) == HIGH) {
botonBloqueado = true;
contadorBloqueado = true;
tiempoUltimaPulsacion = tiempoActual;
contador++;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CUPOS SOLIC: ");
lcd.print(contador);
delay(250);
}
if (botonBloqueado && tiempoActual - tiempoUltimaPulsacion >= tiempoBloqueoBoton) {
botonBloqueado = false;
}
if (contadorBloqueado && tiempoActual - tiempoUltimaPulsacion >= tiempoReinicioContador) {
contadorBloqueado = false;
reiniciarContador();
}
}