Bring the power of variables to your Morse code messages to make them easier to create and update.

The code in the editor below already works. Just plug in your Code Speaker and press upload to see what it does! Tinker with it and make changes to see what each line of code controls.

/*Use variables for Morse Code messages. This will make it much easier to update the speed of messages Rules of Morse Code: - Dots are 1 'unit' - Dashes are 3 'units' (3 times as long as a dot) - Spaces between symbols within the same letter are 1 'unit' of no signal - Spaces between letters are 3 'units' of no signal - Spaces between words are 7 'units' of no signal */ int dot = 200; //milliseconds that a dot will last int dash = dot*3; //milliseconds that a dash will last int symbol = dot; // space between symbols are the same duration as a dot int letter = symbol*3; //space between letters are 3 times the duration of symbol spaces int wordSpace = symbol*7; //space between words are 7 times the duration of symbol spaces int pitch = 500; //the hertz value that will be used for your tones void setup(){ pinMode(10,OUTPUT); //Set Speaker as an 'OUTPUT' } void loop(){ //S tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dot); //wait one 'dot' with tone playing noTone(10); delay(symbol); //wait before the next symbol in a letter tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dot); //wait one 'dot' with tone playing noTone(10); delay(symbol); //wait before the next symbol in a letter tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dot); //wait one 'dot' with tone playing noTone(10); delay(letter); //wait before the next symbol in a letter //O tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dash); //wait one 'dot' with tone playing noTone(10); delay(symbol); //wait before the next symbol in a letter tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dash); //wait one 'dot' with tone playing noTone(10); delay(symbol); //wait before the next symbol in a letter tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dash); //wait one 'dot' with tone playing noTone(10); delay(letter); //wait before the next symbol in a letter //S tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dot); //wait one 'dot' with tone playing noTone(10); delay(symbol); //wait before the next symbol in a letter tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dot); //wait one 'dot' with tone playing noTone(10); delay(symbol); //wait before the next symbol in a letter tone(10,pitch); //Play a tone of 'pitch' on the speaker delay(dot); //wait one 'dot' with tone playing noTone(10); delay(wordSpace); //wait before the next word } // (c) 2018 Let's Start Coding. License: www.letsstartcoding.com/bsdlicense
 

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


Challenge

Can you complete the challenge? 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!




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

New Concept: Variables replace fixed number values

By using variables throughout your loop in this project, you made it much easier to read the code now and modify it later. To speed up the message, you only need to change one value in the program and the rest of the program automatically updates. When you read the Morse code rules at the top of this program and then look at the lines where you created the variables, you can see how similar they are - you’re just turning the rules of Morse code into rules in your computer code!

If you wanted to write out a long Morse code message in computer code, your variables should also make that easier. Instead of having to constantly review the rules, you can type the variables more naturally.


Quiz

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

When naming a variable, give it a name that _________________