const int ledPin = 13; // Pin where the LED is connected
const char morseCode[26][5] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", // A-J
"-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", // K-T
"..-", "...-", ".--", "-..-", "-.--", "--.." // U-Z
};
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.print("enter word");
}
char inputString[265];
bool getSerialInput()
{
if (Serial.available()) {
size_t size = Serial.readBytesUntil('\n', inputString, 255);
inputString[size] = 0;
return true;
}
else {
return false;
}
}
void Dot() {
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(200);
}
void Dash() {
digitalWrite(ledPin, HIGH);
delay(600);
digitalWrite(ledPin, LOW);
delay(200);
}
void morseCharacter(char ch) {
if (ch == ' ') {
delay(6 * 200); // Space between words
return;
}
int index = ch - 'A'; // Calculate the index for the Morse code array
for (int i = 0; morseCode[index][i] > '\0'; i++) { // Loop through each character in the Morse code string
if (morseCode[index][i] == '.') {
Dot(); // Send a dot
} else if (morseCode[index][i] == '-') {
Dash(); // Send a dash
}
}
delay(2 * 200); // Space between letters
}
void loop() {
if (getSerialInput()) {
for (int i = 0; inputString[i] > 0; i++) {
morseCharacter(toupper(inputString[i]));
}
}
}