Bonjour,
J'ai une petite question, j'aimerais allumer une LED quand les valeurs du potentiomètre sont comprises entre 9 et 19 par exemple.
Je sais allumer une LED quand la valeur est égale, supérieur ou inférieur mais pas quand c'est compris entre 2 ou plusieurs valeurs. Quel type de boucle je dois utiliser (while, for...), et comment faire.
Je vous mets mon code actuel :
int potentiometre = 0;
int heure = 0;
void setup()
{
pinMode(9, OUTPUT);
Serial.begin(9600);
}
void loop()
{
potentiometre = analogRead(A2);
heure = map(potentiometre, 0, 1023, 0, 23);
Serial.print("heure = ");
Serial.println(heure);
delay(100);
if (9 < (heure < 19)) {
digitalWrite(9, HIGH);
}
else {
digitalWrite(9, LOW);
}
}
Problème résolu :
Deux solutions possible, utiliser le "ET LOGIQUE" ou le "OU LOGIQUE".
Solution 1 : "ET LOGIQUE"
On allume quand la valeur du potentiomètre est comprise entre 9 et 19 sinon on éteint.
int potentiometre = 0;
int heure = 0;
void setup()
{
pinMode(9, OUTPUT);
Serial.begin(9600);
}
void loop()
{
potentiometre = analogRead(A2);
heure = map(potentiometre, 0, 1023, 0, 23);
Serial.print("heure = ");
Serial.println(heure);
delay(100);
if (heure > 9 && heure < 19) {
// On allume quand la valeur du potentiomètre est comprise entre 9 et 19 sinon on éteint.
digitalWrite(9, HIGH);
}
else {
digitalWrite(9, LOW);
}
}
Solution 2 : "OU LOGIQUE"
On éteint quand la valeur du potentiomètre est inférieur à 9 ou supérieur à 19.
int potentiometre = 0;
int heure = 0;
void setup()
{
pinMode(9, OUTPUT);
Serial.begin(9600);
}
void loop()
{
potentiometre = analogRead(A2);
heure = map(potentiometre, 0, 1023, 0, 23);
Serial.print("heure = ");
Serial.println(heure);
delay(100);
if (heure < 9 || heure > 19) {
// On éteint quand la valeur du potentiomètre est inférieur à 9 ou supérieur à 19.
digitalWrite(9, LOW);
}
else {
digitalWrite(9, HIGH);
}
}
PS: J'ai corrigé mon message, excusez moi, j'aurai dû lire les règles du forum ce qui est à présent est fait.