Week 7 - Homework 1: LED (Morse Code)

This weeks first assignment was to make a video with blinking LED lights. To make something that blinks in a pattern, rather than randomly, I decided to let the LED lights blink with Morse Code!

The result


I used 5 LED lights to spell out two words: "Hello" and "World", and each light blinks for one letter each per word, and the order is left (dark green LED) to right (red LED), restarting for the next word. I decided to do it like this rather than a single light to make it slightly more interesting to watch. In order to figure out how "Hello world" would look like in morse code, I used this chart as a reference:



To decide how long one blink would be, I calculated how many dots it would require to spell out "Hello World" which was 111 dots, and then multiplied the dots to different milliseconds to get a feel of how much time was needed. After the calculation, I decided to make one dot correspond to 200 milliseconds - making "Hello world" take 22,2 seconds to spell.

Writing the code was not particulary complicated. The only distracting factor was that the code is so long (due to 10 letters and 5 lights) so using the // function became vital to keep check of what part of the word I was making and what would come next. And I copy-pasted as much as I could, which was quite a lot, and then made minor adjusments.

Aside from the letters and pauses, I also added 7 dots to the end of "Hello world" to make it loop nicely.

The Code

//dark green outpin
int outpin1 = 13;
//first red outpin
int outpin2 = 12;
//light green outpin
int outpin3 = 11;
//yellow outpin
int outpin4 = 10;
//second red outpin
int outpin5 = 9;

void setup() {
pinMode(outpin1, OUTPUT);
pinMode(outpin2, OUTPUT);
pinMode(outpin3, OUTPUT);
pinMode(outpin4, OUTPUT);
pinMode(outpin5, OUTPUT);
}

void loop() {

// H
// dot 1
digitalWrite(outpin1, HIGH);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 2
digitalWrite(outpin1, HIGH);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 3
digitalWrite(outpin1, HIGH);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
//pause 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 4
digitalWrite(outpin1, HIGH);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// E
// dot
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, HIGH);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// L (first L)
// dot 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, HIGH);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, HIGH);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, HIGH);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
//pause 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, HIGH);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// L (second L)
// dot 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200*3);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200);
//pause 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// O
// dash 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, HIGH);
delay(200*3);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, HIGH);
delay(200*3);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, HIGH);
delay(200*3);

//pause between words
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*7);

//NEW WORD
// W
// dot 1
digitalWrite(outpin1, HIGH);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 1
digitalWrite(outpin1, HIGH);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 2
digitalWrite(outpin1, HIGH);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// O (second O)
// dash 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, HIGH);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, HIGH);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, HIGH);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// R
// dot 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, HIGH);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, HIGH);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, HIGH);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// L (third L)
// dot 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dash 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200*3);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200);
//pause 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 3
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, HIGH);
digitalWrite(outpin5, LOW);
delay(200);

//pause between letters
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*3);

// D
// dash 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, HIGH);
delay(200*3);
//pause 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 1
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, HIGH);
delay(200);
//pause 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200);
// dot 2
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, HIGH);
delay(200);

//pause between words
digitalWrite(outpin1, LOW);
digitalWrite(outpin2, LOW);
digitalWrite(outpin3, LOW);
digitalWrite(outpin4, LOW);
digitalWrite(outpin5, LOW);
delay(200*7);
}


Kommentarer

Populära inlägg