Variable Key Four Note Piano

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.


/* Use the turn knob to set the 'key' of your four note piano */ void setup(){ pinMode(A0,INPUT); //turn knob pinMode(A5,OUTPUT); //speaker pinMode(8,INPUT_PULLUP); //button pinMode(9,INPUT_PULLUP); //button pinMode(10,INPUT_PULLUP); //button pinMode(11,INPUT_PULLUP); //button } void loop(){ //create a variable named 'lowNote' that is an integer (whole number, no decimals) int lowNote = analogRead(A0); //use the reading from the knob (0-1023) to determine what 'lowNote'is. if(digitalRead(8)==LOW){ //if button 2 is pressed... tone(A5,lowNote); //play the hertz value that is equal to the 'lowNote' variable } else if(digitalRead(9)==LOW){ //if button 5 is pressed... tone(A5,lowNote*2); //play DOUBLE the hertz value that is equal to lowNote } else if(digitalRead(10)==LOW){ //if button 8 is pressed... tone(A5,lowNote*3); //play TRIPLE the hertz value equal to lowNote } else if(digitalRead(11)==LOW){ //if button 11 is pressed... tone(A5,lowNote*4); //play QUADRUPLE the hertz value equal to lowNote } else{ //otherwise, if no buttons are pressed... noTone(A5); //turn off 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:

  • Your turn knob is connected to port A0, not A2 as the video says.

  • Your buttons are on port 8 instead of 2, 9 instead of 5, and 10 instead of 8. Button 11 remains unchanged!

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?