53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
# SPDX-FileCopyrightText: 2018 Dan Halbert for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
import time
|
|
|
|
import board
|
|
import touchio
|
|
import adafruit_dotstar
|
|
|
|
# Red, green, blue, and simple mixes of 2 or 3.
|
|
# Add your own choices here.
|
|
COLORS = (
|
|
(0, 255, 0),
|
|
(0, 0, 255),
|
|
(255, 0, 0),
|
|
(0, 255, 255),
|
|
(255, 255, 0),
|
|
(255, 0, 255),
|
|
(255, 255, 255),
|
|
)
|
|
|
|
# The two left touch pads adjust the brightness.
|
|
# The right touch pad changes colors.
|
|
# Hold down or just tap.
|
|
brightness_down = touchio.TouchIn(board.D0)
|
|
brightness_up = touchio.TouchIn(board.D2)
|
|
change_color = touchio.TouchIn(board.D1)
|
|
|
|
dotstar = adafruit_dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1)
|
|
BRIGHTNESS_STEPS = 15
|
|
# Start at medium brightness, green.
|
|
brightness_step = 8
|
|
color_index = 0
|
|
|
|
while True:
|
|
if brightness_down.value:
|
|
# Don't go below 1.
|
|
brightness_step = max(1, brightness_step - 1)
|
|
|
|
if brightness_up.value:
|
|
# Don't go above BRIGHTNESS_STEPS.
|
|
brightness_step = min(BRIGHTNESS_STEPS, brightness_step + 1)
|
|
|
|
if change_color.value:
|
|
# Cycle through 0 to len(COLORS)-1 and then wrap around.
|
|
color_index = (color_index + 1) % len(COLORS)
|
|
|
|
# Scale brightness to be 0.0 - 1.0.
|
|
dotstar.brightness = brightness_step / BRIGHTNESS_STEPS
|
|
dotstar.fill(COLORS[color_index])
|
|
|
|
time.sleep(0.2)
|