/*
Lecture d'une chaîne ASCII encodée en série.
Ce croquis présente la fonction parseInt() en série.
Il recherche une chaîne ASCII de valeurs séparées par des virgules.
Il les analyse en entiers et les utilise pour atténuer une LED RVB.
Circuit : LED RVB à cathode commune câblée comme suit :
- anode rouge : broche numérique 3
- anode verte : broche numérique 5
- anode bleue : broche numérique 6
- cathode : GND
Créé le 13 avril 2012
par Tom Igoe
Modifié le 14 mars 2016
par Arturo Guadalupi
Ce code exemple est dans le domaine public.
*/
const int brocheRouge = 3;
const int brocheVerte = 5;
const int brocheBleue = 6;
void setup() {
Serial.begin(9600);
pinMode(brocheRouge, OUTPUT);
pinMode(brocheVerte, OUTPUT);
pinMode(brocheBleue, OUTPUT);
}
void loop() {
while (Serial.available() > 0) {
int rouge = Serial.parseInt();
int vert = Serial.parseInt();
int bleu = Serial.parseInt();
if (Serial.read() == '\n') {
rouge = 255 - constrain(rouge, 0, 255);
vert = 255 - constrain(vert, 0, 255);
bleu = 255 - constrain(bleu, 0, 255);
analogWrite(brocheRouge, rouge);
analogWrite(brocheVerte, vert);
analogWrite(brocheBleue, bleu);
Serial.print(rouge, HEX);
Serial.print(vert, HEX);
Serial.println(bleu, HEX);
}
}
}