"""
Laboratorio 5 - Semáforo con ESP32 y MicroPython
Estudiantes:
Rebolledo, Fernando [8-1015-1326]
Carrasco, Nathan [8-1010-606]
Barrios, Justin [8-983-1021]
Mojica, Roberto [3-755-2291]
Fecha: 23/11/2025
Grupo: 1GS131
Simulación de semáforo usando placa ESP32 y MicroPython
Control de luces LED mediante pines GPIO
"""
from machine import Pin
from utime import sleep
# Configuración de pines GPIO para el semáforo
pinLedRojo = Pin(15, Pin.OUT)
pinLedAmarillo = Pin(2, Pin.OUT)
pinLedVerde = Pin(4, Pin.OUT)
def apagarTodasLasLuces():
# Apaga todos los LEDs del semáforo
pinLedRojo.off()
pinLedAmarillo.off()
pinLedVerde.off()
def cicloSemaforo():
# Fase Roja - Detenerse
apagarTodasLasLuces()
pinLedRojo.on()
sleep(5) # 5 segundos en rojo
# Fase Amarilla - Precaución
apagarTodasLasLuces()
pinLedAmarillo.on()
sleep(2) # 2 segundos en amarillo
# Fase Verde - Avanzar
apagarTodasLasLuces()
pinLedVerde.on()
sleep(5) # 5 segundos en verde
# Programa principal
def main():
print("Iniciando simulación de semáforo con ESP32")
print("Secuencia: ROJO (5s) -> AMARILLO (2s) -> VERDE (5s)")
while True:
cicloSemaforo()
# Ejecutar el programa
if __name__ == "__main__":
main()