/*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
*/
//all the variables used in this program are 'integers', shortened to int, which means they are whole numbers.
int dot = 200; //milliseconds that a dot will last
int dash = dot*3; //milliseconds that a dash will last
int symbolSpace = dot; // space between symbols are the same duration as a dot
int letterSpace = symbolSpace*3; //space between letters are 3 times the duration of symbol spaces
int wordSpace = symbolSpace*7; //space between words are 7 times the duration of symbol spaces
int LED = 8;
void setup(){
pinMode(LED,OUTPUT); //Set the LED as an 'OUTPUT'
}
void loop(){
//S
digitalWrite(LED,HIGH); //Turn on LED
delay(dot); //wait one 'dot' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(symbolSpace); //wait before the next symbol in a letter
digitalWrite(LED,HIGH); //Turn on LED
delay(dot); //wait one 'dot' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(symbolSpace); //wait before the next symbol in a letter
digitalWrite(LED,HIGH); //Turn on LED
delay(dot); //wait one 'dot' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(letterSpace); //wait before the next symbol in a letter
//O
digitalWrite(LED,HIGH); //Turn on LED
delay(dash); //wait one 'dash' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(symbolSpace); //wait before the next symbol in a letter
digitalWrite(LED,HIGH); //Turn on LED
delay(dash); //wait one 'dash' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(symbolSpace); //wait before the next symbol in a letter
digitalWrite(LED,HIGH); //Turn on LED
delay(dash); //wait one 'dash' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(letterSpace); //wait before the next letter in a word
//S
digitalWrite(LED,HIGH); //Turn on LED
delay(dot); //wait one 'dot' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(symbolSpace); //wait before the next symbol in a letter
digitalWrite(LED,HIGH); //Turn on LED
delay(dot); //wait one 'dot' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(symbolSpace); //wait before the next symbol in a letter
digitalWrite(LED,HIGH); //Turn on LED
delay(dot); //wait one 'dot' with LED on
digitalWrite(LED,LOW); //Turn off LED
delay(wordSpace); //wait before the next word
}
// (c) 2024 Let's Start Coding. License: www.letsstartcoding.com/bsdlicense
It looks like your computer isn't set up to code yet.
Success!
Compile errors:
Serial port monitor:
Input:
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!
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!