1
Vos projets / Utiliser la fonction "IF" ou/et "else if " ???
« le: avril 04, 2019, 07:17:29 am »
Bonjour
Voilà j'ai un projet visant à commander 2 relais à l'aide d'un capteur ultrason HC-SR04, dans le cadre d'un projet aquaponique ,les deux relais en question serviront à alimenter de pompes a eau j'ai déjà essayé d'écrire quelques lignes de code mais je n'obtiens pas le résultat voulu .. Car je sais pas si je dois utiliser la fonction "if" ou "else if" ou même les deux ,j'aimerais avoir votre aide pour écrire la base du code
Voilà grossièrement ce que je voudrais faire exprimer sans code :
x= 10cm
y=5cm
Si la hauteur est plus petit que (< ) que x
Le Relais 1 s'allume
Le Relais 2 reste éteint
Si la hauteur est = X
Le Relais 1 s'eteint
Le Relais 2 reste éteint
Temporisation de 3 secondes
Si la hauteur est plus grande (>) que Y
Le Relais 1 reste éteint
Le relais 2 s'allume
Si la hauteur est = Y
Le Relais 1 reste éteint
Le Relais 2 s'éteint
Temporisation de 3 secondes
Voilà grossièrement les ordres à executer mais je n'arrive pas à convertir ça en ligne de code
J'avais fait un premier essai mais ça a ete un echec :
Voilà les lignes de code du raté
Code: [Select]
void loop() {
niveau_culture = culture.distanceInMillimeters() / 10;
Serial.print("hautteur: ");
Serial.println(hautteur);
Serial.println("");
delay(250);
if (hauteur != x) {
digitalWrite(relais 2, LOW);
digitalWrite(relais 1, HIGH);
}
if (hauteur>=x) {
digitalWrite(relais 2, HIGH);
digitalWrite(relais 1, HIGH);
//Serial.println("marre_haute");
}
delay(3000);
if (hauteur !=y) {
digitalWrite(relais 1, LOW);
digitalWrite(relais 2, HIGH);
}
if (hauteur <= y) {
digitalWrite(relais 1, HIGH);
digitalWrite(relais 2, HIGH);
// Serial.println("marre_basse");
}
delay(3000);
Voilà avec Céline de code dès que la hauteur atteint la valeur X Le Relais 1 éteins la hauteur diminue et dès qu'elle devient au-dessOUS de la valeur X le relais 1 se rallume, et tout ça se fait de façon interminable
Est-ce que je dois pas utiliser une boucle fort genre " while "
J'ai aussi un doute sur l'utilisation de la fonction "delay" , est-ce que je dois utiliser Delaymillisecondes plutot
Voilà merci de votre lecture aidez-moi s'il vous plaît
Voilà j'ai un projet visant à commander 2 relais à l'aide d'un capteur ultrason HC-SR04, dans le cadre d'un projet aquaponique ,les deux relais en question serviront à alimenter de pompes a eau j'ai déjà essayé d'écrire quelques lignes de code mais je n'obtiens pas le résultat voulu .. Car je sais pas si je dois utiliser la fonction "if" ou "else if" ou même les deux ,j'aimerais avoir votre aide pour écrire la base du code
Voilà grossièrement ce que je voudrais faire exprimer sans code :
x= 10cm
y=5cm
Si la hauteur est plus petit que (< ) que x
Le Relais 1 s'allume
Le Relais 2 reste éteint
Si la hauteur est = X
Le Relais 1 s'eteint
Le Relais 2 reste éteint
Temporisation de 3 secondes
Si la hauteur est plus grande (>) que Y
Le Relais 1 reste éteint
Le relais 2 s'allume
Si la hauteur est = Y
Le Relais 1 reste éteint
Le Relais 2 s'éteint
Temporisation de 3 secondes
Voilà grossièrement les ordres à executer mais je n'arrive pas à convertir ça en ligne de code
J'avais fait un premier essai mais ça a ete un echec :
Voilà les lignes de code du raté
Code: [Select]
void loop() {
niveau_culture = culture.distanceInMillimeters() / 10;
Serial.print("hautteur: ");
Serial.println(hautteur);
Serial.println("");
delay(250);
if (hauteur != x) {
digitalWrite(relais 2, LOW);
digitalWrite(relais 1, HIGH);
}
if (hauteur>=x) {
digitalWrite(relais 2, HIGH);
digitalWrite(relais 1, HIGH);
//Serial.println("marre_haute");
}
delay(3000);
if (hauteur !=y) {
digitalWrite(relais 1, LOW);
digitalWrite(relais 2, HIGH);
}
if (hauteur <= y) {
digitalWrite(relais 1, HIGH);
digitalWrite(relais 2, HIGH);
// Serial.println("marre_basse");
}
delay(3000);
Voilà avec Céline de code dès que la hauteur atteint la valeur X Le Relais 1 éteins la hauteur diminue et dès qu'elle devient au-dessOUS de la valeur X le relais 1 se rallume, et tout ça se fait de façon interminable
Est-ce que je dois pas utiliser une boucle fort genre " while "
J'ai aussi un doute sur l'utilisation de la fonction "delay" , est-ce que je dois utiliser Delaymillisecondes plutot
Voilà merci de votre lecture aidez-moi s'il vous plaît