Hallo
Ich versuche momentan ein Programm zuschreiben, dass Morsecode übersetzen, ausgeben, und verstehen kann. Das Übersetzen habe ich schon erledigt und will als nächstes den übersetzten Morsecode mit einer LED und/oder einem Summer ausgeben. Jetzt könnte ich natürlich mir eine Riesenarbeit machen und jeden Buchstaben zu programmieren wie die LED blinken soll, aber ich habe ja schon den jeden Buchstaben für das Übersetzen definiert, nur sind das halt eben Schräg-, Bindestriche und Punkte. Kann ich dem Programm sagen, dass es jedes Zeichen "lesen" soll und dann die Dauer des Summens oder Leuchtens so definieren?
int incomingByte;
byte outgoingByte;
int morseArrayAlphabetPos;
int morseArrayNumbersPos;
String morseArrayAlphabet[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
String morseArrayNumbers[] = {"-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----."};
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte>=97) {
morseArrayAlphabetPos = (incomingByte - 97);
Serial.print (morseArrayAlphabet[morseArrayAlphabetPos]);
Serial.print ("/");
}
else if (incomingByte>=48) {
morseArrayNumbersPos = (incomingByte - 48);
Serial.print (morseArrayNumbers[morseArrayNumbersPos]);
Serial.print ("/");
}
else if (incomingByte == 32){
Serial.print (" /");
}
else if (incomingByte == 10) {
Serial.println ();
}
}
}