from machine import Pin, PWM
from time import sleep
from random import randint, choice
led_RGB= [Pin(pin, Pin.OUT) for pin in (28,27,26)]
Buttons= [Pin(pinos, Pin.IN, Pin.PULL_DOWN) for pinos in (2,3,4,5,6,7,8,9)]
buzzer= PWM(22)
senha= []
senha_digitada= []
Padroes= [[0,0,0], #Desligado
[1,0,0], #Vermelho
[0,1,0], #Verde
[0,0,1], #Azul
[1,1,0], #Amarelo
[1,0,1], #Roxo
[0,1,1], #Ciano
[1,1,1] #Branco
]
def Sorteio():
sorteios= []
for i in range(4):
Sortear= choice(Padroes[1:])
sorteios.append(Sortear)
print(f"a cor sorteada foi:{Sortear}")
sleep(1)
return sorteios
def definir_senha():
global Padrao_sorteado
Padrao_sorteado= Sorteio()
if Padrao_sorteado:
senha.clear()
senha.extend(Padrao_sorteado)
print(f"A senha definida foi:{senha}")
def Acender_cor():
global Padrao_sorteado
if not Padrao_sorteado:
return
for cor in Padrao_sorteado:
# Apaga o LED antes de acender a nova cor
for i in range(3):
led_RGB[i].value(0)
sleep(0.2)
# Acende a cor desejada
for i in range(3):
led_RGB[i].value(cor[i])
sleep(1)
# Garante que o LED fique desligado ao final
for i in range(3):
led_RGB[i].value(0)
sleep(0.5)
def Teclado():
for i in range(1, 8): # Botões 1 até 7
if Buttons[i].value():
sleep(0.05) # Aguarda estabilização
if Buttons[i].value(): # Confirma se ainda está pressionado
while Buttons[i].value():
sleep(0.01) # Espera soltar
senha_digitada.append(Padroes[i])
print(f"O botão {i} foi pressionado: {Padroes[i]}")
return # Sai após registrar UM botão
def campainha_certo():
print("Resposta correta!")
buzzer.freq(1000)
buzzer.duty_u16(30000)
sleep(0.1)
buzzer.duty_u16(0)
sleep(0.1)
buzzer.duty_u16(30000)
sleep(0.1)
buzzer.duty_u16(0)
def campainha_errado():
print("Resposta errada!")
buzzer.freq(300)
buzzer.duty_u16(30000)
sleep(0.5)
buzzer.duty_u16(0)
def Memoria():
if senha_digitada == senha:
print("padrão coreto")
campainha_certo()
else:
print("Senha incorreta")
campainha_errado
while True:
if Buttons[0].value(): # Aguarda botão 0
while Buttons[0].value():
sleep(0.05)
definir_senha() # Agora sim define a senha com base no sorteio
Acender_cor()
senha_digitada.clear()
print("Digite a sequência:")
Teclado()
if len(senha_digitada) == 4:
Memoria()
senha_digitada.clear()
print("Aperte o botão 0 para gerar nova senha.")