Here are a few code samples to get you started.
Plug your computer into the QY Py via a known, good power+data USB cable. A new thumb drive named CIRCUITPY should appear.
Download the file and save it as code.py at the root of your CIRCUITPY drive to install.
# Adafruit nOOds digital control using GPIO pins.
# Uses 3 nOOds, anode (+) to GPIO pin, cathode (-) to ground.
# A current-limiting resistor (e.g. 220 Ohm) can go at either end.
import time
import board
import digitalio
# This uses 3 pins on QtPy RP2040, but any pins will do.
PINS = (board.A3, board.SDA, board.SCL) # List of pins, one per nOOd
# Convert pin number list to pin object list, initialize to OFF
pin_list = [digitalio.DigitalInOut(pin) for pin in PINS]
for pin in pin_list:
pin.direction = digitalio.Direction.OUTPUT
pin.value = 0
while True: # Repeat forever...
for pin in pin_list: # For each pin...
pin.value = True # nOOd on
# Adafruit nOOds digital control using GPIO pins.
# Uses 3 nOOds, anode (+) to GPIO pin, cathode (-) to ground.
# A current-limiting resistor (e.g. 220 Ohm) can go at either end.
import time
import board
import digitalio
# This uses 3 pins on QtPy RP2040, but any pins will do.
PINS = (board.A3, board.SDA, board.SCL) # List of pins, one per nOOd
# Convert pin number list to pin object list, initialize to OFF
pin_list = [digitalio.DigitalInOut(pin) for pin in PINS]
for pin in pin_list:
pin.direction = digitalio.Direction.OUTPUT
pin.value = False
while True: # Repeat forever...
for pin in pin_list: # For each pin...
pin.value = True # nOOd on
time.sleep(0.5) # Pause 1/2 sec
pin.value = False # nOOd off
# Adafruit nOOds "analog" (PWM) brightness control using GPIO.
# Uses 3 nOOds, anode (+) to GPIO pin, cathode (-) to ground.
# A current-limiting resistor (e.g. 220 Ohm) can go at either end.
import math
import time
import board
import pwmio
# This uses 3 pins on QtPy RP2040, but any pins will do.
PINS = (board.A3, board.SDA, board.SCL) # List of pins, one per nOOd
GAMMA = 2.6 # For perceptually-linear brightness
# Convert pin number list to PWMOut object list
pin_list = [pwmio.PWMOut(pin, frequency=1000, duty_cycle=0) for pin in PINS]
while True: # Repeat forever...
for i, pin in enumerate(pin_list): # For each pin...
# Calc sine wave, phase offset for each pin, with gamma correction.
# If using red, green, blue nOOds, you'll get a cycle of hues.
phase = (time.monotonic() - 2 * i / len(PINS)) * math.pi
brightness = int((math.sin(phase) + 1.0) * 0.5 ** GAMMA * 65535 + 0.5)
pin.duty_cycle = brightness
Page last edited March 08, 2024
Text editor powered by tinymce.