[Logo for The C Shore Landing Page]
The C Shore

Traffic Lights Revisited

Table of Contents

Traffic Lights Revisited

Traffic lights sequence

As well as controlling the whole set of lights together, you can also control each LED individually. With traffic light LEDs, a button and a buzzer, you can create your own traffic lights sequence, complete with pedestrian crossing!

  • At the top of your file, below from gpiozero import..., add a line to import the sleep function:

     from time import sleep
  • Modify your loop to perform an automated sequence of LEDs being lit:

     while True:
         lights.green.on()
         sleep(1)
         lights.amber.on()
         sleep(1)
         lights.red.on()
         sleep(1)
         lights.off()
  • Add a wait_for_press so that pressing the button initiates the sequence:

     while True:
         button.wait_for_press()
         lights.green.on()
         sleep(1)
         lights.amber.on()
         sleep(1)
         lights.red.on()
         sleep(1)
         lights.off()

    Try some more sequences of your own.

  • Now try creating the full traffic lights sequence:

    • Green on
    • Amber on
    • Red on
    • Red and amber on
    • Green on

    Be sure to turn the correct lights on and off at the right time, and make sure you use sleep to time the sequence perfectly.

  • Try adding the button for a pedestrian crossing. The button should move the lights to red (not immediately), and give the pedestrians time to cross before moving back to green until the button is pressed again.

  • Now try adding a buzzer to beep quickly to indicate that it is safe to cross, for the benefit of visually impaired pedestrians.


Design Exercise: ‘Real-world’ Traffic Lights

  • As a group: talk about what real traffic lights do.

    • What inputs do they accept (e.g. buttons, in some cases cars at the light, time of day, etc)
    • What happens with the lights?
      • Without inputs
      • When one our more inputs are received
  • Design the logic for a typical traffic light with four buttons for pedestrians, an signal for visually impaired pedestrians, and that’s.

  • Write the code and try it out.