/**************************************************************/
/* Programme simple pour piloter un fat avec un arduino uno */
/* By juju18 pour forum bassin */
/*************************************************************/
//en premier il faut déclarer les variables avec un nom associé a un numéro de broche
int capteur_lavage=0; // sur digital 0
int capteur_coupure_pompe_bassin=1;//sur digital 1
int contact_couvercle=6;//sur digital 6
int relais_moteur=2; //sur digital 2
int relais_pompe_rincage=3; //sur digital 3
int relais_pompe_bassin=4; // sur digital 4
int relais_uv=5; //sur digital 5
// ensuite on peut faire des variables pour les temporisation avant le lavage (démarrage de la pompe de rincage avant le moteur et arret apres le moteur par exemple) à marquer en millisecond
int tempo_lavage_avant=1000;
int tempo_lavage_rotation_moteur=5000;
int tempo_lavage_apres=1000;
int tempo_mesure_periodique=100; //on vient vérifier que toutes les 500ms l'état des capteurs pour pas aller trop vite (sinon tu vas déclencher des lavages pour rien car les niveaux d'eau vont varier lentement).
int tempo_blocage_lavage=60000; // par exemple on vient bloquer apres le lavage pendant 1 minute.
void setup() {
// ici on vient mettre le parametrage des entrée/sortie de chaque broche, c'est réalisé une fois à la mise sous tension de la carte et ensuite on n'y revient pas (sauf au prochain redémarrage
pinMode(capteur_lavage, INPUT); // configuration du capteur de lavage qui est une entrée
pinMode(capteur_coupure_pompe_bassin, INPUT); // configuration du capteur de coupure de la pompe qui est une entrée
pinMode(contact_couvercle, INPUT); // configuration du contact couvercle qui est une entrée
pinMode(relais_moteur, OUTPUT); // configuration du relais moteur qui est une sortie
digitalWrite(relais_moteur, LOW); // on en profite pour mettre à LOW la sortie pour bien éteindre le moteur au démarrage de la carte)
pinMode(relais_pompe_rincage, OUTPUT);// configuration du relais pompe de rincage qui est une sortie
digitalWrite(relais_pompe_rincage, LOW); // on en profite pour mettre à LOW la sortie pour bien éteindre la pompe de rincage au démarrage de la carte)
pinMode(relais_pompe_bassin, OUTPUT);// configuration du relais pompe du bassin qui est une sortie
digitalWrite(relais_pompe_bassin, LOW); // on en profite pour mettre à LOW la sortie pour bien éteindre le pompe du bassin au démarrage de la carte)
pinMode(relais_uv,OUTPUT); // configuration du relais uv en sortie
digitalWrite(relais_uv, LOW); // sortie placée sur low comme ça relais eteind au démarrage dde la carte)
}
void loop() {
// ici c'est la boucle principale, l'adruino fait ce code en boucle à vitesse maximale, on va donc le brider en rajouter une pause "tempo mesure périodique"
if (digitalRead(capteur_coupure_pompe_bassin) == 0){
digitalWrite(relais_pompe_bassin, LOW);// on vient lire sur l'entrée, si c'est à 0 alors c'est qu'on a un probleme et qu'on coupe la pompe.
}
if (digitalRead(capteur_coupure_pompe_bassin) == 1){
digitalWrite(relais_pompe_bassin, HIGH);// on vient lire sur l'entrée, si c'est à 1 alors c'est que c'est ok donc on allume la pompe.
}
if (digitalRead(contact_couvercle) == 0){
digitalWrite(relais_uv, HIGH); // on lit sur l'entrée, si elle est à 0 L'uv est allumée.
}
if (digitalRead(contact_couvercle) == 1){
digitalWrite(relais_uv, LOW); // on lit sur l'entrée, si elle est à 1 l'uv est éteind.
}
if (digitalRead(capteur_lavage) == 0){ // on vient lire sur l'entrée, si c'est à 0 alors c'est qu'on doit faire un lavage
digitalWrite(relais_pompe_rincage, HIGH); // on allume la pompe de rincage
delay(tempo_lavage_avant); //on lance la temporisation avant lavage
digitalWrite(relais_moteur, HIGH); // on allume le moteur
delay(tempo_lavage_avant);//on lance la temporisation de la rotation
digitalWrite(relais_moteur, LOW); // on eteind le moteur
delay(tempo_lavage_apres);//on lance la temporisation apres le lavage
digitalWrite(relais_pompe_rincage, LOW); // on éteind la pompe de rincage, le lavage est terminé
delay(tempo_blocage_lavage);// on va attendre la tempo entre les lavages pour ne pas déclencher plein de lavage à suivre alors que l'eau n'a pas eu le temps de remonter.
}
delay(tempo_mesure_periodique);// on va attendre pour ralentir le nombre de mesure
}
Voila nico
