from machine import Pin, ADC, PWM #type:ignore
import time
import random
potRojo= ADC(28)
potVerde= ADC(27)
potAzul= ADC(26)
btnIniciar = Pin(22, Pin.IN, Pin.PULL_DOWN)
inicio= False
buzzer = Pin(14, Pin.OUT)
buzzerpwm= PWM(14)
pinesrgbJuego = [13,11,10]
pinesrgbUsuario = [9,7,6]
rgbJuego= [Pin(pin, Pin.OUT) for pin in pinesrgbJuego]
rgbJuegoANA= [PWM(pin) for pin in rgbJuego]
rgbUsuario= [Pin(pin, Pin.OUT) for pin in pinesrgbUsuario]
rgbUsuarioANA= [PWM(pin) for pin in rgbUsuario]
rojousuario=0
verdeusuario=0
azulusuario=0
rojousuariomapeado=0
verdeusuariomapeado=0
azulusuariomapeado=0
random1=0
random2=0
random3=0
for pin in rgbUsuarioANA:
pin.freq(1000)
for pin in rgbJuegoANA:
pin.freq(1000)
def map(valor, valor_min_entrada, valor_max_entrada, valor_min_salida, valor_max_salida):
return (int)((valor - valor_min_entrada) * (valor_max_salida - valor_min_salida) / (valor_max_entrada - valor_min_entrada) + valor_min_salida)
while True:
if (btnIniciar.value() == 1):
inicio=True
random1=random.randint(0,255)
random2=random.randint(0,255)
random3=random.randint(0,255)
rgbJuegoANA[0].duty_u16(map(random1, 0, 255, 0, 64000))
rgbJuegoANA[1].duty_u16(map(random2, 0, 255, 0, 64000))
rgbJuegoANA[2].duty_u16(map(random3, 0, 255, 0, 64000))
print("holis")
while inicio==True:
rojousuario = potRojo.read_u16()
verdeusuario = potVerde.read_u16()
azulusuario = potAzul.read_u16()
rojousuariomapeado= map(rojousuario, 0, 64000, 0, 255)
verdeusuariomapeado = map(verdeusuario, 0, 64000, 0, 255)
azulusuariomapeado = map(azulusuario, 0, 64000, 0, 255)
rgbUsuarioANA[0].duty_u16(rojousuario)
rgbUsuarioANA[1].duty_u16(verdeusuario)
rgbUsuarioANA[2].duty_u16(azulusuario)
print("Generado rojo: ", random1)
print("Generado verde:", random2)
print("Generado azul:", random3)
print("")
print("Usuario rojo: ", rojousuariomapeado)
print("Usuario verde:", verdeusuariomapeado)
print("Usuario azul:", azulusuariomapeado)
print("")
if ((random1+10 > rojousuariomapeado and random1-10< rojousuariomapeado) and (random2+10 > verdeusuariomapeado and random2-10 < verdeusuariomapeado) and (random3+10 > azulusuariomapeado and random3-10<azulusuariomapeado)):
buzzerpwm.freq(1000)
buzzerpwm.duty_u16(50000)
time.sleep(1)
buzzerpwm.duty_u16(0)
rgbJuegoANA[0].duty_u16(0)
rgbJuegoANA[1].duty_u16(0)
rgbJuegoANA[2].duty_u16(0)
rgbUsuarioANA[0].duty_u16(0)
rgbUsuarioANA[1].duty_u16(0)
rgbUsuarioANA[2].duty_u16(0)
inicio=False
print("acerto")
time.sleep(1)