43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
# SPDX-FileCopyrightText: 2018 Mikey Sklar for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
import analogio
|
|
import board
|
|
from rainbowio import colorwheel
|
|
import neopixel
|
|
|
|
# Initialize input/output pins
|
|
sensor_pin = board.A1 # input pin for the potentiometer
|
|
sensor = analogio.AnalogIn(sensor_pin)
|
|
|
|
pix_pin = board.D1 # pin where NeoPixels are connected
|
|
num_pix = 8 # number of neopixels
|
|
strip = neopixel.NeoPixel(pix_pin, num_pix, brightness=.15, auto_write=False)
|
|
|
|
color_value = 0
|
|
sensor_value = 0
|
|
|
|
|
|
def remap_range(value, left_min, left_max, right_min, right_max):
|
|
# this remaps a value from original (left) range to new (right) range
|
|
# Figure out how 'wide' each range is
|
|
left_span = left_max - left_min
|
|
right_span = right_max - right_min
|
|
|
|
# Convert the left range into a 0-1 range (int)
|
|
valueScaled = int(value - left_min) / int(left_span)
|
|
|
|
# Convert the 0-1 range into a value in the right range.
|
|
return int(right_min + (valueScaled * right_span))
|
|
|
|
|
|
# Loop forever...
|
|
while True:
|
|
|
|
# remap the potentiometer analog sensor values from 0-65535 to RGB 0-255
|
|
color_value = remap_range(sensor.value, 0, 65535, 0, 255)
|
|
|
|
for i in range(len(strip)):
|
|
strip[i] = colorwheel(color_value)
|
|
strip.write()
|