Voilà quelques explications techniques : comment ca marche ?
A. Le maître
Le microcontroleur utilisé (le cerveau !) est un PIC16F877. C'est un nouveau modèle de PIC, que j'ai choisi car il a d'énormes possibilités : 8Ko de mémoire Flash pour le programme (énorme : actuellement aquamate occupe à peine plus de 2Ko...), de nombreuses E/S, et bien sur un port I2C ! Qu'éspérer de mieux ?
A coté de celà, un circuit qui fait callendrier, un DS1302 de chez Dallas Semiconductor. Il gère date / heure, gestion des années bisextiles, et sauvegarde avec une pile externe de l'heure en cas de coupure de courant.
Ensuite, un MAX232, bien connu des electroniciens, qui permet de convertir le TTL du micro en RS232 pour un port série de PC.
Vient se brancher sur cette carte l'afficheur LCD 2 X 16 rétroéclairé standard ainsi que les 3 boutons poussoir de commande, reliés d'un coté à la carte, de l'autre à la masse.
Le téléchargement du programme se fait par le port série du PIC. En effet, ces PICs ont la possibilité de pouvoir écrire des données dans la FLASH (donc dans la mémoire programme). J'ai donc utilisé un "bootloader" qui est dans la derniere page mémoire du PIC et qui me permet de charger mes programmes facilement, par le port série d'un PC avec un programme de terminal calssique (voir les téléchargements).
B. L'alimentation
L'alimentation est censée pouvoir alimenter tous les periphériques qui viennent sur l'Aquamate, d'où sa taille assez importante. Elle produit du +5V pour les composants numériques et du 15V symétrique pour les composants analogiques (mesures en tous genres...). Elle doit pouvoir sortir un peu plus d'1A, mais je n'ai pas testé, en tout cas, ca marche. Les tensions d'alimentation sont transportées sur la nappe de fil qui relie les périphériques. Cela permet d'avoir un seul connecteur et de faire à chaque fois des périphériques simples, réduits au minimum.
L'alimentation et le maitre sont tous les deux dans le même boitier.
C. La carte à relais
J'ai mis ici 11 relais, avec une bobine faible consommation pour éviter de trop tirer sur l'alimentation. Ils sont chacun commandés par un transistor PNP. J'ai utilisé des composants I2C de chez Philips des PCF8574. Ce sont des E/S (Entrées/Sorties) I2C. L'un est entièrement en sorties, l'autre a ses 5 bits de poids forts en entrée (4 capteurs de niveau + 1 libre on ne sait jamais...).
D. Le thermometre
Le thermometre un composé d'un PIC16F84 très populaire... C'est un périphérique I2C "Slave" et l'I2C y est don géré en soft, ce PIC ne possédant pas de port I2C. Le capteur de temperature est un DS1820, donc tout numérique. Il donne les mesures à 0.5°C près mais il est possible de calculer la temperature précisément, ce que je fais. C'est une formule un peu complexe (division, additions en 16 bits...) qui se trouve dans la datasheet bien sur. Mais ca fonctionne très bien sur le petit 16F84 qui s'en tire très bien avec les calculs ;-).