Date de première parution 29/4vril 2013.
Schéma de principe :
Le réel :
Le problème est de mettre en marche et de couper le ventilateur
qui va
insuffler
l'air extérieur au bon moment. A l'allumage, il
faut attendre que la température au dessus de l'insert soit
suffisante pour réchauffer l'air extérieur. Le soir, à l'extinction du feu, il faut penser à éteindre le
ventilateur à temps ( généralement pendant la nuit ). Si non, l'air froid extérieur ne va
plus être réchauffé par le foyer et va rapidement
refroidir la pièce faisant ainsi perdre tout le bénéfice acquis
précédemment !
Heureusement, les microcontrôleurs vont nous
libérer de ces contraintes et gérer automatiquement
toutes les procédures.
On va même en profiter pour tenter de gagner quelques
degrés l'été en rafraîchissant la maison la
nuit lorsqu'il fait plus frais dehors que dedans. Il suffit par cela de
mettre un interrupteur "été-hiver" et quelques lignes de
programme en plus.
Ce n'est pas une clim, mais si l'on peut gagner quelques degrés
en période chaude, c'est toujours ça de pris, pour
un coût dérisoire. Lorsque le ventilateur fonctionne, il
consomme 30 W. La consommation du circuit de commande est
dérisoire.
J'ai choisi d'utiliser le microcontrôleur PICBASIC 3B. La doc et
les logiciels de programmation sont gratuits. La doc est en
français, il se programme dans un langage très proche du
Basic, que je maîtrise assez bien. Le kit platine de prototypage, avec tous
les composants, est très abordable et permet de réaliser très facilement le
montage souhaité.
Ici toutes les infos et la
possibilité de télécharger et de commander tout ce dont on a besoin
pour sa mise en oeuvre :
http://www.lextronic.fr/P755-module-picbasic-3b.html
Ce principe peut très bien être mis en oeuvre avec un autre
microcontrôleur, l'Arduino,
par exemple, microcontrôleur très populaire, mais dont le
langage
est plus proche lanage C et C+, que je maîtrise moins bien. Mais
je vais essayer de m'y mettre car je ne parviens pas à
programmer les PICBASIC à partir de Windows 7.
Ici mon montage, c'est pas du grand art, mais ça fonctionne parfaitement :
En bas , au milieu, on voit, collé sur la façade, un circuit
capteur de température, le DS1620. Ce circuit donne la
température de la pièce grâce à une liaison série synchrone 3 fils. Il y en a
deux autres, un à l'entrée d'air extérieur et le
dernier au dessus de l'insert.
Ici le datacheet du DS1620 : http://datasheets.maximintegrated.com/en/ds/DS1620.pdf
Ici le module de commande installé, en fonctionnement. :
Le programme du PICBASIC :
=================================================================================================
CONST DEVICE = 3B
' Déclaration du composant utilisé
'************************************************
' PROGRAMME DE GESTION TEMPÉRATURE
' PICBASIC 3B = DS1620
' J.C.
SULKA
27/04/2013
' ***********************************************
'ports utilises
'0 = MOT ' Moteur ventilateur
'1 = CLK1 ' Capteur INT
'2 = RTS1 ' Capteur INT
'3 = DQ1 ' Capteur INT
'8 = CLK2 ' Capteur INSERT
'9 = RTS2 ' Capteur INSERT
'10 = DQ2 ' Capteur INSERT
'11 = CLK3 ' Capteur EXT
'12 = RTS3 ' Capteur EXT
'13 = DQ3 ' Capteur EXT
'14 = INTER ' INTER
ETE/HIVER
'---------------------DECLARATION DES VARIABLES-------------------------
CONST MOT = 0
CONST CLK1 = 1
CONST RTS1 = 2
CONST DQ1 = 3
CONST CLK2 = 8
CONST RTS2 = 9
CONST DQ2 = 10
CONST CLK3 = 11
CONST RTS3 = 12
CONST DQ3 = 13
CONST INTER = 14
DIM EH AS byte
'Ete Hiver
DIM tint AS INTEGER 'Temperature interieure
DIM tins AS INTEGER 'Temperature insert
DIM text AS INTEGER 'Temperature exterieure
DIM inter AS Byte
'Inter
'---------------------INITIALISATION DE L'AFFICHEUR LCD-------------------
SET PICBUS
HIGH 'met le bus a
19200 bps
LCDINIT
'initialise
l'ecran
LCD
CSROFF
'supprime le curseur de l'écran
tins = 20: tint = 20: text = 20
goto affichage
'---------------------LECTURE DES CAPTEURS DE TEPERATURES-----------------
lecture:
OUT RTS1,1
SHIFTOUT CLK1,DQ1,0,&HAA
tint = SHIFTIN(CLK1,DQ1,0,9)
'lecture tint (température
intérieure)
OUT RTS1,0
tint = tint / 2
OUT RTS2,1
SHIFTOUT CLK2,DQ2,0,&HAA
tins = SHIFTIN(CLK2,DQ2,0,9)
'lecture tins (température insert)
OUT RTS2,0
tins = tins / 2
OUT RTS3,1
SHIFTOUT CLK3,DQ3,0,&HAA
text = SHIFTIN(CLK3,DQ3,0,9)
'lecture text (température extérieure)
OUT RTS3,0
text = text / 2
'---------------------GESTION DE L'AFFICHAGE--------------------------
affichage:
LOCATE 0,0
PRINT "Int="
PRINT DEC(tint,2,0)
LOCATE 9,0
PRINT "Ext="
PRINT DEC(text,2,0)
LOCATE 0,1
PRINT "Insert="
PRINT DEC(tins,2,0)
LOCATE 10,1
PRINT " "
INTER = KEYIN(14,25)
IF INTER = 1 THEN
LOCATE 11,1 : PRINT " ETE "
ELSE
LOCATE 11,1 : PRINT " HIV "
END IF
'---------------------GESTION VENTILATEUR------------------
ete:
IF text < tint THEN
OUT MOT,1
ELSE
OUT MOT,0
END IF
GOTO pause
hiver:
IF tins > 40 or text > tint THEN
OUT MOT,1
ELSE
OUT MOT,0
END IF
GOTO pause
pause:
DELAY 5000 'Pause 5 secondes
GOTO affichage
=================================================================================================
Mes premières auto-critiques :
Le capteur de température intérieur est trop près de la cheminée et donne
des infos trop optimistes.
Il faudra que je prévois une prise sur la face avant afin
d'éviter de tout démonter pour modifier et faire évoluer le
programme.
Le transfo contribue à augmenter la température dans le coffret
contenant l'électronique qui hébergeait aussi le capteur de température
intérieur.
J'ai donc déporté ce capteur de température et tout fonctionne maintenant à merveille !
JC.
Dernière modification 4/6/2016. http://sulka.fr/