(projet arrosage) Question par rapport au programme de la pompe

o

Quel capteur d'humidité ?
Ce code est totalement incomplet. On ne voit même pas la lecture du capteur dans la boucle.
Un petit effort ...

C'est normal j'ai mis que la partie qui fallait changer et c'est avec un capteur d'humidité de sol anti corrosif

Sans le code complet, que dire ?

Voici le programme complet :

int relay = 2;
int capteur_Pin = A0;
int valeur_de_humidite = 0;

void setup(){

// initialize digital pin 13 as an output.
pinMode(2, OUTPUT); //relais
Serial.begin(9600); //vitesse

}

void loop() {

valeur_de_humidite = analogRead(capteur_Pin);
delay(1000);
Serial.print("Valeur mesuré par le capteur d'humidité = " );
Serial.println(valeur_de_humidite);

while (valeur_de_humidite < 307)
{
digitalWrite(2, HIGH); // le relay actionne la pompe
Serial.println("pompe en action");
delay(500); // délai de 0.5 sec (petite impulsion)
digitalWrite(2, LOW); // le relay n'actionne pas la pompe
Serial.println("pompe en arrêt");
delay(500); // délai de 0.5 sec (arrêt des petites impulsions)

}

C'est bien ce que je disais :

hbachetti:
On ne voit même pas la lecture du capteur dans la boucle.

La valeur de valeur_de_humidite ne risque pas de changer dans la boucle while si le capteur n'est pas relu.

je l'ai mis pourquoi alors le remettre sachant qu'il est déjà lu dans la boucle il n'y a aucune erreur mon programme marche bien ce n'est pas sa la question que j'ai posé , valeur_de_humidite = analogRead(capteur_Pin);

valeur_de_humidite = analogRead(capteur_Pin);

Avant la boucle, pas DANS la boucle.

donc je le met dans void setup ou avant ? (à quoi sa sert de le relire avant ?)

Je pense que tu n'a pas compris à quoi sert une boucle ni comment elle se déroule.

Je pense même qu'utiliser une boucle à cet endroit n'est pas du tout dans l'esprit ARDUINO, puisque loop() est déjà exécuté dans une boucle.
Remplace while par if

Deuxième remarque :
valeur_de_humidite = analogRead(capteur_Pin);
** delay(1000);**

Le delay : pourquoi faire ?

j'ai tout à fait compris arduino et les boucles, loop permet de répéter la boucle tous le temps et setup de définir les broches. Le delay de 1000 ms permet d'afficher la valeur de l'humidité de sol toutes les 1 sec donc je vois que tu comprend pas du tout mon programme sachant qu'il est très simple ou peut être que tu ne comprend rien à la logique d'Arduino

D'autre part par rapport à ce sujet :

https://forum.arduino.cc/index.php?topic=668648.msg4501043#msg4501043

Ce sujet est le même apparemment : je vois deux problèmes

  • tu aurais pu continuer sur le même sujet
  • tu ne te donnes même pas la peine de répondre aux questions posées

Et tu peux m'expliquer comment ton programme magique sort tout seul d'une boucle while() ?

Allez, je passe mon chemin. Démerde-toi tout seul.

mdr :slight_smile:
vu la réponse en #10, ce fil va finir dans "les insolents" >:(

insolent ,pas vraiment.... juste ridicule

Pas de problème , regarder comment il me parle en #3 et #4 après on pourra en reparler

l98:
Pas de problème , regarder comment il me parle en #3 et #4 après on pourra en reparler

Justement, parlons en.... ou pas puisqu'à partir de maintenant tu es banni.

Ce message est pour les nouveaux qui pensent pouvoir tout dire, il est des comportements et des réponses qui sont simplement inacceptables.

Les personnes présentes sur le forum et qui postent pour répondre aux questions parfois, voire même souvent, mal posées ou incomplètes doivent faire preuve d'une patience sans fond et essayent également de préserver la cordialité des échanges.

La plupart du temps les "nouveaux" n'apprécient pas d'être remis face à une certaine ignorance.... et alors, ne pas tout connaitre n'est pas une tare.... ne pas le reconnaitre en est une.

Cependant, cela ne justifie en rien les remarques déplacées et cela abouti à un bannissement ou à un effacement pur et simple du compte et de tous les messages rattachés à celui ci.