Adafruit_Learning_System_Gu.../PyLeap_Bluefruit_Sound_Meter/code.py
2021-11-11 16:08:18 -05:00

44 lines
1.6 KiB
Python

# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""
Circuit Playground Bluefruit NeoPixel Sound Meter
Talk or make noise close to your Circuit Playground Bluefruit to see the NeoPixels light up.
"""
from adafruit_circuitplayground import cp
# Choose a color. Defaults to red. This is an RGB value, where (r, g, b) represents red, green,
# and blue. Each value has a range of 0-255, where 0 is off and 255 is max intensity. You can
# update these values to change the colors. For example, (0, 255, 0) would be max green. You can
# combine numbers within the range to make other colors such as (255, 0, 180) being pink.
# Try it out!
color_value = (255, 0, 0)
# This is the sound level needed to light up all 10 NeoPixels. If all the LEDs are lighting up too
# easily, increase this value to make it more difficult to reach the max. If you are only able to
# light up a few LEDs, decrease this value to make it easier to reach the max. Full possible sound
# range is 0 - 65535.
sound_max = 1500
cp.pixels.auto_write = False
cp.pixels.brightness = 0.3
def scale_range(value):
"""Scale a value from 0-sound_max (chosen sound range) to 0-9 (NeoPixel range).
Allows remapping sound value to pixel position.
Full sound range is 0 - 65535. sound_max should be chosen based on testing."""
return round(value / sound_max * 9)
while True:
peak = scale_range(cp.sound_level)
for pixel in range(10):
if pixel <= peak:
cp.pixels[pixel] = color_value
else:
cp.pixels[pixel] = (0, 0, 0) # Off
cp.pixels.show()