/* Transmission par liaison série de la commande d'une LED RGB Format de transmission retenu : "rouge;vert;bleu;" exemple : 50;150;250; +LF (code ascii 10) Programme incomplet : il faut compléter le programme dans les zones signalées par ... */ /* 1) Zone 1 : les déclarations */ // 1.b) Les Constantes const int R=9,G=10,B=11; // 1.c) Les variables globales int rouge=0,vert=0,bleu=0,car; /* 2) Zone 2 : Initialisation (le setup) */ void setup() { pinMode(R, OUTPUT); // affecter la patte R en sortie pour alimenter la LED R pinMode(G, OUTPUT); // affecter la patte G en sortie pour alimenter la LED G pinMode(B, OUTPUT); // affecter la patte B en sortie pour alimenter la LED B Serial.begin(9600); // Initialiser la liaison série Serial à 9600 bauds Serial.println("Format de transmission retenu : rouge;vert;bleu exemple : 50;150;250"); } /* 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 // Exemple buffer = "50;150;250; +LF" delay(100); // Attendre la fin de transmission rouge=Serial.parseInt(); // rouge = 50 reste ds le buffer :";150;250; +LF" vert=Serial.parseInt();// vert = 150 reste ds le buffer :";250; +LF" bleu=Serial.parseInt(); // bleu = 250 reste ds le buffer :"; +LF" while (Serial.available()) Serial.read(); // Vider le buffer Serial s'il reste des caractères... analogWrite(R,rouge); // écrire la valeur rouge pour la LED R analogWrite(G,vert); // écrire la valeur vert pour la LED G analogWrite(B,bleu); // écrire la valeur bleu pour la LED B Serial.print("Rouge = "); Serial.print(rouge); // Afficher le résultat sur le moniteur série Serial.print(";Vert = "); Serial.print(vert); Serial.print(";Bleu = "); Serial.println(bleu); } // fin de if (Serial.available()) }