import machine
import utime
porte1 = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)
porte2 = machine.Pin(1, machine.Pin.IN, machine.Pin.PULL_UP)
porte3 = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)
porte4 = machine.Pin(3, machine.Pin.IN, machine.Pin.PULL_UP)
reset1 = machine.Pin(12, machine.Pin.IN, machine.Pin.PULL_UP)
reset2 = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP)
reset3 = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_UP)
reset4 = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
led1 = machine.Pin(16, machine.Pin.OUT)
led2 = machine.Pin(17, machine.Pin.OUT)
led3 = machine.Pin(18, machine.Pin.OUT)
led4 = machine.Pin(19, machine.Pin.OUT)
led1.high() # del éteinte
led2.on()
led3.on()
led4.on()
#print(utime.ticks_ms())
ouv_porte = [0,0,0,0]
delai_porte = 1000
buzzer = machine.Pin(15, machine.Pin.OUT)
def reset_handler(pin):
#print(str(pin)[4:6])
pin_int = int(str(pin)[4:6])
#print(machine.Pin(pin_int).value())
if machine.Pin(pin_int-12).value() == 0:
machine.Pin(pin_int+4).high()
ouv_porte[pin_int-12] = 0
reset1.irq(trigger=machine.Pin.IRQ_RISING, handler=reset_handler)
reset2.irq(trigger=machine.Pin.IRQ_RISING, handler=reset_handler)
reset3.irq(trigger=machine.Pin.IRQ_RISING, handler=reset_handler)
reset4.irq(trigger=machine.Pin.IRQ_RISING, handler=reset_handler)
(no_pin) = porte1
while True:
#print(led2.value())
if porte1.value()==1:
#print(utime.ticks_ms()-ouv_porte[0])
if ouv_porte[0] == 0:
#print(2)
ouv_porte[0] = utime.ticks_ms() #heure ouverture porte
elif (utime.ticks_ms()-ouv_porte[0]) > delai_porte:
#print(ouv_porte[0])
led1.off() #DEL allumée
elif led1.value()==1:
#led1.on()
ouv_porte[0] = 0
if porte2.value()==1:
if ouv_porte[1] == 0:
ouv_porte[1] = utime.ticks_ms() #heure ouverture porte
elif (utime.ticks_ms()-ouv_porte[1]) > delai_porte:
led2.off() #DEL allumée
elif led2.value==1:
led2.on()
ouv_porte[1] = 0
if porte3.value()==1:
if ouv_porte[2] == 0:
ouv_porte[2] = utime.ticks_ms() #heure ouverture porte
elif (utime.ticks_ms()-ouv_porte[2]) > delai_porte:
led3.off() #DEL allumée
elif led3.value==1:
led3.on()
ouv_porte[2] = 0
if porte4.value()==1:
if ouv_porte[3] == 0:
ouv_porte[3] = utime.ticks_ms() #heure ouverture porte
elif (utime.ticks_ms()-ouv_porte[3]) > delai_porte:
led4.off() #DEL allumée
elif led4.value==1:
led4.on()
ouv_porte[3] = 0
#if (led1.value() + led2.value() + led3.value() + led4.value()) < 4:
# buzzer.toggle()
# utime.sleep_ms(100)