int LED = 13; int buzzerPin = 8; int dot = 200; char* morseLetters[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." }; char* morseNumbers[] = {"-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----."}; void setup() { pinMode(LED, OUTPUT); pinMode(buzzerPin, OUTPUT); Serial.begin(9600); } void loop() { char ch; if (Serial.available() > 0) { ch = Serial.read(); Serial.print(ch); if (ch >= 'a' && ch <= 'z') conv(morseLetters[ch - 'a']); else if (ch >= 'A' && ch <= 'Z') conv(morseLetters[ch - 'A']); else if (ch >= '0' && ch <= '9') conv(morseNumbers[ch - '0']); else if (ch == ' ') delay(dot * 4); } } void conv(char* seq) { int i = 0; Serial.println(seq); while (seq[i] != '\0') { digitalWrite(LED, HIGH); digitalWrite(buzzerPin, HIGH); if (seq[i] == '.') delay(dot); else delay(dot * 3); digitalWrite(LED, LOW); digitalWrite(buzzerPin, LOW); delay(dot); i++; } delay(dot * 3); }