Open GraiNMaster/Réalisation
La réalisation
Aperçu du matériel
- Arduino MEGA
- Ecran "LCD keypad shield"
- Adaptateur 5V
- SCR 10000W
- sonde DS18B20
- Boitier électrique
- résistances 4.7Kohm
- tournevis
- Câble
- Module lecteur SD
- Fer à souder
- Soudure
- (non photographié) : un multimètre
Version standard
Voici le schéma de principe pour la réalisation :
(cliquer pour agrandir)
Le schéma de base des branchements de l'Arduino Mega provient du site www.pighixxx.com
Avant de sortir le fer à souder, gardez ce schéma imprimé en grand, ou à portée de main.
Préparation de la sonde 1 wire DS18B20
Il va nous falloir une résistance de 4.7Kohm. Sa valeur n'est pas critique, si vous n'avez qu'une 3K ou une 5.1Kohm sous la main, ça marchera quand même.
Soudez la résistance entre les fils + et signal :
Préparation du SCR (variateur de puissance 10KW)
Il va ici falloir sacrifier une rallonge électrique, que nous viendrons relier sur le bornier.
Coupez la rallonge en son centre (quand elle est débranchée...)
Puis dénudez les 3 fils.
Ensuite, ça parait bête mais on va re-brancher un des fils qu'on a coupé :
Ce fil c'est le fil de terre :prenez le fil de terre côté prise femelle, et rassemblez-le avec un domino sur le fil de terre côté prise mâle.
Si vous avez un châssis métallique, vous pouvez en profiter pour relier votre châssis à la terre.
Ensuite, branchez les fils phase et neutre de la prise mâle sur le côté noté "INPUT", et les fils phase et neutre de la prise femelle sur le côté "OUTPUT"
Ça c'était la partie facile.
Maintenant repérez ce connecteur >
C'est celui où se branche le petit afficheur qui a été fourni avec votre SCR.
On va se servir de ses broches pour pouvoir le piloter .
On en utilise que 3 sur 4, attention à bien repérer le sens.
En récupérant le câble fourni, vous n'aurez pas à modifier le SCR.
Branchez les fils repérés DETECT et GATE sur les bonnes broches de l'arduino, et GND sur une des nombreuses pins GND disponibles.
L'afficheur LCD
Là, rien de plus simple, on le branche comme n'importe quel shield. Par contre comme c'est prévu à l'origine pour un UNO beaucoup plus petit que le MEGA, il faut veiller à bien l'aligner sur les bonnes broches.
Le lecteur SD card
Ici, rien de très compliqué, on câble MOSI du lecteur SD sur MOSI de l'arduino, MISO sur MISO, etc....
Les broches MISO MOSI SCK GND et +5V peuvent être récupérées sur le header ISP 6 broches
Attention à bien relier SS (slave select) parfois nommé CS à la masse, sinon ça ne fonctionnera pas
La carte SD qui sera utilisée devra être formatée en FAT32
Le buzzer :
Si vous voulez mettre un buzzer, la pin 40 est attribuée à cette fonction par défaut.
Tableau récapitulatif des branchements
Le code
Environnement nécessaire
Il vous faudra l'environnement Arduino dans sa dernière mouture. Le code à été ecrit sur la V1.6.8
Librairies externes nécessaires
La plupart se trouvent sur le site officiel d'arduino
- PID_v1 par Brett Beauregard http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction
- EEPROMex par Thijs Elenbaas
- Timer-master par Simon Monk http://srmonk.blogspot.com/2012/01/arduino-timer-library.html
- Adafruit_ADS1015 Par la société Adafuit
- OneWire (contributeurs multiples) http://www.arduino.cc/playground/Learning/OneWire
- dallas-temperature-control (contributeurs multiples)
Code source
Téléchargez le code source sur mon google drive
ou mieux sur GitHub
Si toutes les bibliothèques sont correctement installées, vous ne devriez pas rencontrer d'erreurs de compilation.
Contribuer au code
Le code source est très commenté. Mais ce sont des commentaires sortis tout droit de mon esprit malade, donc il est possible que ça ne soit pas clair du premier coup.
Si vous souhaitez discuter d'améliorations, ou avoir plus d'informations sur le fonctionnement du code, vous pouvez toujours passer par le biais du forum.
Si vous avez trouvé moyen de faire des miracles avec quelques optimisations, tenez moi au courant, je mettrai à jour le code source, afin que l'amélioration bénéficie à tous.
Configurer le GraiNMaster
Si vous être arrivés à flasher le code dans votre Arduino, et que les morceaux de câble sur la table du salon n'ont pas causé votre divorce, vous devriez approcher du but.
Mais il reste une étape importante : la configuration de l'automate.
Car vous devez vous en douter il ne faudra pas les mêmes réglages pour une cafetière électrique, et pour une cuve de brassage de 100L ...
Comme la configuration directe sur automate nécessiterait des complications notoires dans le code, j'ai choisi d'implémenter un système de fichier de configuration depuis la carte SD
C'est un fichier texte, qui doit se nommer SETUP.GRM et doit se trouver à la racine de votre carte SD.
Bonne nouvelle, vous n'avez pas grand chose à faire pour le créer : si une carte SD est présente dans l'automate, valider les étapes de réglage et le fichier de config va se créer tout seul.
Le plus dur sera de le modifier ensuite pour ajuster le fonctionnement.
Le fichier s'ouvre avec un banal éditeur texte, et se présente sous la forme "NOMDUPARAMETRE=valeur,"
par exemple : THERMPIN2=1,THERMPIN1=3,OFSETPRBE=138,(etc...)
Voici un tableau récapitulatif des fonctions :
Si quelqu'un est assez doué en programmation Windows, Mac et/ou Linux il peut facilement créer une interface utilisateur pour faciliter la modification des paramètres.
Première utilisation
Structure du programme :
Dernières vérifications
- Vérifiez une dernière fois que toutes les règles de l'électricité sont respectées
- Branchez une lampe à incandescence sur la sortie
- Allumez !
- Si aucun nuage de fumée ne s'est produit, c'est bien ! on va continuer
- Observez l'écran LCD, vous devez voir s'afficher les écrans suivants
Si une carte SD est reconnue, et qu'elle a bien son fichier de config vous verrez ceci :
Si vous voyez 25 paramètres lus ou une valeur différente du maxi, c'est qu'un des paramètres est mal inscrit dans le fichier de config.
Ensuite, le menu du premier réglage s'affichera :
L'afficheur LCD est muni de 6 touches dont voici les fonctions :
- SELECT : permet de valider un champ et de passer au suivant. Dans les pages de réglage, permet de basculer du réglage de la température au réglage du temps
- LEFT : touche "-" Diminue la valeur de temps ou de température. Les températures se règlent par pas de 0.25°C, les temps se règlent en minutes
- RIGHT : touche "+" Augmente la valeur de temps ou de température.
- UP : affiche la page de réglage suivante, ou saute une étape en mode brassage
- DOWN : affiche la page précédente, ou annule l'étape en cours pour revenir à l'étape précédente.
- RESET : comme son nom l'indique, cela va remettre le programme à zéro. Vos réglages ne seront pas perdus car ils sont enregistrés en EEPROM ou sur la carte SD
Note : le bouton RESET est très mal placé sur le module LCD, il est facile d'appuyer dessus par accident. Heureusement il est assez simple de déporter les boutons utiles ailleurs, ou de supprimer ce bouton mal placé
A l'aide ça ne marche pas !
Pas de panique, commencez par relire le wiki, peut être que vous êtes passés à côté d'une info.
Assurez vous que le matériel est bien celui recommandé (et pas une copie à peu près identique)
Sinon il vous reste le forum, dans la section brassage automatisée.
Si vous préférez discuter de votre problème en direct, passez par le chat