// Pin definitions
int ledPin = 13; // Built-in LED (or use another pin)
// Morse code timing constants (in milliseconds)
int dotDuration = 200; // Duration of a dot
int dashDuration = 600; // Duration of a dash (3x dot)
int elementGap = 200; // Gap between elements of same letter
int letterGap = 600; // Gap between letters (3x dot)
int wordGap = 1400; // Gap between words (7x dot)
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
blinkSOS();
delay(3000); // Wait 3 seconds before repeating
}
void blinkSOS() {
// S (···)
blinkDot(); blinkDot(); blinkDot();
delay(letterGap);
// O (−−−)
blinkDash(); blinkDash(); blinkDash();
delay(letterGap);
// S (···)
blinkDot(); blinkDot(); blinkDot();
delay(wordGap);
}
// Helper functions for Morse code elements
void blinkDot() {
digitalWrite(ledPin, HIGH);
delay(dotDuration);
digitalWrite(ledPin, LOW);
delay(elementGap);
}
void blinkDash() {
digitalWrite(ledPin, HIGH);
delay(dashDuration);
digitalWrite(ledPin, LOW);
delay(elementGap);
}