import machine
import time
rood1 = machine.Pin(21, machine.Pin.OUT)
oranje1 = machine.Pin(19, machine.Pin.OUT)
groen1 = machine.Pin(18, machine.Pin.OUT)
blauw = machine.Pin(23, machine.Pin.OUT)
rood2 = machine.Pin(27, machine.Pin.OUT)
oranje2 = machine.Pin(26, machine.Pin.OUT)
groen2 = machine.Pin(25, machine.Pin.OUT)
toggle_snelheid = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP)
toggle_knipper = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
# beginwaarden de verkeerslichten
rood1.value(1)
oranje1.value(0)
groen1.value(0)
blauw.value(0)
rood2.value(1)
oranje1.value(0)
groen1.value(0)
print("\nVerkeerslicht start binnen 2 seconden")
time.sleep(2)
time_to_wait = 0
is_knipper = 0
snelheid_status = 0
while True:
if is_knipper == 0:
print("\ngroen1 aan")
rood1.value(0)
rood2.value (1)
groen1.value(1)
blauw.value(1) if snelheid_status else blauw.value(0)
time_to_wait = 1000 if snelheid_status else 2000
while time_to_wait > 0:
if toggle_knipper.value() == 0:
is_knipper = 1
print("start knipperen")
time.sleep(0.5)
break
if toggle_snelheid.value() == 0:
snelheid_status = not snelheid_status
print("Snelheid verkeerslicht: " + ("Snel" if snelheid_status else "Normaal"))
time.sleep(0.5)
time.sleep(0.001)
time_to_wait -= 1
if is_knipper == 0:
print("oranje1 aan")
groen1.value(0)
rood2.value (1)
oranje1.value(1)
blauw.value(1) if snelheid_status else blauw.value(0)
time_to_wait = 1000 if snelheid_status else 2000
while time_to_wait > 0:
if toggle_knipper.value() == 0:
is_knipper =1
print("start knipperen")
time.sleep(0.5)
break
if toggle_snelheid.value() == 0:
snelheid_status = not snelheid_status
print("Snelheid verkeerslicht: " + ("Snel" if snelheid_status else "Normaal"))
time.sleep(0.5)
time.sleep(0.001)
time_to_wait -= 1
if is_knipper == 0:
print("rood1 aan")
oranje1.value(0)
rood2.value (1)
rood1.value(1)
blauw.value(1) if snelheid_status else blauw.value(0)
time_to_wait = 1000 if snelheid_status else 2000
while time_to_wait > 0:
if toggle_knipper.value() == 0:
is_knipper =1
print("start knipperen")
time.sleep(0.5)
break
if toggle_snelheid.value() == 0:
snelheid_status = not snelheid_status
print("Snelheid verkeerslicht: " + ("Snel" if snelheid_status else "Normaal"))
time.sleep(0.5)
time.sleep(0.001)
time_to_wait -= 1
if is_knipper == 0:
print("\ngroen2 aan")
rood1.value(1)
rood2.value(0)
groen2.value(1)
blauw.value(1) if snelheid_status else blauw.value(0)
time_to_wait = 1000 if snelheid_status else 2000
while time_to_wait > 0:
if toggle_knipper.value() == 0:
is_knipper = 1
print("start knipperen")
time.sleep(0.5)
break
if toggle_snelheid.value() == 0:
snelheid_status = not snelheid_status
print("Snelheid verkeerslicht: " + ("Snel" if snelheid_status else "Normaal"))
time.sleep(0.5)
time.sleep(0.001)
time_to_wait -= 1
if is_knipper == 0:
print("oranje2 aan")
groen2.value(0)
oranje2.value(1)
blauw.value(1) if snelheid_status else blauw.value(0)
time_to_wait = 1000 if snelheid_status else 2000
while time_to_wait > 0:
if toggle_knipper.value() == 0:
is_knipper =1
print("start knipperen")
time.sleep(0.5)
break
if toggle_snelheid.value() == 0:
snelheid_status = not snelheid_status
print("Snelheid verkeerslicht: " + ("Snel" if snelheid_status else "Normaal"))
time.sleep(0.5)
time.sleep(0.001)
time_to_wait -= 1
if is_knipper == 0:
print("rood2 aan")
oranje2.value(0)
rood2.value(1)
blauw.value(1) if snelheid_status else blauw.value(0)
time_to_wait = 1000 if snelheid_status else 2000
while time_to_wait > 0:
if toggle_knipper.value() == 0:
is_knipper =1
print("start knipperen")
time.sleep(0.5)
break
if toggle_snelheid.value() == 0:
snelheid_status = not snelheid_status
print("Snelheid verkeerslicht: " + ("Snel" if snelheid_status else "Normaal"))
time.sleep(0.5)
time.sleep(0.001)
time_to_wait -= 1
if is_knipper == 1:
groen1.value(0)
rood1.value(0)
oranje1.value(1)
groen2.value(0)
rood2.value(0)
oranje2.value(1)
blauw.value(0)
state_oranje1 = 1
state_oranje2 = 1
time_stamp = time.ticks_ms()
while True:
if time.ticks_ms() - time_stamp > 500:
time_stamp = time.ticks_ms()
state_oranje1 = not state_oranje1
state_oranje2 = not state_oranje2
oranje1.value(state_oranje1)
oranje2.value(state_oranje2)
if toggle_knipper.value() == 0:
print("stop knipperen")
time.sleep(0.5)
is_knipper = 0
oranje1.value(0)
oranje2.value(0)
blauw.value(0)
break