Go Down

Topic: [RESOLU]Arduino activer une pompe avec des capteurs de pression et niveau d'eau (Read 1 time) previous topic - next topic

gwest77

Au début de la temporisation, j'ai mis :

Code: [Select]
// Si le bouton est enfoncé,
  if ( digitalRead(pumpPin) == HIGH ) {


Si la pompe est allumé alors on active la tempo.

Le truc c'est que si la pompe s'allume et qu'elle reste allumé, est-ce que la mesure de la pression va continuer dans le code tel qu'il est ?

La tempo s'effectuera qu'une seule fois au démarrage?

Cordialement.

gwest77

Re-bonsoir,


Alors, une derniere publication de mon code :

Code: [Select]
const int pompe = 3; // broche 2 du micro-contrôleur se nomme maintenant : L1
const int plante = 1; // broche 3 du micro-contrôleur se nomme maintenant : plante
const int niveaudeau = 6;
const int programateur = 7;
int moistsoilLEDPin = 4; //humide // led jaune
int drysoilLEDPin = 5;// sec // led rouge
int pumpLEDPin = 2; // Led  pompe verte
int pumpLEDPinred = 0; // Led  pompe rouge
// Déclaration des variables :


void setup() // fonction d'initialisation de la carte
{ // contenu de l'initialisation
  pinMode(pompe, OUTPUT); // L1 est une broche de sortie
  pinMode(plante, INPUT); // détecteur d'humidité
  pinMode(niveaudeau, INPUT); // niveau d'eau dans le canal
  pinMode(programateur, INPUT); //programateur horaire
  pinMode(moistsoilLEDPin, OUTPUT);
  pinMode(drysoilLEDPin, OUTPUT);
  pinMode(pumpLEDPin, OUTPUT);
  pinMode(pumpLEDPinred, OUTPUT);
}


void loop() // fonction principale, elle se repete (s execute) a l'infini
{ // contenu du programme

  int humide = digitalRead(plante); // Lecture de l etat du capteur

  if (humide == HIGH) {
    digitalWrite(moistsoilLEDPin, HIGH); // Allumer LED humide
    digitalWrite(drysoilLEDPin, LOW); // Allumer Led sec
  }

  if (humide == LOW) {
    digitalWrite(drysoilLEDPin, HIGH); // Eteindre Led sec
    digitalWrite(moistsoilLEDPin, LOW); // Allumer LED humide
  }







  if ((humide == HIGH) && (digitalRead (niveaudeau) == LOW) && (digitalRead (programateur) == LOW)) // Si le capteur est a l etat haut et que le niveau d'eau est OK
  {
    digitalWrite(pompe, LOW); // Allumer L1
    digitalWrite(pumpLEDPin, HIGH); // Allumer Led pompe
    digitalWrite(pumpLEDPinred, LOW); // Eteindre led rouge Led pompe
  }


  else // Sinon
  {
    digitalWrite(pompe, HIGH); // Eteindre L1
    digitalWrite(pumpLEDPin, LOW); // Eteindre Led pompe
    digitalWrite(pumpLEDPinred, HIGH); // Eteindre led rouge Led pompe
  }
  delay(1000); // Attendre 1 seconde



}




J'ai fais au plus simple et j'ai enlevé le capteur de pression (peut-être que je le mettrais sur un autre arduino nano pour controler la pression au refoulement de la pompe)

Le code que j'ai écris fonctionne comme suit :

On utilise un programmateur mécanique :

https://www.amazon.fr/Legrand-LEG095860-Programmateur-journalier-m%C3%A9canique/dp/B0090HKM16

Avec un transformateur et un relais, qui vas dire a l'arduino que le programmateur est en marche (contact fermé)

Un second contact, celui du niveau d'eau dans le ruisseau vas nous dire si il y a de l'eau ou pas.

Ainsi qu'un capteur d'humidité du sol qui vas nous dire si le sol est humide ou non

Donc si les 3 conditions sont réunis( le contact du programmateur + contact niveau d'eau ruisseau + capteur humidité du sol) Alors le relais de la pompe se met en marche.

Si une des 3 conditions est intérompue, alors la pompe s'arrete.

Ce qui fait que :

Si on programme chaque jours une plage de 2h avec le programmateur, chaque jour l'arduino va regarder si il y a de l'eau dans le canal, si le sol est sec ou non  SI ces deux conditions sont réunis a l'heure ou le programmateur est en marche, alors on allume la pompe dans la limite des 2 heures et si l'humidité du sol est a nouveau convenable pour les plantes.



dalyre

St svp je veux pmper de leau mais saisir la quantité avk lutrason vs pouvez maider plz

icare

Bonjour,
St svp je veux pmper de leau mais saisir la quantité avk lutrason vs pouvez maider plz
C'est quoi comme langue, le traducteur ne trouve pas de langue correspondante.
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Go Up