/* Réaliser un générateur de signaux rectangulaires, de fréquence 1 kHz, de rapport cyclique réglable entre 10% (par valeur supérieure) et 90% (par valeur inférieure). Tolérance 5% Transmission par liaison série du rapport cyclique Format de transmission retenu : "alpha" exemple : 50+LF (code ascii 10) */ /* 1) Zone 1 : les déclarations */ // 1.b) Les Constantes const int R=5; // la fréquence PWM est de 976 Hz pour les pattes 5 et 6 (timer 0) contre 488 Hz pour 3,11 (timer 2) , 9 et 10 (timer 1) // 1 kHz à 5 % -> 950 < f < 1050 Hz : la PWM associée au timer 0 convient. // 1.c) Les variables globales int alpha=0,rouge; /* 2) Zone 2 : Initialisation (le setup) */ void setup() { ...(1) // affecter la patte R en sortie pour alimenter la LED R ...(2) // Initialiser la liaison série Serial à 9600 bauds Serial.println("Format de transmission retenu pour un rapport cyclique de 25 % : 25"); } /* 3) Zone 3 : le Programme Principal */ void loop() { if (Serial.available()) { // Si le buffer série reçoit des données : on lit le buffer série delay(10); // Attendre 10 ms la fin de transmission ...(3) // lire alpha rapport cyclique if (alpha<10) alpha=10; // Borne inférieure 10% ...(4) // Borne supérieure 90% ...(5) // Règle de trois pour la PWM : 100 % -> 255 alpha -> rouge while (Serial.available()) Serial.read(); // Vider le buffer Serial s'il reste des caractères... ...(6) // écrire la valeur rouge (PWM) pour la LED R Serial.print("alpha = "); Serial.print(alpha); // Afficher le résultat sur le moniteur série Serial.print("\t Rouge = "); Serial.println(rouge); } // fin de if (Serial.available()) }