#include <LiquidCrystal.h>
//D4 es 26
//D5 es 27
//D6 es 14
//D7 es 12
//RS es 13
//E es 23
LiquidCrystal lcd(13, 23, 26, 27, 14, 12);
// Definimos los pines conectados a los LEDs
const int ledRojo = 32;
const int ledBlanco = 33;
const int ledVerde = 25;
// Pines de los pulsadores
const int botonBitcoin = 2;
const int botonSolana = 15;
// Variables para almacenar estado anterior
bool estadoAnteriorBitcoin = HIGH;
bool estadoAnteriorSolana = HIGH;
//Buzzer
const int pinBuzzer = 4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
// Configuramos los pines como salida
pinMode(ledRojo, OUTPUT);
pinMode(ledBlanco, OUTPUT);
pinMode(ledVerde, OUTPUT);
// Iniciar LCD
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Bienvenido");
delay(2000);
lcd.clear();
lcd.print("Listo para usar");
delay(2000); // Espera 2 segundos
// Configurar botones
pinMode(botonBitcoin, INPUT_PULLUP);
pinMode(botonSolana, INPUT_PULLUP);
pinMode(pinBuzzer, OUTPUT); // Configura el pin ESP0 como salida
}
void loop() {
// put your main code here, to run repeatedly:
//delay(10); // this speeds up the simulation
// Encendemos el LED verde
digitalWrite(ledVerde, HIGH);
delay(500);
digitalWrite(ledVerde, LOW);
// Encendemos el LED blanco
digitalWrite(ledBlanco, HIGH);
delay(500);
digitalWrite(ledBlanco, LOW);
// Encendemos el LED rojo
digitalWrite(ledRojo, HIGH);
delay(500);
digitalWrite(ledRojo, LOW);
// Leer estado actual de botones
bool estadoBitcoin = digitalRead(botonBitcoin);
bool estadoSolana = digitalRead(botonSolana);
// Detectar pulsación (cambio de HIGH a LOW)
if (estadoAnteriorBitcoin == HIGH && estadoBitcoin == LOW) {
mostrarMensaje("Bitcoin");
// Suena el buzzer
digitalWrite(pinBuzzer, HIGH);
delay(500); // suena por 0.5 segundos
digitalWrite(pinBuzzer, LOW);
}
if (estadoAnteriorSolana == HIGH && estadoSolana == LOW) {
mostrarMensaje("Solana");
// Suena el buzzer
digitalWrite(pinBuzzer, HIGH);
delay(500); // suena por 0.5 segundos
digitalWrite(pinBuzzer, LOW);
}
// Guardar el estado actual para la próxima iteración
estadoAnteriorBitcoin = estadoBitcoin;
estadoAnteriorSolana = estadoSolana;
}
void mostrarMensaje(String texto) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(texto);
delay(3000); // Mostrar por 3 segundos
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Listo para usar");
}