Skip to content

Instantly share code, notes, and snippets.

@lizzybrooks
Created April 7, 2023 21:36
Show Gist options
  • Save lizzybrooks/4079e063a62d991e299a586a4876b3d2 to your computer and use it in GitHub Desktop.
Save lizzybrooks/4079e063a62d991e299a586a4876b3d2 to your computer and use it in GitHub Desktop.
import time
import board
import neopixel
from digitalio import DigitalInOut, Direction, Pull
switch = DigitalInOut(board.D3)
switch.direction = Direction.INPUT
switch.pull = Pull.UP
pixel_pin = board.D2
num_pixels = 16
pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.3, auto_write=False)
PINK = (255, 71, 185)
RED = (255,0,0)
ORANGE = (255, 142, 71)
YELLOW = (255,210, 0)
GREEN = (0, 180, 0)
TEAL = (0, 255, 255)
TURQUUOISE = (0, 211, 205)
PERIWINKLE = (100,100,255)
BLUE = (0, 0, 255)
PURPLE = (150, 0, 255)
MAGENTA = (211, 0, 127)
WHITE = (255, 255, 255)
OFF = (0,0,0)
colors = [MAGENTA,RED,ORANGE,YELLOW,GREEN,TEAL,TURQUUOISE,BLUE,PERIWINKLE,PURPLE,PINK,WHITE, OFF]
now=0
press_count=0
def press_check():
global press_count
if (switch.value==False):
press_count+=1
if press_count>13:
press_count=0
time.sleep(0.3)
print(press_count)
while True:
press_check()
if (press_count <=12):
pixels.fill(colors[press_count])
pixels.show()
if (press_count==13):
press_check()
pixels.fill(MAGENTA)
pixels.show() #required to update pixels
time.sleep(3)
press_check()
pixels.fill(RED)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(ORANGE)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(YELLOW)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(GREEN)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(TEAL)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(TURQUUOISE)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(BLUE)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(PERIWINKLE)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(PURPLE)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(PINK)
pixels.show()
time.sleep(3)
press_check()
pixels.fill(WHITE)
pixels.show()
time.sleep(3)
press_check()
time.sleep(0.12) # debounce delay
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment