from machine import Pin # Importar libreria para configurar los pines
import time # Importar libreria para el tiempo
boton = Pin(15, Pin.IN, Pin.PULL_UP) # Configuración Pin 15 del botón como de entrada y configuración interna conexión pull-up
led = Pin(2, Pin.OUT) # Configuración Pin 2 del LED como de salida
frecuencia = 2 # Definimos el objeto frecuencia y le asignamos el valor de 2
pulsaciones = 0 # Definimos el objeto pulsaciones y le asignamos el valor de 0
print("Presiona el botón para comenzar a contar las pulsaciones deseadas durante los próximos 5 segundos") # La consola solicita las pulsaciones
while boton.value() == 1: # Mientras el valor del botón sea 1 espera que se presione
time.sleep(0.05) # Tiempo de espera
inicio_tiempo = time.ticks_ms() # Inicio del tiempo
while time.ticks_diff(time.ticks_ms(), inicio_tiempo) < 5000: # Mientras el valor del tiempo sea menos de 5 segundos
if boton.value() == 0: # Si el botón se ha pulsado
pulsaciones += 1 # Suma el valor de 1 a pulsaciones
time.sleep(0.2) # Tiempo de espera entre pulsaciones para evitar rebotes
print("El conteo de pulsaciones en los 5 segundos es de :", pulsaciones) # La consola informa del conteo de pulsaciones
print("Va a parpadear el LED las pulsaciones contadas pero antes debe oprimir el botón para comenzar el parpadeo")
# La consola informa que es necesario pulsar el botón para el comienzo del parpadeo en el led
time.sleep(5) # Tiempo de espera de 5 s para pulsar
# Esperar la pulsación comienzo parpadeo
while boton.value() == 1: # Mientras el valor del botón sea 1 espera que se presione
time.sleep(0.05) # Tiempo de espera
for _ in range(pulsaciones): # Bucle ejecucion parpadeo led hasta el alcanzar el valor de conteo de las pulsaciones
led.on() # Encender led
time.sleep(0.5/frecuencia) # Tiempo de encendido led según valor de frecuencia
led.off() # Apagar led
time.sleep(0.5/frecuencia) # Tiempo de apagado del led según valor de frecuencia
print("¡Fin!, reinicie sistema para nuevo ciclo") # La consola informa del fin del programa