Raspberry Pi Pico
Digital OUT - LEDs
For our first CircuitPython project, we will get some LEDs going. That covers how we get the Pico to write digital signals. Here is a photograph of my circuit. I have some LEDs and resistors hooked up to pins 10, 11 and 12.

The following diagram shows more clearly how these connections are made.

For the first program, we will just get the LEDs working. We need a few import statements. We need to set the direction for the pin. When we set the value of the LED to high and low, it is slightly different to the way it is done in MicroPython.
import board
from time import sleep
from digitalio import DigitalInOut, Direction
red = DigitalInOut(board.GP10)
red.direction = Direction.OUTPUT
yellow = DigitalInOut(board.GP11)
yellow.direction = Direction.OUTPUT
green = DigitalInOut(board.GP12)
green.direction = Direction.OUTPUT
while True:
green.value = 0
red.value = 1
sleep(0.5)
red.value = 0
yellow.value = 1
sleep(0.5)
yellow.value = 0
green.value = 1
sleep(0.5)
When you have multiple components of the same type, it is worth using lists to make the processing a little more efficient. That is what I have done in the next program,
import board
from time import sleep
from digitalio import DigitalInOut, Direction
# define the pins as a list
led_pins = [board.GP10, board.GP11, board.GP12]
# list comprehension to set up the pins
leds = [DigitalInOut(p) for p in led_pins]
# set the direction using a loop
for l in leds:
l.direction = Direction.OUTPUT
# all off
def allOff(lights):
for p in lights:
p.value = 0
# turn on/off individually, list, index, value
def light(lights, p, v):
lights[p].value = v
while True:
for i in range(len(leds)):
allOff(leds)
sleep(0.5)
light(leds, i, 1)
sleep(0.5)

