Château d'eau

## But du Projet

Le but de ce projet est de réaliser un château d'eau autonome qui se rempli automatiquement grâce à une pompe et un réservoir externe. Si le niveau est bas, la pompe se mettra en marche jusqu'à ce qu'un capteur situé en haut du château détecte l'eau à nouveau.

## Cahier des charges

Un Arduino fournira la PWM qui commandera la boîte délivrant la tension et le courant nécessaires au bon fonctionnement du moteur de la pompe (6 V, 350 mA). Une tension et un courant impossible à délivrer avec l'Arduino seul.

## Capteurs nécessaires

La mesure des niveaux d'eau haut et bas se fera avec des détecteurs de niveau constitués de franges conductrices qui laissent passer le courant dès qu'un matériau conducteur créé le contact.

## Besoins électriques

Pour amplifier la tension et avoir un courant suffisant au fonctionnement de la pompe, on utilisera une boîte noire contrôlée en mode externe par l'Arduino avec une PWM.

## Besoins Mécaniques

Le support est un long château vertical sur lequel sera fixé les deux capteurs de niveau.

Un réservoir sera également utilisé et relié à la pompe pour fournir l'eau nécessaire ou remplissage du château.

## Arduino

L'Arduino UNO possède plusieurs sorties numériques. Ici la sortie D9 est utilisée par la PWM servant à alimenter la pompe, et la led servant de témoin de fonctionnement de la pompe est activer par la pin D8.

Les lectures de seuil se feront de manière analogique avec la pin A5 pour le détecteur de seuil bas et la pin A3 pour le détecteur de seuil haut.

## Programme Arduino

**void setup() {**

*// put your setup code here, to run once:*

 Serial.begin(9600);

  pinMode(led, OUTPUT); *// initialisation de la pin de la led en sortie*

  pinMode(pompe, OUTPUT); *// initialisation de la pin de la pompe en sortie*

**}**

**void loop() {**

*// initialisation des variables du code*

int led = 8;          *// pin led = 8*

int pompe = 9;        *// pin pompe = 9*

int puissance = 0;

int fadeAmount = 5;   *// incrément de la pwm*

int Ubas;             *// signal du capteur bas*

int Uhaut;            *//signal du capteur haut*

int Useuilbas = 275;  *// seuil de détection du niveau d'eau bas*

int Useuilhaut = 250; *// seuil du détection du niveau d'eau maximum*

*// boucle de condition sur la détection d'eau :*

Ubas = analogRead(5);  *// lecture du signal envoyé par le capteur haut*

 Serial.println(Ubas); *// écriture de la valeur du signal pour les tests des valeurs de seuil*

**if (Ubas > Useuilbas){** *// vérification si le niveau est faible ou pas*

 Uhaut = analogRead(3); *// si niveau faible lecture du niveau haut pour entrer dans la boucle*

 Serial.println(Uhaut); *// écriture de la valeur du niveau haut pour les tests des valeurs de seuil*

**while (Uhaut > Useuilhaut){** *// tant que l'eau n'est pas détecté en haut, la pwm controlant la pompe tourne*

*// lignes codes PWM pompe*

    digitalWrite(8,HIGH);

    digitalWrite(pompe, puissance);

*// change the power for next time through the loop:*

    puissance = puissance + fadeAmount;

*// reverse the direction of the fading at the ends of the fade:*

**if (puissance == 0 || puissance == 255) {**

    fadeAmount = -fadeAmount ;

**}**

*// wait for 30 milliseconds to see the dimming effect*

  delay(30);

*//fin de pwm*

  Uhaut = analogRead(3); *// vérification de l'optention du niveau maximal ou non*

   Serial.println(Uhaut); *// écriture de la valeur du niveau haut pour les tests des valeurs de seuil*

**}**

digitalWrite(8,LOW);  *// extinction de la led*

digitalWrite(9,LOW);  *// extinction de la pompe*

Ubas = analogRead(5); *// nouvelle vérification du niveau bas de l'eau pour sortir de la boucle if*

Serial.println(Ubas); *// écriture de la valeur du niveau bas pour les tests des valeurs de seuil*

**}**

delay(1000); *// temps entre chaque vérification de niveau, à modifier si pompe trop rapide ou trop lente*

**}**

## Tests

La Led alimentée par la pin D8 elle-même commandée par la fonction digitalRead juste avant la mise en route de la pompe témoigne de la vérification de la condition "Le niveau est plus bas que le niveau seuil indiqué".

## Mesures

Les mesures de tension établissant les meilleures valeurs de fonctionnement de la pompe dans notre système montrent qu'elle doit fonctionner sous une tension de 15 V et avec un courant de 380 mA.

## Problèmes rencontrés

Les principaux problèmes rencontrés ont été de déterminer les seuils de détection de l'eau par les détecteur de niveau. En effet, les valeurs analogiques données par le capteur varient en fonction des conditions d'utilisation du capteur (capteurs mouillés au préalable puis plonglés à nouveau, capteur sec plongé rapidement dans de l'eau). Le temps de réaction des capteurs a donc été un fait à tenir compte.

L'autre problème rencontré est le fonctionnement de la pompe avec une tension et un courant suffisant. Les questions d'utilisation d'un transistor, d'un ampli opérationnel ou d'une boîte noire a été la principale question du projet.

== Conclusions
Fichier:Oral PHY 404.pdf