Construction d'une étuve régulée par micro-processeur

Tous vos montages et bricolages liés aux observations naturalistes.
Règles du forum
Tous vos montages et bricolages liés aux observations naturalistes.

Re: Construction d'une étuve régulée par micro-processeur

Messagede Christian » 22 Mar 2009 02:38

Bonjour Jean-Marie,

Chapeau, ton dernier graph. (régulation) me semble bien performant ! :chap:
J'ai beaucoup apprécié le développement, pas si simple un thermostat !!
C'est marrant aussi car je suis sûr que pas deux personnes auraient pris le même chemin ;)

Le prochain défi est de concevoir une HID (Human Interface Device), c'est-à-dire un système pour communiquer avec le microcontrôleur. En effet, il faut lui communiquer la T° désirée, éventuellement la durée du timer, ainsi que la présence éventuelle d’une alarme acoustique à la fin du timer.

Ca c'est de la tarte (le dessert) à côté de ce que tu as réalisé ! ;)
Ecran lcd + 2 boutons ... 3 pour le luxe, piezo et codage d'un menu ...

Idée d'amélioration :Communication / gestion avec un PC.
C'est pas très difficile et c'est l'occasion d'apprendre. Même si pas indispensable ici, on peut faire des graphiques en temps réel et toute sorte de programmation ...
Mais bon, les poussins devront attendre un peu plus ! :D :D

ps: je serais intéressé de voir ton code source, en MP peut-être ... ou alors tu peux aussi l'envoyer ici en fichier document (fichier attaché) ?
Bien amicalement, Christian
Microscope : Leitz Ortholux I - Stéréomicroscope : Novex AP5 - Divers bancs macro
Photos: Nikon (D70) D90, Canon A75, MicCam Tucsen 3 mpx
Soft: Photoshop - MicroCartouche - Helicon focus -Stepduino (stacking automatisé)
Site perso (ancien) ici

Avatar de l’utilisateur
Christian
Coadmin
Coadmin
 
Messages: 4790
Inscription: 28 Aoû 2007 20:54
Localisation: Entre Alpes et Jura
Prénom: Christian

Re: Construction d'une étuve régulée par micro-processeur

Messagede JeanMarie » 22 Mar 2009 15:23

Hello Christian,

Merci pour le chapeau, mais je n'ai guère le mérite de faire un travail lourd et difficile car en fait je me fais plaisir. De plus, le forum m'aide à présenter le travail avec rigueur et à constituer ainsi une archive précieuse, en premier lieu pour moi mais aussi pour les autres bien sûr.

pas si simple un thermostat

Ce serait simple de réguler un four ou une étuve si, pour obtenir 50°, j'acceptais une variation de 40 à 60°. Le problème est que j'exige une précision au moins équivalente à une étuve professionnelle très chère.

Ecran lcd + 2 boutons, piezo et codage d'un menu ... Ca c'est de la tarte

J'adore la tarte mais je me sens comme un bébé qui commence à manger seul. Il en fout plus à côté que dans sa bouche. :lol: Mais je suppose que c’est comme ça qu’on doit se sentir quand on fait quelque chose pour la première fois.
Au début, je pensais utiliser des afficheurs LED-7 segments pour afficher la T° (car la face avant n'offre pas assez d'espace pour un écran LCD) mais je me suis rendu compte qu’un écran LCD permettait d’afficher beaucoup plus : la T° désirée, éventuellement les maxima et minima, la durée désirée, le temps restant, l’enclenchement de l’alarme. La solution est peut-être de prévoir un boitier fixé sur la face supérieure de l’étuve et regroupant l’écran LCD, les boutons de commande et l’électronique. Cela aurait aussi l’avantage de mettre ces choses à l’abri de la chaleur. Cela me fait penser qu’avant de remonter le capot extérieur, il serait bon de mettre une couche de laine de verre entre la paroi intérieure et la paroi extérieure. Il faudra probablement refaire toutes les mesures de calibrage après que l’étuve sera remontée car les pertes de chaleur seront moindres.

Idée d'amélioration :Communication / gestion avec un PC

Je prévoyais déjà une prise spéciale pour la programmation du microcontrôleur sans devoir tout redémonter. Mais ton idée d’une communication avec le PC est excellente. Pour le moment, je ne sais pas du tout comment faire. Mon PC comporte encore un port série et un port parallèle. Il paraît que le port parallèle est particulièrement facile à utiliser (encore que je ne sache pas du tout comment on fait pour envoyer et recevoir des informations par le port parallèle sur le PC). Mais il y a un autre problème : les PC modernes n’ont plus de port série ou parallèle. Tout passe par l’USB (pour le moment). Il faudrait donc apprendre à communiquer avec le microcontrôleur par USB. C’est certainement possible car le programmateur que j’utilise (USBasp) pour envoyer le programme au microcontrôleur est lui-même raccordé au PC par USB et que ce programmateur est en fait constitué d’un Atmega8, c’est-à-dire du même microcontrôleur que celui que je programme.

USBasp JMCo.jpg


je serais intéressé de voir ton code source

Je publierai sans problème le code source, mais pour le moment c’est un peu le bordel car j’ai fait de multiples essais. Il y a donc des parties de code que je mets en commentaire ou que je réintroduis selon les besoins, d’autres parties qui ne servent à rien mais qui sont là car j’ai copié des morceaux de programme à gauche et à droite. Lorsque la partie « menu » sera terminée, il faudra que je fasse un grand nettoyage et que j’ajoute plein de commentaires et d’explications.
Jean-Marie
Avatar de l’utilisateur
JeanMarie
membre
membre
 
Messages: 274
Inscription: 18 Mar 2008 09:13
Localisation: Belgique (Arlon)

Re: Construction d'une étuve régulée par micro-processeur

Messagede Christian » 22 Mar 2009 16:01

Re Jean-Marie,

Je trouve aussi que l'écran lcd est bien plus pratique !

En ce qui concerne les ports PC :
Pour ma part je favorise le port série car simple à mettre en œuvre et moins gourmand en entrées/sorties que le port //.
Sur les nouveaux PC (sans ces ports), on peut simuler un port série à travers l'USB.
Bien sûr l'idéal serait de travailler entièrement sur l'usb (plus rapide) mais c'est beaucoup plus compliqué je trouve, de plus il faut un mic. qui supporte directement ces protocoles !!
(enfin comme je connais mal ce port, ce serait aussi une piste à creuser …)

cf => http://www.lextronic.fr/R117-developpement-usb.html

usb-serie1.jpg



Côté microcontrôleur il te faut un chip Max232 et une prise série femelle (RS232 courte).
Ce circuit va convertir les niveaux (10v je crois) en niveau TTL (moins de 5V) et gère pas mal d'autres choses.
Cela occupera au minimum deux broches du microcontrôleur (émission / réception soit rx - tx)

ici un exemple avec un PicBasic (on trouve aussi des modules prêts à l'emploi !)

max232.jpg


Voir aussi ce tout petit module de conversion USB-série qui me semble intéressant ! http://www.lextronic.fr/P1639-module-de ... sbmb5.html
De ce que j'ai compris et comme les niveaux ne dépassent pas 3.3V on pourrait se passer du Max232 et utiliser (si présent) directement les ports rx-tx d'un microcontrôleur ...
Ce serait plus économique et pratique car ici un simple câble mini-usb standard est suffisant !
(en revanche il faut installer un driver mais il est fourni avec)

usb-serie2.jpg


Ensuite sur le PC, soit au plus simple tu relèves tes données sur un petit terminal (par exemple Hyper Terminal déjà présent sur Windows) soit tu développes un petit utilitaire (Quick Basic, Visual basic, C, Profilab Expert, tableur Excel (en VBA), etc …) qui te permettras de recevoir les données et piloter ta machine infernale !
Si ça t'intéresse, je peux te fournir des exemples simples en Visual basic 6.

nb: Du moment qu'on a une transmission série ou usb, on peut tout imaginer : communication avec un PDA, PC, Internet (même Wifi), alerte via SMS, etc ... :D

Pour ton code source, c'est surtout un extrait de la partie régulation qui m'intéresserait, même si c'est un peu le foutoir (je connais bien le problème) c'est pas grave !
Mais je comprends très bien que tu veuilles présenter un truc propre ;)
A+
Bien amicalement, Christian
Microscope : Leitz Ortholux I - Stéréomicroscope : Novex AP5 - Divers bancs macro
Photos: Nikon (D70) D90, Canon A75, MicCam Tucsen 3 mpx
Soft: Photoshop - MicroCartouche - Helicon focus -Stepduino (stacking automatisé)
Site perso (ancien) ici

Avatar de l’utilisateur
Christian
Coadmin
Coadmin
 
Messages: 4790
Inscription: 28 Aoû 2007 20:54
Localisation: Entre Alpes et Jura
Prénom: Christian

Re: Construction d'une étuve régulée par micro-processeur

Messagede JeanMarie » 22 Mar 2009 22:16

Hello Christian,

Merci pour tes infos, ce sont d'excellentes nouvelles et je vois que je ne serai pas trop perdu, même si les nouveaux PC n'ont plus de port série. Pour le moment, je dispose encore d'un port série sur mon PC, donc cela ne devrait pas être trop compliqué d'établir une liaison série à l'aide d'une puce MAX232.

Pour ce qui est du Terminal sur le PC, je ne savais même pas que Windows en contenait un. J'ai fait une recherche dans les répertoires de Windows à la recherche de "*terminal.*" et "hyperterminal.*" mais je n'ai rien trouvé. Pourrais-tu me préciser le nom exact du programme ?
Je vois par ailleurs que tu travailles avec Visual Basic. A part BASCOM maintenant avec le microcontrôleur, ma dernière expérience de Basic remonte à environ 1982 - 1984, du temps où je me suis lancé dans la programmation de l'Apple IIe en Basic Applesoft. Après une petite expérience en Assembleur 6502 (Apple) je suis passé au PC AT 80286 d'IBM et j'ai opté pour le Turbo Pascal. Ce n'est pas si facile de me remettre maintenant au Basic. J'ai aussi regardé un peu vers le langage C mais certaines expressions m'ont paru si ésotériques que j'ai préféré me remettre au Basic.

Pour ton code source, c'est surtout un extrait de la partie régulation qui m'intéresserait, même si c'est un peu le foutoir (je connais bien le problème) c'est pas grave !
Mais je comprends très bien que tu veuilles présenter un truc propre

Tu me le demandes si gentiment que je n'ai pas pu résister. J'ai donc fait un peu de nettoyage, j'ai sélectionné les parties concernant la régulation et j'y ai ajouté des commentaires. Si quelque chose n'est pas clair, n'hésite pas à demander des éclaircissements. J'envoie le programme sous forme de copie d'écran car si je copie le programme dans Word, les couleurs sont perdues et l'ensemble est moins lisible.
Variables principales.jpg

Programme1.jpg

Programme2.jpg


A la ligne 233 apparaît une valeur de -120. L'explication est développée à la ligne 268.
Les lignes 238 à 240 n'ont rien à voir.

Si mes explications sont suffisamment claires, tu vois que la régulation n'a rien de sorcier.

En résumé,
    -On chauffe à plein temps pendant une durée indiquée par la formule 1
    -On chauffe ensuite pendant 2 min maximum avec un %age de cycles indiqué par la formule 2
    -Si insuffisant, on complète par ce %age + 16W jusqu'à T° désirée
    -On oscille autour de la T° désirée en alternant ce %age + ou - 16W
Dernière édition par JeanMarie le 23 Mar 2009 13:10, édité 1 fois.
Jean-Marie
Avatar de l’utilisateur
JeanMarie
membre
membre
 
Messages: 274
Inscription: 18 Mar 2008 09:13
Localisation: Belgique (Arlon)

Re: Construction d'une étuve régulée par micro-processeur

Messagede Christian » 23 Mar 2009 11:07

Re Jean-Marie,

Merci pour ce code fort bien documenté !
Effectivement, une fois les calculs et tests réalisés en amont cela reste très ... basique.
On voit d'ailleurs l'avantage d'un petit microcontrôleur et sa programmation à la demande !

Pour le terminal Windows, son nom exact est hypertrm.exe. Il doit être présent sur 98-2000-XP, sur Vista j'en ai aucune idée …
(si tu fais une recherche, il faut activer la recherche dans les dossiers et fichier cachés … du bilou tout craché …)
Si tu ne le trouves toujours pas il faut l'installer en passant par la configuration de Windows.
A part ça, ce petit logiciel est très limité mais pratique tout de même pour vérifier que la communication sérielle fonctionne bien !
Voir aussi http://www.modemsite.com/56K/x2-hyperterm.asp
Je vais te contacter sous peu en MP pour d'autres combines …
A+
Bien amicalement, Christian
Microscope : Leitz Ortholux I - Stéréomicroscope : Novex AP5 - Divers bancs macro
Photos: Nikon (D70) D90, Canon A75, MicCam Tucsen 3 mpx
Soft: Photoshop - MicroCartouche - Helicon focus -Stepduino (stacking automatisé)
Site perso (ancien) ici

Avatar de l’utilisateur
Christian
Coadmin
Coadmin
 
Messages: 4790
Inscription: 28 Aoû 2007 20:54
Localisation: Entre Alpes et Jura
Prénom: Christian

Re: Construction d'une étuve régulée par micro-processeur

Messagede JeanMarie » 23 Mar 2009 13:57

Hello Christian,
Je suis parti à la recherche de "hypertrm.exe". Même dans les fichiers cachés, il n'y est pas. Cela, ce n'est plus du Bill Gates, c'est du Water Gates :D

Je ne sais pas trop comment l'installer à partir du disque Windows.
Selon un certain nombre de sites trouvés sur Google, il y aurait une version gratuite ici:
http://www.hilgraeve.com/htpe/download.html

Mais je n'y trouve qu'une version payante...
Peut-être as-tu plus d'infos.
Jean-Marie
Avatar de l’utilisateur
JeanMarie
membre
membre
 
Messages: 274
Inscription: 18 Mar 2008 09:13
Localisation: Belgique (Arlon)

Re: Construction d'une étuve régulée par micro-processeur

Messagede JeanMarie » 05 Avr 2009 23:14

Hello les amis,

Merci, Christian, pour ton aide en MP.

Vous pourriez croire que je m'endors sur le projet.

Que nenni !

Ce serait même plutôt le contraire. En fait, je progresse lentement car j'ai tout à apprendre en même temps : la mise en oeuvre des microcontôleurs de Atmel, le Basic BASCOM et ses particularités, la programmation d'un menu interactif qui marche sur le simulateur mais pas dans la réalité, la mise en route d'une liaison série RS232, l'utilisation de l'Hyperterminal, et, pour couronner le tout, l'initiation à Eagle (super logiciel de dessin de schéma et typon électronique gratuit) + adaptation des librairies.

Voici d'ailleurs le schéma électronique dessiné dans Eagle:

Etuve.jpg
Exif et Meta MicroCartouche Etuve.jpg (69.02 Kio) Vu 9023 fois


En haut du schéma on voit le CI MAX232 qui adapte le voltage de la liaison série du PC au voltage 5V du microcontôleur.
Au milieu du schéma, on voit le µcontôleur Atmega8 à gauche et l'afficheur LCD au centre. Sur le schéma, le LCD a 2 lignes de 20 caractères. En réalité, mon afficheur fait 4 lignes de 20 mais le brochage est identique. Entre les deux se trouve la prise HE10 pour raccorder le programmateur. Celui-ci peut programmer le µcontrôleur sans le débrancher du circuit (= ISP, c'est-à-dire "In System Programmation").
Dans la partie inférieure gauche du schéma, on voit le raccordement des deux sondes de T°, l'une pour l'intérieur de l'étuve, l'autre pour la T° ambiante, puisqu'on travaille sur la différence entre ces T°. Dans la partie droite se trouve l'optocoupleur MOC3041 qui commande le triac BTA16-600. Celui-ci commande à son tour les résistances de chauffage de l'étuve.

Sur le schéma, il manque encore l'alimentation de 5V, les boutons de commande du menu et soit un buzzer, soit un petit oscillateur avec haut-parleur pour l'alarme.

La taille de l'afficheur (150 x 65 mm) empêche de l'implanter sur la face avant de l'étuve. Je dois donc rassembler l'électronique dans un boitier séparé. A ma dernière visite à mon petit magasin d'électronique de Luxembourg, il n'y avait pas de boitier de taille convenable. Finalement, j'ai déniché chez Carrefour une boîte à tartines solide et pas chère :D mesurant 205 x 130 x 45 mm, qui devrait faire l'affaire.

Que me reste-t-il à faire ?
    -Mettre en service la liaison série
    -Débugger le programme de menu
    -Y ajouter le programme de régulation de la T°
    -Mettre au point un programme de gestion du temps, aussi bien pour ajuster les temps de chauffe que pour gérer le timer et l'alarme
    -Compléter le schéma électronique
    -Réaliser le circuit imprimé et y implanter les composants
    -Installer l'ensemble dans le boitier et faire les raccordements électriques
    -Tout redémonter car il y aura certainement un bug quelque part
    -Lorsqu'il n'y aura plus de bug, il faudra réétalonner le système et corriger les équations

Allez, dormez bien.
Jean-Marie
Avatar de l’utilisateur
JeanMarie
membre
membre
 
Messages: 274
Inscription: 18 Mar 2008 09:13
Localisation: Belgique (Arlon)

Re: Construction d'une étuve régulée par micro-processeur

Messagede JeanMarie » 06 Avr 2009 23:10

Bonsoir,

J'ai rajouté quelques éléments sur le schéma et je vous le transmets cette fois en pdf car je crois que l'image est de meilleure qualité.

Etuve.pdf


En haut à droite, on voit un oscillateur monté sur une vieille connaissance: le NE555 qui sert à tout faire. La sortie est complétée d'un petit étage d'amplification avec le transistor BC547 (NPN à usage général) et d'un petit haut parleur. Selon les calculs, la tonalité est un son de 124 Hz. Oui, je sais, c'eût été plus simple d'employer un buzzer. Mais pour le buzzer, il fallait que j'aille au magasin alors que j'avais tout sous la main pour l'oscillateur.

J'ai également rajouté 4 boutons poussoir travaillant sur 2 interruptions et 3 pin ordinaires. Vu l'heure, je vous explique cela demain.
Jean-Marie
Avatar de l’utilisateur
JeanMarie
membre
membre
 
Messages: 274
Inscription: 18 Mar 2008 09:13
Localisation: Belgique (Arlon)

Re: Construction d'une étuve régulée par micro-processeur

Messagede JeanMarie » 07 Avr 2009 11:27

Selon le schéma que je vous ai transmis (et qui est améliorable) voici le fonctionnement des boutons-poussoirs.
Switch.jpg
Exif et Meta MicroCartouche Switch.jpg (70.44 Kio) Vu 8946 fois


Le switch qui sert à entrer et sortir du Menu est le SW4. Il est raccordé à l'interruption 0 (Int0 du µ) et à la masse (GND). Pour ceux qui ne sont pas familiers avec l'usage des Interruptions des µ, voici ce qui se passe. Lorsqu'on ne pousse pas sur le bouton, la Pin de l'Int0 est tirée à l'état +5V par la résistance R11 de 10K et le programme principal poursuit sa boucle sans être perturbé (je me rends compte que la résistance R15 est superflue). Dès qu'on presse SW4, le programme est immédiatement dérouté vers la routine de l'Int0 dont la seule fonction est de mettre à 1 le drapeau (Flag) indiquant que l'interruption s'est produite. Le programme revient alors à la boucle principale et teste en son temps l'état du drapeau. Lorsqu'il est à 1, le programme se dirige vers la sous-routine de Menu et le drapeau est remis à 0. Cette sous-routine teste elle-même le drapeau de l'Int0. S'il est à 1, cela indique que SW4 a été pressé une nouvelle fois. Dans ce cas on remet le drapeau à 0 et on retourne au programme principal. Si on n'utilisait pas une Interruption, le programme principal devrait lui-même tester l'état de la Pin à laquelle le bouton-poussoir est raccordé mais comme la boucle principale peut être relativement longue, on pourrait très bien appuyer brièvement sur le switch à un moment où le programme ne teste pas son état et dans ce cas, la pression du switch passerait inaperçue.

Les 3 autres boutons (SW1, SW2 et SW3) servent à l'intérieur de la sous-routine du Menu. SW1 sert à incrémenter la variable dans la zone saisie. Par exemple, si on est dans la zone de saisie de la T° désirée et que cette T° est de 45°, le fait d'appuyer sur SW1 fera passer cette T° à 46°. SW2 a la fonction inverse et décrémente la valeur saisie. Quant à SW3, il fait passer à la zone de saisie suivante. Par exemple, on passe de la T° désirée au Nbre d'heures désirées. Comme pour SW4, il serait bien utile de disposer d'une interruption pour chacun des boutons mais il ne reste que Int1 disponible. J'ai alors eu recours à une astuce que j'ai trouvée sur le Net dans un article traitant de l'interfaçage d'un clavier et d'un µ (désolé, je ne retrouve plus le lien). Voici de quoi il s'agit. Chaque bouton est relié à une Pin ordinaire (ici, les Pin PD4, PD5 et PD6) mais en plus, chacune de ces Pin est reliée à Int1 par l'intermédiaire d'une diode 1N4148. A l'état de repos, les Pin et Int0 sont maintenues à 1 (+5V) par l'effet des résistances de rappel de 10K. Lorsqu'un des boutons est enfoncé, la Pin correspondante passe à 0, ce qui fait en même temps passer Int1 à 0 à cause de la diode. Le zéro de Int1 ne peut se propager aux autres Pin car les diodes bloquent ce sens du courant. Int1 déroute le menu vers sa routine spécifique. Celle-ci teste immédiatement l'état des 3 boutons et positionne un drapeau en conséquence, de manière à ce que, de retour dans le menu, celui-ci effectue l'action demandée.

Grâce à toutes ces explications que je développe dans ce forum, je vois maintenant que je pourrais traiter les 4 boutons de la même manière, avec 4 diodes et une seule interruption. Cela simplifiera un peu le programme.
Jean-Marie
Avatar de l’utilisateur
JeanMarie
membre
membre
 
Messages: 274
Inscription: 18 Mar 2008 09:13
Localisation: Belgique (Arlon)

Re: Construction d'une étuve régulée par micro-processeur

Messagede JeanMarie » 07 Avr 2009 16:56

Voici la modification avec les 4 switch engendrant tous l'Int0.
Etuve2.jpg

Etuve2.pdf
Jean-Marie
Avatar de l’utilisateur
JeanMarie
membre
membre
 
Messages: 274
Inscription: 18 Mar 2008 09:13
Localisation: Belgique (Arlon)

PrécédenteSuivante

Retourner vers Bricolages divers

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités

cron