Hello World!

I played around with my Arduino board.  Below is a video of the LED blinking “Hello World” in Morse Code.

I started by translating “Hello World” into Morse Code using this handy translator.

” …. . .-.. .-.. — / .– — .-. .-.. -..”

Next, I wrote out digitalWrite commands for each dot and dash of each letter.  I set for dots to blink on for 300 miliseconds, dashes to blink on for 1000 miliseconds, breaks between characters within a word to blink off for 300 miliseconds, and breaks between words to blink off for 2000 miliseconds.

Check out the video.

Original Code –

void setup() {
pinMode(13, OUTPUT); //led is located at pin 13
}
void loop() {
digitalWrite(13,HIGH);//H dot1
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//H dot2
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//H dot3
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//H dot4
delay(300);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//E
delay(300);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//L dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L dot
delay(300);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//L2 dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L2 dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L2 dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L2 dot
delay(300);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//O dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//O dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//O dash
delay(1000);
digitalWrite(13,LOW);//WORD BREAK
delay(2000);
digitalWrite(13,HIGH);//W dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//W dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//W dash
delay(1000);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//O dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//O dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//O dash
delay(1000);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//R dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//R dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//R dot
delay(300);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//L dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//L dot
delay(300);
digitalWrite(13,LOW);//PAUSE
delay(1000);
digitalWrite(13,HIGH);//D dash
delay(1000);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//D dot
delay(300);
digitalWrite(13,LOW);
delay(300);
digitalWrite(13,HIGH);//D dot
delay(300);
digitalWrite(13,LOW);//END OF SENTENCE
delay(5000);
}

Easier, more functional code

void setup(){
pinMode(13, OUTPUT);
}
void loop(){
//H
dot(4);
letterBreak();
//E
dot(1);
letterBreak();
//L
dot(1);
dash(1);
dot(2);
letterBreak();
//L
dot(1);
dash(1);
dot(2);
letterBreak();
//O
dash(3);
wordBreak();
//W
dot(1);
dash(2);
letterBreak();
//O
dash(3);
wordBreak();
//R
dot(1);
dash(1);
dot(1);
letterBreak();
//L
dot(1);
dash(1);
dot(2);
letterBreak();
//D
dash(1);
dot(2);
wordBreak();
wordBreak();
}
void dot(int numberOfDots) {
for(int i=0; i<numberOfDots; i++ ){
digitalWrite(13,HIGH);
delay(300);
digitalWrite(13,LOW);
delay(300);
}
}
void dash (int numberOfDashes){
for(int i=0; i<numberOfDashes; i++){
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(300);
}
}
void letterBreak(){
digitalWrite(13,LOW);
delay(700);
}
void wordBreak(){
digitalWrite(13,LOW);
delay(1700);
}