# Exercise 12(c)
from machine import Pin, ADC, Timer
from neopixel import NeoPixel
from time import sleep
# set colours all to zero initially
red=0
green=0
blue=0
def my_timer_ISR (timer): # internal interrupt service routine (ISR)
global red,green,blue
red = int(pot1.read()/16)
green = int(pot2.read()/16)
blue = int(pot3.read()/16)
my_timer = Timer(0)
my_timer.init(mode = Timer.PERIODIC, period = 100, callback = my_timer_ISR )
# Initialize 16-pixel ring on GPIO pin 12
ring = NeoPixel(Pin(12), 16)
pot1 = ADC(Pin(36)) # pin 36 will be used as an ADC input line
pot2 = ADC(Pin(39)) # pin 39 will be used as an ADC input line
pot3 = ADC(Pin(34)) # pin 34 will be used as an ADC input line
while True:
for i in range(16):
ring[i] = (red, green, blue)
ring.write()
sleep(0.25)