Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - jojolito

Pages: [1]
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

Pages: [1]