Now let's see how to turn off the NeoPixels one at a time during the count time. The basic idea is shown in the figure below.
Our timer starts at time zero (t=0) and counts for a total amount of time T (t=T). Since we have 10 NeoPixels on the Circuit Playground, we can break that time period up in to 10 equal slices. Each slice has a wait time of DT, which is equal to the total time T, divide by the number of NeoPixels, thus:
DT = T / 10
The idea now is to loop over each NeoPixel and wait this smaller amount of time DT. Once that time has elapsed, turn the NeoPixel off and move on to the next NeoPixel, etc.
Here's the previous code modified to do this:
# Circuit Playground Express Less Basic Timer # # Author: Carter Nelson # MIT License (https://opensource.org/licenses/MIT) import time from adafruit_circuitplayground.express import cpx while True: # Turn ON all the NeoPixels cpx.pixels.fill((255, 255, 255)) # Compute DT DT = 5 / 10 # Turn OFF the NeoPixels one at a time, waiting DT each time for p in range(10): time.sleep(DT) cpx.pixels[p] = (0, 0, 0) # Wait for button press to reset timer while not cpx.button_a or cpx.button_b: pass # do nothing
Page last edited November 17, 2017
Text editor powered by tinymce.