// Code créé par F4GVE Adrien et F-61073 Nicolas // Déclaration des variables int VITESSE = 0; // Variable qui stockera la vitesse de manipulation. int lecture_analogique = 0; // Variable qui va lire l'entrée analogique A0. #define POINT (1200/VITESSE) // Définition de la durée des points en fonction de la vitesse choisie. #define TRAIT (3*POINT) // Définition de la durée des traits en fonction de la vitesse choisie. void setup() { // Déclaration des pins : dans cette exemple, la 12 en sortie, la 8 (pour les poins) et la 10 (pour les traits) en entrée et la 13 pour la sortie TX. pinMode(12, OUTPUT); pinMode(10, INPUT); pinMode(8, INPUT); pinMode(13,OUTPUT); digitalWrite(8, HIGH); digitalWrite(10, HIGH); } void loop() { // Lecture de l'entrée analogique A0 pour réglage de la vitesse de manipulation. lecture_analogique = analogRead(0); VITESSE = map(lecture_analogique, 0, 1023, 10, 50); // Si on appuie sur le bouton relié à la pin 8, on détecte l'état bas. if (digitalRead(8) == 0) { // On génère la tonalité à 800 Hz (série de points d'une durée de 70 ms chacuns et pause de 70 ms) tone(12, 800); digitalWrite(13, HIGH); delay(POINT); noTone(12); digitalWrite(13, LOW); delay(POINT); } else {noTone(12); digitalWrite(13, LOW); } // Si on appuie sur le bouton relié à la pin 10, on détecte l'état haut. if (digitalRead(10) == 0) { // On génère la tonalité (série de traits de 210 ms chacuns et pause de 70 ms entre les traits) tone(12, 800); digitalWrite(13, HIGH); delay(TRAIT); noTone(12); digitalWrite(13, LOW); delay(POINT); } else {noTone(12); digitalWrite(13, LOW); } }