from machine import Pin, PWM
from time import sleep_ms, ticks_ms
musica = [
(659, 187), (659, 187), (0, 100), (659, 187),
(0, 100), (523, 187), (659, 187), (0, 100),
(784, 187), (0, 300), (392, 187), (0, 300),
(523, 187), (0, 250), (392, 187), (0, 250),
(330, 187), (0, 250), (440, 187), (494, 187),
(466, 187), (440, 187), (392, 125), (659, 125),
(784, 125), (880, 187), (698, 187), (784, 187),
(659, 187), (0, 150), (523, 187), (587, 187), (494, 187)
]
#Tocando uma musiquina do buzzer:
'''
#Método 1 para tocar a list com a musica:
while True:
for nota,tempo in musica:
if (nota != 0):
buzzer.duty(512)
buzzer.freq(nota)
else:
buzzer.duty(0)
sleep_ms(tempo//2)
'''
#Método 2 para tocar a list com a musica:
ledpisca = PWM(Pin(19,Pin.OUT), freq=1, duty=100)
buzzer = PWM(Pin(17,Pin.OUT), freq=1, duty=512)
botao = Pin(5,Pin.IN, Pin.PULL_UP) #criação de objeto para o botao
botaozinho=0 #selo do botao
trep=0
i=0 #variavel auxiliar para varrer a list
ttoque=0 #variavel para tenporizacao das notas
while True:
if (botaozinho):
nota=(musica[i])[0]
pausa=(musica[i])[1]
if (nota !=0):
buzzer.duty(512)
buzzer.freq(nota)
else:
buzzer.duty(0)
if (ticks_ms()-ttoque >= pausa):
ttoque=ticks_ms()
i+=1
i=i%len(musica)
print(i)
#leitura do botao
if (botao.value() == 0 and ticks_ms()-trep>=300):
trep=ticks_ms()
botaozinho = not botaozinho
if (botaozinho == True):
print("O botao está ativado!")
ledpisca.duty(512)
else:
print("O botao está desativado!")
ledpisca.duty(0)
"""
#Forma correta de fazer um led Piscar com leitura de botao
# criação dos objetos a serem utilizados:
led = Pin(19,Pin.OUT) #criando um objeto para o led
botao = Pin(5, Pin.IN, Pin.PULL_UP) #criando um objeto para o botao
botaozinho = True #selo para o botao
tled=0 #auxiliar para piscar o led de forma temporizada
trep=0 #auxiliar para evitar repique do botao
while True:
if (botao.value() == 0 and ticks_ms()-trep>=300):
trep=ticks_ms()
botaozinho = not botaozinho
if (botaozinho == True):
print("O botao está ativado!")
else:
print("O botao está desativado!")
led.value(0)
if (ticks_ms()-tled >= 500 and botaozinho):
tled=ticks_ms()
led.value(not led.value()) #invertendo o estado do led
"""
'''
#código todo errado:
while True:
if (botao.value() != botaozinho):
botaozinho = botao.value()
while not botaozinho:
led.value(1) #digitalWrite(19,1)
sleep_ms(500) #equivalente ao delay(500)
led.value(0) #digitalWrite(19,0)
sleep_ms(500) #equivalente ao delay(500)
'''