Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
espace_public:arduino_clapet [2020/08/24 12:04] loickk |
espace_public:arduino_clapet [2021/03/10 18:08] loickk supprimée |
||
---|---|---|---|
Ligne 19: | Ligne 19: | ||
===== Code ===== | ===== Code ===== | ||
+ | Le code présenté ci-dessous permet de gérer le clapet en fonction des températures mesurées par les capteurs au sein du panneau solaire. Le code [[https://cloud.ecutsa.fr/index.php/s/jkzwm2zBDpENXcG|est téléchargeable ici]] et contient également la [[espace_public:arduino_ventilateur|gestion du ventilateur présenté précédemment]]. | ||
+ | ==== Preambule du code ==== | ||
#include <DHT.h> | #include <DHT.h> | ||
Ligne 31: | Ligne 33: | ||
#define clapet_open 5 | #define clapet_open 5 | ||
#define clapet_closed 6 | #define clapet_closed 6 | ||
+ | |||
#define fan 7 | #define fan 7 | ||
+ | |||
int maxTemp = 28; | int maxTemp = 28; | ||
- | Boucle d'initialisation | + | ==== Boucle d'initialisation ==== |
void setup() | void setup() | ||
{ | { | ||
Ligne 50: | Ligne 52: | ||
dht_2.begin(); // Mise en route du capteur de temperature et d'humidite | dht_2.begin(); // Mise en route du capteur de temperature et d'humidite | ||
} | } | ||
+ | | ||
+ | ==== Boucle infinie==== | ||
+ | void loop() | ||
+ | { | ||
+ | // Attente de 5secondes entre chaque mesure. | ||
+ | delay(5000); | ||
+ | | ||
+ | // Lecture temperature et humidite (temps de lecture>250ms) | ||
+ | // Capteur #1 | ||
+ | float h_1 = dht_1.readHumidity(); | ||
+ | // Temperature en degres Celsius | ||
+ | float t_1 = dht_1.readTemperature(); | ||
+ | | ||
+ | // Capteur #2 | ||
+ | float h_2 = dht_2.readHumidity(); | ||
+ | // Temperature en degres Celsius | ||
+ | float t_2 = dht_2.readTemperature(); | ||
- | void loop() { | + | Si la température du capteur 1 dépasse la température de consigne |
- | + | if(t_1 > maxTemp) | |
- | // Attente de 5secondes entre chaque mesure. | + | { |
- | delay(5000); | + | Attente d'une seconde |
- | + | ||
- | // Lecture temperature et humidite (temps de lecture>250ms) | + | |
- | // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) | + | |
- | // Capteur #1 | + | |
- | float h_1 = dht_1.readHumidity(); | + | |
- | // Temperature en degres Celsius | + | |
- | float t_1 = dht_1.readTemperature(); | + | |
- | + | ||
- | // Capteur #2 | + | |
- | float h_2 = dht_2.readHumidity(); | + | |
- | // Temperature en degres Celsius | + | |
- | float t_2 = dht_2.readTemperature(); | + | |
- | + | ||
- | // Activation/Désactivation ventilateur | + | |
- | if(t_1 > maxTemp) { | + | |
delay(1000); | delay(1000); | ||
- | Serial.println("Ouverture"); | + | Affichage Ouverture clapet dans la console |
- | digitalWrite(clapet_open, LOW); | + | Serial.println("Ouverture clapet"); |
- | digitalWrite(clapet_closed, HIGH); | + | Le signal d'ouverture du clapet est alimenté (port 5) par la carte Arduino tandis que le signal de fermeture du clapet n'est pas alimenté (port 6). |
+ | digitalWrite(clapet_open, HIGH); | ||
+ | digitalWrite(clapet_closed, LOW); | ||
+ | Attente de 15 secondes puis tous les signaux sont coupés (sauf ventilation qui s'active) | ||
delay(15000); | delay(15000); | ||
digitalWrite(clapet_open, LOW); | digitalWrite(clapet_open, LOW); | ||
digitalWrite(clapet_closed, LOW); | digitalWrite(clapet_closed, LOW); | ||
digitalWrite(fan, HIGH); | digitalWrite(fan, HIGH); | ||
- | } else { | + | } |
+ | Si la température est inférieure à la température de consigne, fermeture des clapets | ||
+ | else | ||
+ | { | ||
+ | Attente d'une seconde | ||
delay(1000); | delay(1000); | ||
- | Serial.println("Fermeture"); | + | Affichage dans la console "Fermeture clapet" |
- | digitalWrite(clapet_open, HIGH); | + | Serial.println("Fermeture clapet"); |
- | digitalWrite(clapet_closed, LOW); | + | Le signal de fermeture du clapet est alimenté (port 6) par la carte Arduino tandis que le signal d'ouverture du clapet n'est pas alimenté (port 5). |
+ | digitalWrite(clapet_open, LOW); | ||
+ | digitalWrite(clapet_closed, HIGH); | ||
delay(15000); | delay(15000); | ||
+ | Attente de 15 secondes puis tous les signaux sont coupés. | ||
digitalWrite(clapet_open, LOW); | digitalWrite(clapet_open, LOW); | ||
digitalWrite(clapet_closed, LOW); | digitalWrite(clapet_closed, LOW); | ||
digitalWrite(fan, LOW); | digitalWrite(fan, LOW); | ||
- | } | + | } |
- | + | Affichage des mesures de température et d'humidité dans la console | |
- | Serial.print(" Humidity #1: "); | + | Serial.print(" Humidity #1: "); |
- | Serial.print(h_1); | + | Serial.print(h_1); |
- | Serial.print(" %\t"); | + | Serial.print(" %\t"); |
- | Serial.print("Temperature #1: "); | + | Serial.print("Temperature #1: "); |
- | Serial.print(t_1); | + | Serial.print(t_1); |
- | Serial.print(" *C "); | + | Serial.print(" *C "); |
- | + | Serial.print(" Humidity #2: "); | |
- | Serial.print(" Humidity #2: "); | + | Serial.print(h_2); |
- | Serial.print(h_2); | + | Serial.print(" %\t"); |
- | Serial.print(" %\t"); | + | Serial.print("Temperature #2: "); |
- | Serial.print("Temperature #2: "); | + | Serial.print(t_2); |
- | Serial.print(t_2); | + | Serial.println(" *C "); |
- | Serial.println(" *C "); | + | } |
- | } | + |