String traduzir(String letra) {
if (letra == "a") {
return ".-";
} else if (letra == "b") {
return "-...";
} else if (letra == "c") {
return "-.-.";
} else if (letra == "d") {
return "-..";
} else if (letra == "e") {
return ".";
} else if (letra == "f") {
return "..-.";
} else if (letra == "g") {
return "--.";
} else if (letra == "h") {
return "....";
} else if (letra == "i") {
return "..";
} else if (letra == "j") {
return ".---";
} else if (letra == "k") {
return "-.-";
} else if (letra == "l") {
return ".-..";
} else if (letra == "m") {
return "--";
} else if (letra == "n") {
return "-.";
} else if (letra == "o") {
return "---";
} else if (letra == "p") {
return ".--.";
} else if (letra == "q") {
return "--.-";
} else if (letra == "r") {
return ".-.";
} else if (letra == "s") {
return "...";
} else if (letra == "t") {
return "-";
} else if (letra == "u") {
return "..-";
} else if (letra == "v") {
return "...-";
} else if (letra == "w") {
return ".--";
} else if (letra == "x") {
return "-..-";
} else if (letra == "y") {
return "-.--";
} else if (letra == "z") {
return "--..";
} else if (letra == " ") {
return " ";
} else {
return ""; // Retorna vazio se não for uma letra válida
}
}
void traduzLed(char codigo) {
delay(40);
if (codigo == '.') {
digitalWrite(8, HIGH);
delay(200); // Duração do ponto
digitalWrite(8, LOW);
} else if (codigo == '-') {
digitalWrite(8, HIGH);
delay(600); // Duração do traço
digitalWrite(8, LOW);
}
delay(200); // Espaçamento entre símbolos
}
void traduzBuzzer(char codigo) {
delay(40);
if (codigo == '.') {
tone(2, 300); // Tom para o ponto
delay(200); // Duração do ponto
noTone(2);
} else if (codigo == '-') {
tone(2, 300); // Tom para o traço
delay(600); // Duração do traço
noTone(2);
}
delay(200); // Espaçamento entre símbolos
}
String alfabeto = "abcdefghijklmnopqrstuvwxyz ";
String morse = "";
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT); // LED
pinMode(2, OUTPUT); // Buzzer
Serial.println("oi");
}
void loop() {
String entrada;
int tamanho = 0;
if (Serial.available() > 0) {
entrada = Serial.readString();
while (tamanho < entrada.length()) {
morse += traduzir(String(entrada[tamanho]));
tamanho++;
}
Serial.println(morse); // Exibe a string Morse
// Acionando LED
for (int i = 0; i < morse.length(); i++) {
traduzLed(morse[i]);
}
// Acionando Buzzer
for (int i = 0; i < morse.length(); i++) {
traduzBuzzer(morse[i]);
}
morse = ""; // Limpa a string morse
}
}