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.