from machine import ADC, Pin, PWM
from tm1637 import TM1637
import time
#definimos las entradas analogicas
adc = ADC(5)
display = TM1637(clk=Pin(3), dio=Pin(1))
parlante = PWM(Pin(2), freq=440, duty_u16=32768) #inicializacion con duty al 50%
parlante.duty(0) #aseguramos que el parlante comienza en apagado
#definimos los umbrales
UMBRAL_ENCENDIDO = 3500
UMBRAL_APAGADO = 1500
#definimos los estados
ESTADO_APAGADO = 0
ESTADO_ENCENDIDO = 1
#estado inicial
estado = ESTADO_APAGADO
while True:
time.sleep_ms(100)
val = adc.read()
display.number(val)
#estado finitos
if estado == ESTADO_APAGADO:
#si el valor supera el umbral de encendido, el parlante se enciende
if val > UMBRAL_ENCENDIDO:
parlante.duty(50)
estado = ESTADO_ENCENDIDO
print("parlante encendido")
elif estado == ESTADO_ENCENDIDO:
#si el valor baja por de bajo del umbral de apagado, el parlante se apaga
if val < UMBRAL_APAGADO:
parlante.duty(0)
estado = ESTADO_APAGADO
print("parlante apagado")
Loading
esp32-c3-devkitm-1
esp32-c3-devkitm-1