Introduction: PixelOrgan: Sound-responsive DotStar LED Strip (with MicroView)
This is a light-organ-ish thingie where a built-in microphone's input is displayed on a DotStar 72 LED strip so that the top LED represents the current high/mid/low leves as R/G/B, and the rest of the LEDs represent previous values (so that we get a waterfall effect). See videos here.
As a controller, I used MicroView — a small Arduino clone with an embedded OLED display. This lets the system show current high/mid/low graphic-equalizer-style, as well as a horizontal bar displaying overall level (handy when adjusting the mic-sensitivity potentiometer). It shouldn't be hard to do all this with a cheaper Arduino clone (and reduce the cost by ~$35). You simply need to delete the MicroView-related lines in the code (they're easy to spot).
Step 1: Materials
- A MicroView controller.
- A MicroView programmer (also used for USB power supply).
- A 72 LED DotStar strip (I used this one).
- An electret microphone (with a built-in amp).
- A 10㏀ potentiometer.
- A "half-size" breadboard.
- Breadboard jumpers.
- Solid-core 22 AWG wires (for the microphone).
- USB type A male to screw terminal connector.
- USB wall charger (at least 2 ports, at least one of them >=2A).
Step 2: Assembly
- Assemble MicroView (on top of programmer), mic (you'll need to solder it to wires) and potentiometer on the breadboard (see diagram).
- At this stage (Before involving the DotStar in this), connect the progammer to your computer via USB, and upload the code (see next step).
- Connect the loose red and black wires of the DotStar strip to the USB screw-terminal adapter (black to rightmost screw, red to second screw from the left).
- Stick the jumpers going from the clock and data pins (4th and 5th pins from left on the "top" side of the MicroView).
- Connect the MicroView programmer and the USB screw terminal adapter (connected to the DotStar) to the sockets of the wall charger. Important: the adapter should be in a socket that can supply at least 2A (the MicroView is less picky).
Step 3: Code
You can download the code below.
You'll also need to install the Adafruit DotStar and the Sparkfun MicroView libraries (no need to download them. You can simply install them from the Sketch/Include Library/Manage Libtraries menu of the Arduino IDE).
If you want to [save ~$35] and use a "regular" Arduino clone instead of a MicroView [+ Programmer], remove all lines containing microview|uview|widget, and it would probably run on any Arduino clone (not tested [yet]). You won't have a spiffy graphic display (of course), but you can get feedback while adjusting the mic sensitivity potentiometer from the LED strip itself.
Also note that although I use the programmer as a USB power supply, you can save ~$15 and power the microView from the Dotstar (the red and black pins of the JST connector), but you should also connect a >1mF capacitor between them (to protect the MicroView from surges).