diff --git a/traffic_lights.py b/traffic_lights.py new file mode 100644 index 0000000..4871f25 --- /dev/null +++ b/traffic_lights.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +from gpiozero import TrafficLights, Button, PWMOutputDevice +from time import sleep + + +def main(): + lights = TrafficLights(14, 15, 18) + lights.off() + lights.green.on() + pedestrian_button = Button(23) + buzzer = PWMOutputDevice(12) + buzzer.frequency = 444 + buzzer.value = 0.5 + buzzer.off() + while True: + pedestrian_button.wait_for_press() + pedestrian_call(lights, buzzer) + + +def pedestrian_call(lights, buzzer): + buzz(buzzer, 1) + sleep(3) + lights.green.off() + lights.amber.on() + sleep(4) + lights.amber.off() + lights.red.on() + buzz(buzzer, 2) + sleep(5) + buzz(buzzer, 3) + sleep(3) + lights.red.off() + lights.green.on() + + +def buzz(buzzer, n=1): + for i in range(n): + buzzer.value = 0.5 + sleep(0.1) + buzzer.off() + sleep(0.1) + +if __name__ == "__main__": + main()