Four Note Piano with the LED Strip

Code

The code in the editor below is ready to run! Plug your Code Lab in to your computer's USB port with the cable and hit 'Upload Your Code!' to see what it does. Change something in the code, like a delay or pin number. Try to add something new to the program - it's yours to tinker with! You can always press the 'Restore' button to return the code to the working example.


/* Create a 4 note piano where each of the 4 buttons plays a different tone and changes the color of the entire LED strip */ #include "LEDStrip.h" //The LEDStrip.h library gives your code access to special functions exclusive to the LED Strip LEDStrip strip = LEDStrip(50, 13, 12); //Set up the strip by defining how many pixels (50) and which pins of the microchip are used (always 13 and 12 on Code Lab) void setup() { pinMode(8,INPUT_PULLUP); //button pinMode(9,INPUT_PULLUP); //button pinMode(10,INPUT_PULLUP); //button pinMode(11,INPUT_PULLUP); //button pinMode(A5,OUTPUT); //speaker } void loop() { if(digitalRead(8)==LOW){ //if button 2 is pressed... tone(A5,500); //play a tone of 500 hertz on the speaker strip.setPixel(strip.ALL,0); //set all of the pixels to turn on and set the color to 0 strip.draw(); //Send the setPixel values to the LED Strip } else if(digitalRead(9)==LOW){ //if button 6 is pressed... tone(A5,700); //play a tone of 700 hertz strip.setPixel(strip.ALL,100); //set all of the pixels to turn on and set the color to 100 strip.draw(); //Send the setPixel values to the LED Strip } else if(digitalRead(10)==LOW){ //if button 11 is pressed... tone(A5,900); //play a tone of 900 hertz strip.setPixel(strip.ALL,150); //set all of the pixels to turn on and set the color to 150 strip.draw(); //Send the setPixel values to the LED Strip } else if(digitalRead(11)==LOW){ //if button A2 is pressed... tone(A5,1100); //play a tone of 1100 hertz strip.setPixel(strip.ALL,200); //set all of the pixels to turn on and set the color to 200 strip.draw(); //Send the setPixel values to the LED Strip } else{ //otherwise if none of the buttons are pressed strip.clear(); //clear the LED strip strip.draw(); //send the .clear() function with the .draw function noTone(A5); //stop any tones from playing on the speaker } } // (c) 2021 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!

Video Notes for Code Lab Users:

  • You will use “50” instead of “15” as the first argument in your LEDStrip function.

  • The second and third arguments of the LEDStrip function (13 and 12) do not need to change. These connections are are permanently set on Code Lab.

  • You are using buttons 8, 9, 10, and 11 instead of buttons 2, 6, 11, and A2 as the video says.

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?