from machine import Pin, I2C, RTC
import utime
from i2clcd import I2clcd
from boton import BOTON
# configuracion del lcd de la libreria
# Configuración I2C (GP0 = SDA, GP1 = SCL)
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
LCD_ADDR = 0x27
lcd = I2clcd(i2c, LCD_ADDR, 2, 16)
# Configurar Fecha y Hora en el RTC interno de la Raspberry Pi Pico
# Formato: (Año, Mes, Día, Día_semana, Hora, Minuto, Segundo, Subseg)
rtc = RTC()
rtc.datetime((2026, 9, 7, 0, 19, 15, 0, 0))
btnincrementar= BOTON(19,50)
btndecrementar= BOTON(20,50)
btnreset=BOTON(21,50)
btnonoff= BOTON(22)
buzzer= Pin(15,Pin.OUT)
modoreset= False
contador=0
ultimotick=utime.ticks_ms()
inicio_buzzer=0
buzzer_activo= False
on= True
def buzzeractivo():
global buzzer_activo, inicio_buzzer # trae variables globales a la funcion
buzzer.value(1)
buzzer_activo = True
inicio_buzzer = utime.ticks_ms()
# print( "se prendio")
def actlcd():
if on:
AAAA, MM, DD, _, HH, mm, _, _ = rtc.datetime()
linea1=f"TURNO: {contador:04d}"
reset="TURNO: ----"
linea2=f"{DD:02d}/{MM:02d}/{AAAA:04d} {HH:02d}:{mm:02d}"
lcd.posicion(0,1)
lcd.palabra(linea2)
if modoreset:
lcd.posicion(0,0)
lcd.palabra(reset)
else:
lcd.posicion(0,0)
lcd.palabra(linea1)
actlcd()
while True:
tickactual = utime.ticks_ms()
if buzzer_activo:
if utime.ticks_diff(tickactual,inicio_buzzer) >= 1000:
buzzer.value(0)
buzzer_activo = False
# print( "se apago")
if btnincrementar.fuepresionado() and on:
if modoreset:
modoreset= False
contador=0
else:
if contador < 9999:
contador= contador + 1
else:
contador=0
buzzeractivo()
actlcd()
if btndecrementar.fuepresionado() and on:
#print(contador, "es el numero")
if modoreset:
modoreset= False
contador= 0
else:
if contador > 0:
contador= contador - 1
else:
contador = 9999
buzzeractivo()
actlcd()
if btnreset.fuepresionado() and on:
modoreset= True
actlcd()
if btnonoff.fuepresionado():
if on:
on= False
lcd.displayapagado()
else:
on= True
lcd.displayprendido()
actlcd()
Loading
pi-pico-w
pi-pico-w