Descriptions des tâches pour l'optimiseur du chauffage version simplifiée. -------------------------------------------------------------------------- Modifié le 14/10/2011 suite à la réunion M-I du 12/10/2011. Modifié le 27/10/2011 suite à la réunion M-I du 26/10/2011. Modifié le 09/11/2011 Liste des variables: -------------------- TeauC ' Température de consigne de l'eau du chauffage. TeauM ' Température mesurée de l'eau du chauffage (Sonde 1Wire). TCons ' Température de consigne ( Dip-Switches ). Ti ' Température intérieure (Sonde 1Wire). TiMin ' Température intérieure Minimale. TiMax ' Température intérieure Maximale. TiMoy ' Température intérieure Moyenne. Te ' Température extérieure (Sonde 1Wire). Pente ' Pente de courbe de chauffe. Pivot ' Température d'eau pour température extérieure de 0 C°. CycleCourbe ' Index 0 ou 1 permettant de déterminer si un cycle a été complété. Thermostat ' Si Pin Entrée = 0 (contact Ouvert) ou Entrée = 1 (contact fermé). Relais1 ' Led1 et circulateur d'eau. Relais2 ' Led2 et Brûleur ou Ouverture de la Vanne à 3 voies suivant ' la valeur System. Relais3 ' Led3 et fermeture de la Vanne à 3 voies. TempInt ' Variable de comptage par Interruption. TempoOld ' Variable de travail. OW_Nombre ' Nombre d'éléments sur le bus. OW_ID(3,8) ' Identifiants des circuits, 3 représente le nombre de circuits et ' 8 représente les 8 bytes pour l'identifiant unique. OW_Erreur ' Drapeau d'erreur pour les fonctions 1Wire. i ' Variable de travail. j ' Variable de travail. k ' Variable de travail. Liste des constantes: --------------------- Teau1 ' Température maximale d'eau de chauffe donnée par le constructeur. Te1 ' Température extérieure suivant la région (voir fichier xls). System ' 0 = Brûleur et 1 = Vanne à 3 voies. Tempo ' Valeur à déterminer pour la commande de la vanne. Liste des tâches: ----------------- Programme Principal. ******************** - Initialiser le micro-contrôleur AtMega16 ou 32. - Créer et initialiser les variables (mettre des valeurs par défaut lors du premier démarrage du µ-Contrôleur, ensuite celles-ci pourront être modifiées via la connexion série et le PC. - Initialiser les Interruptions (nécessaire pour la commande de vanne 3 voies, il faut choisir un Overflow du timer provoquant une interruption survenant plus ou moins toutes les secondes). - Initialiser et lire les températures des 3 DS18B20-PAR (Sonde 1Wire). - Lire les Dip-Switches ( Voir tableau en NB1 ). - System 0 ou 1 ' Prédéfini suivant le système à optimiser. Si System = 1 ' Optimisation par vannes à 3 voies ( Voir NB2 ). Démarrer Les Interruptions' Uniquement pour la commande de vanne à 3 voies, ' pas nécessaire avec la commande Brûleur. Relais3 = ' Commande de la fermeture de la vanne et on allume ' la Led3. Pause 75 secondes ' Fermeture totale = uniquement l'eau de retour. Relais3 ' Arrêt de la commande de la fermeture de la vanne ' et on éteint la Led3. Relais2 = ' Commande de l'ouverture de la vanne et on allume ' la Led2. Pause 22 secondes ' Ouverture à environ 30% = mélange faible de l'eau ' départ chaudière et important de l'eau de retour. Relais2 ' Arrêt de la commande d'ouverture de la vanne et ' on éteint la Led2. FinSi Début de la boucle infinie Si Thermostat = 1 Aller à la routine LitSondeT Aller à la routine CourbeDeChau Aller à la routine CommandeChauffage FinSi Aller à la routine Communication Fin de la boucle infinie ******************************************************************************* Liste des Sous-Routines ******************************************************************************* Routine LitSondeT ' Lecture des sondes de températures. ------------------------------------------------------------------------------- Lire la sonde Teau ' Température eau du chauffage. Lire la sonde Ti ' Température intérieure. Lire la sonde Te ' Température extérieure. Aller à la routine CalculTempMoy ' Routine de calcul de la température moyenne. Fin de LitSondeT ------------------------------------------------------------------------------- Routine CalculTempMoy ' Calcul la température moyenne. ------------------------------------------------------------------------------- Si Ti > TiMax ' Si température intérieure est > que Ti maximum. TiMax = Ti ' Température intérieure maximum = Ti. FinSi Si Ti < TiMin ' Si température intérieure est < que Ti minimum. TiMin = Ti ' Température intérieure minimum = Ti. Finsi TiMoy = (TiMin + TiMax)/2 ' Calcul de la température intérieure moyenne. Fin de CalculTempMoy Retour à la routine LitSondeT ------------------------------------------------------------------------------- Routine CourbeDeChau ' Calcul la courbe de chauffe. ------------------------------------------------------------------------------- Si CycleCourbe = 1 ' Après un cycle, on peut optimiser. Teau = Pente X Te + Pivot '(y = ax + b). Si TiMoy > TCons ' Diminution de la Pente. Pivot = Pivot ' Pivot = 63,125°C. Pente = (Teau1-(TiMoy-TCons)-Pivot)/Te1 ' Teau1 = 80°C , Te1 = -9°C. FinSi Si TiMoy < TCons ' Déplacement du point Pivot vers le haut. Pente = Pente ' Pente = -1,875. Pivot = Pivot + (TCons-TiMoy) Teau = Pente X Te1 + Pivot FinSi Si Teau => Teau1 Pente = (Teau1 - Pivot) / Te1 Finsi Finsi Fin de CourbeDeChau ------------------------------------------------------------------------------- Routine CommandeChauffage ' Commande du chauffage. ------------------------------------------------------------------------------- Si Ti < TCons ' Si la temp. intér. est < la temp. de consigne. Relais1 = ' Commande du relais de la pompe du chauffage et ' on allume la Led1 rouge. Finsi Si Teau = Ti ' Si la température d'eau = la temp. intérieur, Relais1 = ' arrêt du relais de la pompe du chauffage et ' on éteint la Led1 rouge. Finsi Si System = 0 ' 0 = commande du brûleur. Si TeauM < TeauC - HysEau Relais2 = ' Brûleur en marche et allumage de la Led2 rouge. FinSi Si TeauM > TeauC + HysEau Relais2 = ' Arrêt du brûleur et extinction de la Led2 rouge. FinSi FinSi Si System = 1 ' Commande par vanne à 3 voies. Si TeauM < TeauC - HysEau Si TempoOld > 0 ' Test si la temporisation toujours active. Relais3 = ' Un seul relais de vanne activé en même temps. Relais2 = ' Ouverture de la vanne et Led2 rouge ON. FinSi Si TempoOld = 0 ' Test la fin de la temporisation. Relais2 = ' Arrêt de la commande vanne et Led2 rouge OFF. TempoOld = Tempo ' Remise à la valeur initiale. FinSi FinSi Si TeauM > TeauC + HysEau Si TempoOld > 0 ' Test si la temporisation toujours active. Relais2 = ' Un seul relais de vanne activé en même temps. Relais3 = ' Fermeture de la vanne et Led3 rouge ON. FinSi Si TempoOld = 0 ' Test la fin de la temporisation. Relais3 = ' Arrêt de la commande vanne et Led3 rouge OFF. TempoOld = Tempo ' Remise à la valeur initiale. FinSi Finsi Finsi CycleCourbe = 1 Fin de CommandeChauffage ------------------------------------------------------------------------------- Routine Interruptions ' Provoque l'incrémentation de TempInt. ------------------------------------------------------------------------------- Arrêter les Interruptions TempoOld = TempoOld - 1 ' On décrémente la valeur de Tempo. Redémarrer les Interruptions Fin de Interruptions ------------------------------------------------------------------------------- Routine Communication ' Communication avec le PC via le port série ------------------------------------------------------------------------------- Si Port RS232 connecté Communication sur le port série Finsi Fin de Communication ------------------------------------------------------------------------------- NB1: TABLEAU **** Voici les positions des DIP-SWITCHES permettant la sélection de la température de la pièce de référence. |-----------------------------------| | Num.| DEC.| BIN. | Température | |-----------------------------------| | 1 | 0 | 0000 | 17.5 | | 2 | 1 | 0001 | 18.0 | | 3 | 2 | 0010 | 18.5 | | 4 | 3 | 0011 | 19.0 | | 5 | 4 | 0100 | 19.5 | | 6 | 5 | 0101 | 20.0 | | 7 | 6 | 0110 | 20.5 | | 8 | 7 | 0111 | 21.0 | | 9 | 8 | 1000 | 21.5 | | 10 | 9 | 1001 | 22.0 | | 11 | 10 | 1010 | 22.5 | | 12 | 11 | 1011 | 23.0 | | 13 | 12 | 1100 | 23.5 | | 14 | 13 | 1101 | 24.0 | | 15 | 14 | 1110 | 24.5 | | 16 | 15 | 1111 | 25.0 | |-----------------------------------| Note:- La sonde 1Wire pour Ti est placée à côté du thermostat. VANNE A TROIS VOIES: -------------------- Vanne Honeywell motorisée achetée sur Ebay: Moteur de commande: ML6420A3015-3, payé 117,00 € avec les frais de port. Vanne: V5013N1063, 1" 3-Way Globe Mixing Valve, payé 103,00 € avec les frais de port. Spécifications du constructeur: Alimentation : 220 volts AC 50Hz Course du piston : 20 m/m Durée du déplacement : 1 minute Tests: Durée du déplacement de 0 à 100% (20 m/m de course): 72 secondes NB2: **** Pour l'initialisation de la vanne à 3 voies, on commande la vanne dans le sens de fermeture totale d'arrivée d'eau chaude de la chaudière, donc 100% du retour des radiateurs, pour une durée de 75 secondes afin d'être certain d'atteindre la butée, il n'y a pas de risque, car la commande est protégée par des fins de courses. Ensuite, on commande la vanne en sens inverse pour une durée de 22 secondes afin de la positionner à environ 30%. Pour la suite, c'est l'optimiseur qui pilotera la vanne à 3 voies. Chaque seconde de commande de la vanne représente une variation de 100/72 = 1,39 % ou une course de 20/72 = 0,28 mm. Remarques: 1) - Sachant que la température de la chaudière est réglée au minimum à 65°C pour les raisons connues, on choisit une petite ouverture (30%), car il est préférable d'envoyer dans les radiateurs de l'eau tiède en place d'eau trop chaude afin d'éviter que les radiateurs qui seraient dans le cas contraire, très chauds mettent un certains temps pour refroidir et contrarie la régulation (coup de chaleur). Il en est de même pour une chaudière, celle-ci démarre avec une température assez basse et chauffe progressivement. 2) - Lors du câblage des relais, si cela est possible au niveau des contacts, prévoir que si certains contacts restaient "collés", l'autre relais ne puisse pas s'enclencher. *******************************************************************************