from machine import Pin,ADC,Timer

#INTERRUCPCION

def llamatimer(x):

    ledmorado.on()
    t1.init(period=1000,mode=Timer.ONE_SHOT,callback=apagaled)

#TIMER
def mostravolt(y):

    global v
    global vreal

    v=adc.read()
    vreal=((v*3.3)/511)
    print(vreal," volts")

def apagaled(z):

    ledmorado.off()


#CONFIGURACION DE LA INTERRUPCION

push=Pin(14,Pin.IN,Pin.PULL_UP)
push.irq(trigger=Pin.IRQ_FALLING,handler=llamatimer)

#CONFIGURACION DE LOS TIMERS

t0=Timer(0)
t0.init(period=3000,mode=Timer.PERIODIC,callback=mostravolt)
t1=Timer(1)

#CONFIGURACION DEL ADC

adc=ADC(Pin(32))
adc.width(ADC.WIDTH_9BIT)
adc.atten(ADC.ATTN_11DB)

#CONFIGURACION DE LOS LEDS

ledrojo=Pin(23,Pin.OUT)
ledamarillo=Pin(22,Pin.OUT)
ledverde=Pin(21,Pin.OUT)
ledmorado=Pin(19,Pin.OUT)

#VARIABLES

v=0
vreal=0

while(1):

    v=adc.read()
    if(v<=170):
        ledverde.on()
        ledamarillo.off()
        ledrojo.off()

    elif(v>=170 and v<=340):
        ledamarillo.on()
        ledverde.off()
        ledrojo.off()


    elif(v>=340 and v<=511):
        ledrojo.on()
        ledverde.off()
        ledamarillo.off()