#print("Hello, ESP32!")
#AGORA VC VAI FAZER UM BOTÃO QUE DESLIGUE E LIGUE A SIRENE
print("Agora é Python")
import machine
import time
from machine import PWM, Pin
# Definindo LEDs
led1 = Pin(2, Pin.OUT) # local de saída do LED, no pino 02
led2 = Pin(0, Pin.OUT) # local de saída do LED, no pino 00
i = 0 # contagem de ciclos, iniciando em zero
estado = True # flag auxiliar para ligar/desligar o LED
# Definindo variáveis dos botões
btn = 0 # variável do botão
tref = 0 # tempo de referência
# Declarando o botão no pino 23 como entrada
botao = Pin(23, Pin.IN)
def controle_da_Sirene(pin):
global tref
global btn
if (time.ticks_ms() - tref) > 300:
tref = time.ticks_ms()
btn += 1
print("O botão foi acionado", btn, "vezes")
# Ajustando uma interrupção e o respectivo handler para esta interrupção
botao.irq(trigger=Pin.IRQ_RISING, handler=controle_da_Sirene)
# IRQ_RISING -> SUBIDA DO PULSO
#HANDLER -> E UMA FUNfão para manipular eventos
while True:
if btn % 2 == 1: # Se o botão foi pressionado, liga a sirene
led1.value(1) # especifica o LED como aceso
led2.value(0)
tone1 = PWM(Pin(4, Pin.OUT), freq=600, duty=512) # começa a tocar o buzzer
time.sleep_ms(400) # toca por 400 ms
tone1.deinit() # para de tocar o buzzer
time.sleep(0.2) # espera 200 ms
led1.value(0) # especifica o LED como apagado
led2.value(1)
tone2 = PWM(Pin(4, Pin.OUT), freq=750, duty=512) # começa a tocar o buzzer
time.sleep_ms(40) # toca por 400 ms
tone2.deinit() # para de tocar o buzzer
time.sleep(0.2) # espera 200 ms
i += 1 # incrementa o número de ciclos
print("Número de ciclos: " + str(i))
else:
led1.value(0) # Desliga os LEDs e buzzer quando o botão não está pressionado
led2.value(0)