Le principe de cette régulation est assez simple, la vanne s'ouvre ou se ferme suivant une consigne de température une fois celle-ci atteinte, elle s'arrête. Le consigne sera donnée par un potentiomètre multi-tours de 10Kohms et la mesure de température se fera a l'aide d'un LM35Z
Le moteur étant piloté en ouverte et fermeture, j'ai donc mis deux relais.
Il est prévu un affichage LCD indiquant
- la température de consigne
- la température de sortie
- l'état de la vanne (ouverture, fermeture ou arrêt).
- le débit en L/min
Le schéma
Comme toujours, avec arduino rien de compliqué !!!!Les transistors sont des BC 547, les résistances pour la base des 1Kohms et les relais sont en 5V.
Le débitmètre est un modèle a effet hall, une impulsion représente 2,25ml.
Le programme
Le programme est assez simple, si on retire la partie gestion de la vanne, cela se résume a une trentaine lignes./*
**
** Debit Meter
**
** http://www.arduino-creations.blogspot.fr
*/
#include "Debit.h"
#include "LiquidCrystal.h"
LiquidCrystal lcd(3, 4, 5, 6, 7, 8);
int sensorPin = A0;
int PotPin = A1; // Entree potentiometre 10K
int PotValue = 0; // variable de stockage consigne
int setTemp = 0; // variable de stockage sonde
int Vouv = 11;
int Vfer = 12;
const byte pinDebitMeter = 2; // Broche d'entrée du detecteur de débit
const byte numInterrupt = 0; // Interruption
const int period = 100; // Periode de base en millisecondes 1000
const float CoefLitMin = 7.4;
// Declaration du débimetre
Debit myDebit(numInterrupt, pinDebitMeter, period);
void setup() {
myDebit.begin(); // Initialisation du comptage pour le bébimètre
lcd.begin(20, 4);
lcd.setCursor(4,1);
lcd.print(" Mitigeur");
lcd.setCursor(0,2);
lcd.print(" Jojo ");
lcd.setCursor(0,3);
lcd.print(" Bricolo ");
delay(4000);
lcd.clear();
}
void loop() {
delay(10);
int reading = analogRead(sensorPin);
float voltage = reading * 4.5 / 1024;
int temp = voltage * 1000 ;
//Récupération de la valeur du potentiomètre //******************************************************
PotValue = analogRead(PotPin);
setTemp = PotValue / 10.24; //Parametre consigne de 0 a 99 degres ici je n'utilise pas la fonction MAP car une simple division suffit.
lcd.setCursor(0,0);
lcd.print("Temperature : ");
delay(10);
lcd.print(temp);
lcd.print("C ");
// Affichage de la consigne *********************************************
lcd.setCursor(0,1);
lcd.print("Consigne : ");
delay(10);
lcd.print(setTemp);
lcd.print("C ");
myDebit.operate(); // Comptage
if ((myDebit.DebiRate25Period()) == 0)
{
lcd.setCursor(0,2);
lcd.print("Debit : ");
lcd.print("0.00");
lcd.print(" l/min ");
}
else
{
lcd.setCursor(0,2);
lcd.print("Debit : ");
lcd.print(CoefLitMin * myDebit.DebiRate25Period(), 2);
lcd.print(" l/mn ");
}
if (temp < setTemp)
{
digitalWrite (Vouv,HIGH);
digitalWrite (Vfer,LOW);
lcd.setCursor(0,3);
lcd.print("Ouverture vanne ");
}
else
if (temp > setTemp)
{
digitalWrite (Vouv,LOW);
digitalWrite (Vfer,HIGH);
lcd.setCursor(0,3);
lcd.print("Fermeture vanne ");
}
else
if (temp == setTemp)
{
digitalWrite (Vouv,LOW);
digitalWrite (Vfer,LOW);
lcd.setCursor(0,3);
lcd.print("Arret vanne ");
}
delay(100);
}
ATTENTION !!!! Pour faire fonctionner ce programme, il vous faut la librairie Debit.h que j'ai crée. Si ce montage vous intéresse, je vous envoie celle-ci.
Le lien ci-dessous est un essai, merci de me dire si cela fonctionne car avec Blogger, on ne peut pas héberger des fichiers
Téléchargement
Si cela vous intéresse, je suis en mesure de vous faire un kit ou même vous réaliser ce montage !!!
N'hésitez pas a me contacter.
Bonsoir,
RépondreSupprimerMerci pour votre joli montage, je voudrai savoir si possible quel servomoteur avez vous utilisé ainsi que la régulation comment elle a été faite.
pour mon sujet de PFE je vais réaliser aussi un régulateur de T° d'eau et je demanderai volontiers votre aide si vous le souhaitez.
pourriez vous aussi partager avec moi la librairie que vous avez créer.
merci d'avance
bien a vous.
Bonjour,
SupprimerMerci!!
Je n'ai fait que le schéma et le programme pour quelqu'un qui me l'a demandé. Je ne suis donc pas possesseur de la vanne mais vous pouvez utiliser n'importe quelle vanne motorisée sous réserve que ce ne soit pas un modèle a commande analogique.
Je vous envoie la librairie par mail
Bonjour,
RépondreSupprimerje tiens à remercier Monsieur JoJo Heim pour le travail qu'il accompli et pour sa disponibilité, il avait déjà réaliser pour moi et mon fils qui devait présenter son travail de fin d'étude ce régulateur pour V3V, et avec lequel mon fils avait obtenu de très bonnes notes.
De nouveau je lui demande de l'aide pour un autre job et quelque jours plus tard il me donne ce que j'ai demandé.
C'est un très grand Monsieur, et je l'en remercie énormément.
bonjour pouvez vous m'envoyer la librairie svp.
RépondreSupprimermerci d'avance.
damien.da@hotmail.fr
Bonjour,
RépondreSupprimerCe projet date un peu, mais il m'intéresse beaucoup !!
Que faut-il enlever du programme pour ne pas utiliser le débitmètre ?
Pus-je vous joindre ? et comment ?
Merci,
Hervé
Bonjour,
SupprimerCela dépend de ce que vous voulez mettre a la place.
Je vous envoie un mail vous aurez mon adresse.
re-bonjour,
SupprimerJe ne sais pas quelle adresse vous avez, mais je n'ai rien eu !
Je voudrai réguler un plancher chauffant, mais je n'ai pas besoin de débit mètre ! d'ailleurs je n'ai pas la place pour l'installer !
Mon adresse est herve.leger2 chez wanadoo.fr
Encore merci de m'avoir répondu !!
Hervé
Bonjour, par hasard je tombe sur votre site, en plus un sketch sur une horloge, mais comme je n'avais pas de ssd1306 ou sh1106 mais plein d'afficheur LCD à quatre digits fonctionnant avec la librairie SevenSegment.h et décodeur AY0438. des Leds (2) affiche la position pour régler l'heure et les minutes je ne suis pas arrivé à afficher un P (programme) à coté du réglage des heures et minutes. Compile avec l'IDE 1.0.6. Bien cordialement
RépondreSupprimerVoici le sketch:
Ce commentaire a été supprimé par l'auteur.
RépondreSupprimer#include
RépondreSupprimer#include
#include
#include
#include
int swtu = 11; // switch up is at pin 1
int swtd = 9; // switch down is at pin 6
int BUTTON1_PIN = 12;
#define CLOCK 4 // Arudino digital 44 -> AY0438 clock
#define DATA 6 // Arudino digital 46 -> AY0438 data
#define LOAD 5 // Arudino digital 45 -> AY0438 load
const int LED=13;
const int LED1=10;
//int LEDState = LOW;
// Setup seven segment
SevenSegment screen(CLOCK, DATA, LOAD);
int Heure;
int Minute;
int Seconde;
int Jour;
int Mois;
int Annee;
uint16_t startAddr = 0x0000;
uint16_t lastAddr;
uint16_t TimeIsSet = 0xaa55;
////////////////////
//// Functions ////
///////////////////
Button button1 = Button(BUTTON1_PIN,BUTTON_PULLDOWN);
boolean longPush = false;
int value, etat = 0;
unsigned long get_time2 = millis();
unsigned long get_time3 = millis();
int page = 0; // numero d'ecran
#define NB_PAGE 3
void setup() {
Serial.begin(9600);
button1.releaseHandler(handleButtonReleaseEvents);
screen.begin("AY0438","8.8|8.8");
pinMode(11,INPUT_PULLUP);
pinMode(9,INPUT_PULLUP);
pinMode(LED, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(12, INPUT_PULLUP);
button1.isPressed();
page = 1;
RTC.setRAM(0, (uint8_t *)&startAddr, sizeof(uint16_t));// RAM horloge
TimeIsSet = 0xffff;
RTC.setRAM(54, (uint8_t *)&TimeIsSet, sizeof(uint16_t));
RTC.ctrl = 0x00;
RTC.setCTRL();
}
Ce commentaire a été supprimé par l'auteur.
RépondreSupprimerLes includes ne passant les voici:
RépondreSupprimerButton.h
SPI.h
DS1307new.h
Wire.h
SevenSegment.h
Bonjour
RépondreSupprimerJe vous remercie pour votre aide, et j'aimerais savoir si possible de m'aider pour réaliser ce projet mais avec 3 sondes.
Si la température (Pour la sonde 1 par exemple )dépasse 30 C ,le chauffage s'arrête
Merci
Ce commentaire a été supprimé par un administrateur du blog.
RépondreSupprimerCe commentaire a été supprimé par un administrateur du blog.
RépondreSupprimerCe commentaire a été supprimé par un administrateur du blog.
SupprimerBonjour,
RépondreSupprimerce projet est sympa mais ne ce n'est pas une régulation de vanne 3 voies c'est une régulation pas tout ou rien
Bonjour pouvez vous me le realiser , c est pour une personne agee. Et me dire combien.merci Transoam @ live.fr
RépondreSupprimerBonjour, pouvez-vous m'envoyer la librairie Debit.h ?
RépondreSupprimerCordialement.
bibou.ebay@cegetel.net
Yod.
Bonsoir possible avoir le programme sans débit mètre merci
RépondreSupprimerBonsoir je viens vervous pas de nouvelles
RépondreSupprimerHello,
RépondreSupprimerDésolé pour cette réponse tardive, je reviens après un long combat avec un cancer.
Tu veux quel programme? Que veux-tu faire?
Bonjour,
RépondreSupprimerje suis intéressé par votre programme de regulation
est il possible que vous m'envoyer le tout à l'adresse
nicofly974@gmail.com
merci d'avance
Salut ! Est ce que tu pourrais me renvoyer le programme à mon adresse mail ( jijijojo.spam@gmail.com ) s'il te plaît j'en aurais besoin pour un projet d'étude en école d'ingénieur. De plus quel est le modèle de la vanne que vous utilisez ? Merci d'avance
SupprimerBonjour je suis fasciner par votre travail, je suis débutant en programmation pour de l'irrigation agricole. Je serai ravi d'entrer en contact avec vous en apprendre davantage!!!
RépondreSupprimermon mail: abcgrower@gmail.com prière de me donner le votre! merci
RépondreSupprimermerci de me répondre:
RépondreSupprimer