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