Étape 5: programme
Remarque : Si vous avez eu certaines programmation Arduino avant l’expérience, vous pouvez vous demander pourquoi je n’a pas simplement remplacer la longue chaîne de "si... autre "s qui identifient chaque personnage avec une instruction case de commutateur. Cependant, après un mal de tête et une combinaison de la recherche et de dépannage, j’ai découvert que l’option de l’affaire ne peut accepter une valeur donnée et non pas un tableau de caractères. Voilà pour ma paresse...
int LED = 2 ;
int buzzerPin = 3 ;
int dot = 250 ;
char * morseLetters [] = {".-", "-...", "-.-.", "-..",".",".. -.", "--.", "....", "..",".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.","...", "-", ".. -", "...-", ".--", "-.. -", "-.--", "--.." };
char * morseNumbers [] = {"---","---", ".. ---", "...--", "....-", ".....", "-....", "--...", "---..", "----."};
void setup()
{
pinMode (LED, sortie) ;
pinMode (buzzerPin, sortie) ;
Serial.Begin(9600) ;
}
void loop()
{
info de char ;
Si (Serial.available() > 0) {}
info = Serial.read() ;
Si (info > = « a » & & infos < = « z ») {//We pouvez utiliser utiliser cela par le fait que chaque code ASCII est un nombre
letterId (morseLetters [info - « a »]) ;
}
ElseIf (info > = « A » & & infos < = « Z ») {}
letterId (morseLetters [info - « A »]) ;
}
ElseIf (info > = 0 & & infos < = 9) {}
letterId (morseNumbers [info - 0]) ;
}
ElseIf (info == "") {}
Delay(DOT * 4) ;
}
}
}
void letterId (char * caractère) {}
int i = 0 ;
tandis que (caractère [i]! = « \0 ») {}
Output(Character[i]) ;
i ++ ;
}
Delay(dot * 3) ;
}
void sortie (char ID) {}
digitalWrite(LED,HIGH) ;
digitalWrite(buzzerPin,HIGH) ;
Si (ID == '.') {
Delay(dot) ;
}
else {}
Delay(dot * 3) ;
}
digitalWrite(LED,LOW) ;
digitalWrite(buzzerPin,LOW) ;
Delay(dot) ;
}