int soundPin = 13;
int dotDelay = 50;
int rate = 100;
void sound(int duration) {
long time = millis();
while (millis() - time < duration) {
digitalWrite(soundPin, HIGH);
delayMicroseconds(rate);
digitalWrite(soundPin, LOW);
delayMicroseconds(rate);
}
}
void dot() {
sound(dotDelay);
delay(dotDelay);
}
void dash() {
sound(3 * dotDelay);
delay(dotDelay);
}
void morseLetter(char letter) {
switch (letter) {
case 'a': dot(); dash(); break;
case 'b': dash(); dot(); dot(); dot(); break;
case 'c': dash(); dot(); dash(); dot(); break;
case 'd': dash(); dot(); dot(); break;
case 'e': dot(); break;
case 'f': dot(); dot(); dash(); dot(); break;
case 'g': dash(); dash(); dot(); break;
case 'h': dot(); dot(); dot(); dot(); break;
case 'i': dot(); dot(); break;
case 'j': dot(); dash(); dash(); dash(); break;
case 'k': dash(); dot(); dash(); break;
case 'l': dot(); dash(); dot(); dot(); break;
case 'm': dash(); dash(); break;
case 'n': dash(); dot(); break;
case 'o': dash(); dash(); dash(); break;
case 'p': dot(); dash(); dash(); dot(); break;
case 'q': dash(); dash(); dot(); dash(); break;
case 'r': dot(); dash(); dot(); break;
case 's': dot(); dot(); dot(); break;
case 't': dash(); break;
case 'u': dot(); dot(); dash(); break;
case 'v': dot(); dot(); dot(); dash(); break;
case 'w': dot(); dash(); dash(); break;
case 'x': dash(); dot(); dot(); dash(); break;
case 'y': dash(); dot(); dash(); dash(); break;
case 'z': dash(); dash(); dot(); dot(); break;
case ' ': delay(7 * dotDelay); break; // Пауза между словами
}
delay(2 * dotDelay); // Пауза между буквами
}
void setup() {
pinMode(soundPin, OUTPUT);
}
void loop() {
char message[] = "hello world";
for (int i = 0; i < strlen(message); i++) {
morseLetter(message[i]);
}
delay(2000);
}