#define DELAY_DOT 250 // Time for a dot
#define DELAY_DASH 750 // Time for a dash
#define DELAY_BETWEEN_PARTS 250 // Time between parts of the same letter
#define DELAY_BETWEEN_LETTERS 1000 // Time between letters
#define DELAY_BETWEEN_WORDS 1500 // Time between words
#define LED_PIN LED_BUILTIN // Predefined constant for onboard LED
void setup() {
pinMode(33, OUTPUT); // Set LED pin as an output
}
void dot() {
digitalWrite(33, HIGH);
delay(DELAY_DOT); // Short duration for dot
digitalWrite(33, LOW);
delay(DELAY_BETWEEN_PARTS); // Pause between parts of the same letter
}
void dash() {
digitalWrite(33, HIGH);
delay(DELAY_DASH); // Longer duration for dash
digitalWrite(33, LOW);
delay(DELAY_BETWEEN_PARTS); // Pause between parts of the same letter
}
void loop() {
// Morse code for "SOS": · · · — — — · · ·
// S: · · ·
dot();
dot();
dot();
delay(DELAY_BETWEEN_LETTERS); // Time between letters
// O: — — —
dash();
dash();
dash();
delay(DELAY_BETWEEN_LETTERS); // Time between letters
// S: · · ·
dot();
dot();
dot();
delay(DELAY_BETWEEN_WORDS); // Time between repetitions
}