Skip to content

Instantly share code, notes, and snippets.

@schlerp
Created October 20, 2016 02:09
Show Gist options
  • Save schlerp/bdbaff9303458ed2b763d047c65ef1eb to your computer and use it in GitHub Desktop.
Save schlerp/bdbaff9303458ed2b763d047c65ef1eb to your computer and use it in GitHub Desktop.
// Pin 13 has an LED connected on most Arduino boards.
// Pin 11 has the LED on Teensy 2.0
// Pin 6 has the LED on Teensy++ 2.0
// Pin 13 has the LED on Teensy 3.0
// give it a name:
int led = 13;
// set up morse code timeings...
int base_time = 100; // 200 ms base speed ~ 24 wpm
int dot_time = base_time; // same as base speed
int dash_time = base_time * 3; // 3 times the dot length
int elem_pause = base_time; // same as base speed/dot time
int char_pause = base_time * 3; // pause between chars is 3 times base
int word_pause = base_time * 7; // pause between words is 7 times base
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
print_sos();
}
void print_sos() {
flash_s();
flash_o();
flash_s();
end_word();
}
void flash_a() {
dot();
dash();
end_char();
}
void flash_b() {
dash();
dot();
dot();
dot();
end_char();
}
void flash_c() {
dash();
dot();
dash();
dot();
end_char();
}
void flash_d() {
dash();
dot();
dot();
end_char();
}
void flash_e() {
dot();
end_char();
}
void flash_f() {
dot();
dot();
dash();
dot();
end_char();
}
void flash_g() {
dash();
dash();
dot();
end_char();
}
void flash_h() {
dot();
dot();
dot();
dot();
end_char();
}
void flash_i() {
dot();
dot();
end_char();
}
void flash_j() {
dot();
dash();
dash();
dash();
end_char();
}
void flash_k() {
dash();
dot();
dash();
end_char();
}
void flash_l() {
dot();
dash();
dot();
dot();
end_char();
}
void flash_m() {
dash();
dash();
end_char();
}
void flash_n() {
dash();
dot();
end_char();
}
void flash_o() {
dash();
dash();
dash();
end_char();
}
void flash_p() {
dot();
dash();
dash();
dot();
end_char();
}
void flash_q() {
dash();
dash();
dot();
dash();
end_char();
}
void flash_r() {
dot();
dash();
dot();
end_char();
}
void flash_s() {
dot();
dot();
dot();
end_char();
}
void flash_t() {
dash();
end_char();
}
void flash_u() {
dot();
dot();
dash();
end_char();
}
void flash_v() {
dot();
dot();
dot();
dash();
end_char();
}
void flash_w() {
dot();
dash();
dash();
end_char();
}
void flash_x() {
dash();
dot();
dot();
dash();
end_char();
}
void flash_y() {
dash();
dot();
dot();
dash();
end_char();
}
void flash_z() {
dash();
dash();
dot();
dot();
end_char();
}
/*
void flash_1() {
}
void flash_2() {
}
void flash_3() {
}
void flash_4() {
}
void flash_5() {
}
void flash_6() {
}
void flash_7() {
}
void flash_8() {
}
void flash_9() {
}
void flash_0() {
}
*/
void dash() {
// flash a dash (dah)
digitalWrite(led, HIGH);
delay(dash_time);
digitalWrite(led, LOW);
delay(elem_pause);
}
void dot() {
// flash a dot (dit)
digitalWrite(led, HIGH);
delay(dot_time);
digitalWrite(led, LOW);
delay(elem_pause);
}
void end_char() {
// end a char
// subtract the base time becuase of the element delay
delay(char_pause - base_time);
}
void end_word() {
// end a word
// subtract the base time becuase of the element delay
delay(word_pause - base_time);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment