#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Asignación de pines para los LEDS
int ledRojo = 10;
int ledNaranja = 9;
int ledVerde = 8;
// Tiempo de los LEDS en milisegundos
const int tiempoRojo = 3000;
const int tiempoNaranja = 2000;
const int tiempoVerde = 3000;
// Contador para el LED verde
int contadorVerde = 0;
void setup() {
// Configuración de los LEDs como salida
pinMode(ledRojo, OUTPUT);
pinMode(ledNaranja, OUTPUT);
pinMode(ledVerde, OUTPUT);
// Iniciar el LCD
lcd.init();
lcd.backlight();
// Mostrar un mensaje inicial
lcd.setCursor(0, 0);
lcd.print("Contador Verde:");
lcd.setCursor(0, 1); // Segunda fila, primera columna
lcd.print("0 veces");
}
void loop() {
// Secuencia del semáforo
// LED Rojo
digitalWrite(ledRojo, HIGH);
digitalWrite(ledNaranja, LOW);
digitalWrite(ledVerde, LOW);
delay(tiempoRojo);
// LED Naranja
digitalWrite(ledRojo, LOW);
digitalWrite(ledNaranja, HIGH);
digitalWrite(ledVerde, LOW);
delay(tiempoNaranja);
// LED Verde
digitalWrite(ledRojo, LOW);
digitalWrite(ledNaranja, LOW);
digitalWrite(ledVerde, HIGH);
delay(tiempoVerde);
// Incrementar el contador cuando el LED verde se enciende
contadorVerde++;
// Actualizar el LCD con el nuevo valor del contador
lcd.setCursor(0, 1); //
lcd.print(" "); // Borra cualquier texto previo
lcd.setCursor(0, 1); //
lcd.print(contadorVerde);
lcd.print(" veces");
}