Pi pico Larson Scanner part 3
Following Saturdays STEM Group meet up, Where Vance has rewirtten my scanner program so that it is more efficient. I have included the new code below. I have now made an improvement by adding a 10 segment LED display and getting this working my modifying the code that Vance helped me with.
The new code, using an array to store pin numbers is below
#flash on board pico led
# updated 1/7/2023 - working code
import machine
import utime
# Vance
led_pins = [11,12,13,14,15]
#delay = input("Time Delay: ")
#bind leds gpip to variables
leds = []
for pin in led_pins:
# Set to output
leds.append(machine.Pin(pin, machine.Pin.OUT))
# Turn the LED off
leds[-1].value(0) #off
utime.sleep(3)
delay = 0.1 #set delay
while True:
# Led sequence upwards
for led in leds:
led.value(1)
utime.sleep(delay)
led.value(0)
# Led sequence downwards
for led in leds[-1:0:-1]:
led.value(1)
utime.sleep(delay)
led.value(0)
While my new code modification is here.
# use 10 led segment display
led_pins = [1,2,3,4,5,6,7,8,9,]
Which is just 1 line of actual code and a comment. The result of this is presented in the video below. I had to resolder the board with the LED display on as it had some joints missing.
Video
The video can be found here
Tags
#uPython,#RaspberryPiPico,#LarsonScanner,#PhysicalComputing
Pi pico Larson Scanner part 2
Further to the previous post. I spent some time on this, trying to fix the problem. This is mostly re-written.
I have also made the lights run faster as per video below
Code is below.
delay = 0.05 #set delay
I would recommand a delay of 1 second for testing purposes, so it is easier to try and follow the code as it is running.
#flash on board pico led
# updated 1/7/2023 - working code
import machine
import utime
#delay = input("Time Delay: ")
#bind LEDs / GPIO pins to variables
ledg = machine.Pin(11, machine.Pin.OUT) #green
ledb = machine.Pin(12, machine.Pin.OUT) # blue led
ledw = machine.Pin(13, machine.Pin.OUT) # white led
ledy = machine.Pin(14, machine.Pin.OUT) # yellow led
ledr = machine.Pin(15, machine.Pin.OUT) # red led
#turn all LEDs off
ledg.value(0) #off
ledb.value(0) #off
ledw.value(0) #off
ledy.value(0) #off
ledr.value(0) #off
utime.sleep(3)
#utime.sleep(2) # TWO second delay
#led_onboard = machine.Pin(25, machine.Pin.OUT)
delay = 0.05 #set delay
#ledg.value(0) ledg.value(1)
#ledb
#ledw
#ledy
#ledr
#g b w y r y w b -< repeat so therefore next led is back to g
while True:
ledg.value(1)#on
utime.sleep(delay)
ledb.value(1) #on
utime.sleep(delay)
ledg.value(0)#on
utime.sleep(delay)
ledw.value(1)
utime.sleep(delay)
ledb.value(0)
utime.sleep(delay)
ledy.value(1)
utime.sleep(delay)
ledw.value(0)
utime.sleep(delay)
ledr.value(1)
utime.sleep(delay)
ledy.value(0)
utime.sleep(delay)
ledr.value(1)
utime.sleep(delay)
ledy.value(1)
utime.sleep(delay)
ledr.value(0)
utime.sleep(delay)
ledw.value(1)
utime.sleep(delay)
ledy.value(0)
utime.sleep(delay)
ledb.value(1)
utime.sleep(delay)
ledw.value(0)
utime.sleep(delay)
Tags
#uPython,#RaspberryPiPico,#LarsonScanner,#PhysicalComputing