/*
Uno Morse SOS
*/
const int LED_PIN = 8;
const unsigned long DIT_TIME = 250; // dit time
const unsigned long DAH_TIME = DIT_TIME * 3; // dah time
const unsigned long CHAR_SPACE = DIT_TIME; // dit/dah space
const unsigned long LTR_SPACE = DIT_TIME * 2; // char space + letter space = 3
const unsigned long WRD_SPACE = DIT_TIME * 7; // word space
// 0 = dit, 1 = dah, 2 = letter spc, 3 = word spc
const int morseChars[] = {
0, 0, 0, 2, // 'S', letter space
1, 1, 1, 2, // 'O', letter space
0, 0, 0, 3 // 'S', word space
};
void sendChar(char value) {
if (value == 0) {
Serial.println("Dit");
digitalWrite(LED_PIN, HIGH);
delay(DIT_TIME);
digitalWrite(LED_PIN, LOW);
delay(CHAR_SPACE);
} else if (value == 1) {
Serial.println("Dah");
digitalWrite(LED_PIN, HIGH);
delay(DAH_TIME);
digitalWrite(LED_PIN, LOW);
delay(CHAR_SPACE);
} else if (value == 2) {
Serial.println("Ltr space");
delay(LTR_SPACE);
} else if (value == 3) {
Serial.println("Word space");
delay(WRD_SPACE);
}
}
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
Serial.println("Save Our Ship!\n");
}
void loop() {
for (int charCount = 0; charCount < (sizeof morseChars / sizeof morseChars[0]); charCount++) {
sendChar(morseChars[charCount]);
}
}