Random Tone LED Strip Music Visualizer

Use the ‘Parts List’ image along with the component cards in your box to correctly plug in the electronic hardware to your Maker Board. The colorful dots next to the legs of the components match up to the ports where that leg should go on Maker Board’s ports.

Code

The code in the editor below is ready to run! Plug in the electronic components just like the Parts List card above, connect Maker Board to your computer's USB port with the cable, and hit 'Upload Your Code!'. Tinker with the code and change something! If you get stuck, you can hit the 'Restore' button to make the code go back to the working example.


/* Play random tones and 'visualize' them with pixels on the LED strip*/ #include "LEDStrip.h" //The LEDStrip.h library gives your code access to special functions exclusive to the LED Strip LEDStrip strip = LEDStrip(15, 13, 12); //Set up the strip by defining how many pixels (15) and where the wires are connected (green = 13, blue = 12) void setup() { pinMode(A5,OUTPUT); //speaker } void loop() { int randomTone=random(40,1000); //select a random tone between 40 and 999 to play tone(A5,randomTone); //start playing the tone with the randomTone variable setting the pitch int pixelCount = map(randomTone,40,1000,0,14); //Create a pixelCount variable that will map the randomTone (0-1000) onto the LED strip (0-14) //The number of pixels lit will be related to how high the tone is from randomTone /*Create a variable named 'i' and, as long as i is less than the value of the pixelCount variable, run the code between the curly braces, then increase the value of the 'i' variable by 1*/ for(int i=0; i<=pixelCount;i++){ strip.setPixel(i,200); //use 'i' to set which pixels on the strip is being lit strip.draw(); //draw the pixels, one at a time delay(20); //wait 20 milliseconds (0.02 seconds) between lighting each pixel so the visualizer looks 'smooth' } noTone(A5); //stop playing the tone on the speaker /*Create a variable named 'i' and, as long as i is greater than the value of the pixelCount variable, run the code between the curly braces, then decrease the value of the 'i' variable by 1*/ for(int i=pixelCount; i>=0;i--){ strip.setPixel(i,-1); //use 'i' to set which pixel is being set to 'off'. A color value of -1 will clear any color off the pixel strip.draw(); //clear the pixels one at a time delay(20); //wait 20 millisconds (0.02 seconds) between clearing each pixel so the visualizer looks 'smooth' } } // (c) 2019 Let's Start Coding. License: www.letsstartcoding.com/bsdlicense
 

Walkthrough Video

Watch the video for a line-by-line explanation of how the example program works. Then you'll be ready to make some changes of your own!

Use this spectrum to estimate the color values you'll need for your 'setPixel' arguments to achieve your favorite color!

Challenges

Can you complete the challenges? Change the code in your code editor above. Upload your code to see the effect when you're finished. Complete a challenge? Check it off the list!

Concepts

These are the new code concepts covered in this example program. To become a great coder, read through these concepts to learn new vocabulary.

Quiz

If you're having trouble, try to run an experimental program or look at the example code to help you find the answer.

1. Which syntax ends the entire 'void loop' function?




2. Which syntax ends a single code command?