int rouge(10), jaune(9), vert(8), bouton(4);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(rouge, OUTPUT);
pinMode(jaune, OUTPUT);
pinMode(vert, OUTPUT);
pinMode(bouton, INPUT_PULLUP);
}
String fonctionTexte(int texte) {
switch (texte) {
case 0:
return "2148204 - Aucun";
break;
case 1:
return "2148204 - Tous";
break;
case 2:
return "2148204 - Rouge";
break;
case 3:
return "2148204 - Jaune";
break;
case 4:
return "2148204 - Vert";
break;
default:
return "2148204 - Aucun";
break;
}
return "Erreur";
}
void loop() {
// put your main code here, to run repeatedly:
int tempsCourant(millis()), compteur(0), tempsR(0), tempsJ(0), tempsV(0), texte(0);
int luminosite(0), vitesse(2);
String reponse;
if ((tempsCourant - tempsR) >= 500 && (tempsCourant - tempsR) < 1000) {
analogWrite(rouge, luminosite);
luminosite += vitesse;
if (tempsCourant >= 500) {
tempsR = 2000;
}
}
luminosite = 0;
if ((tempsCourant - tempsJ) >= 1000 && (tempsCourant - tempsJ) < 1500) {
digitalWrite(rouge, LOW);
analogWrite(jaune, luminosite);
luminosite += vitesse;
if (tempsCourant >= 500) {
tempsJ = 2000;
}
}
luminosite = 0;
if ((tempsCourant - tempsV) >= 1500) {
digitalWrite(jaune, LOW);
analogWrite(vert, luminosite);
luminosite += vitesse;
if (tempsCourant >= 500) {
tempsV = 2000;
}
}
while(tempsCourant >= 2000) {
static int tempsCourant(0), tempsPrecedent(1);
tempsCourant = digitalRead(bouton);
if (tempsCourant != tempsPrecedent) {
if (tempsCourant == 1) {
compteur++;
texte++;
reponse = fonctionTexte(texte);
Serial.println(reponse);
}
tempsPrecedent = tempsCourant;
}
if (compteur > 4) {
compteur = 0;
texte = 0;
}
switch (compteur) {
case 0:
digitalWrite(rouge, LOW);
digitalWrite(jaune, LOW);
digitalWrite(vert, LOW);
break;
case 1:
digitalWrite(rouge, HIGH);
digitalWrite(jaune, HIGH);
digitalWrite(vert, HIGH);
break;
case 2:
digitalWrite(rouge, HIGH);
digitalWrite(jaune, LOW);
digitalWrite(vert, LOW);
break;
case 3:
digitalWrite(rouge, LOW);
digitalWrite(jaune, HIGH);
digitalWrite(vert, LOW);
break;
case 4:
digitalWrite(rouge, LOW);
digitalWrite(jaune, LOW);
digitalWrite(vert, HIGH);
break;
default:
digitalWrite(rouge, LOW);
digitalWrite(jaune, LOW);
digitalWrite(vert, LOW);
break;
}
}
}