Dernière mise à jour :
14/11/2010
Présentation
Le présent projet met en oeuvre un PIC 18F2420 et des CAN PCF8591 et permet de mesurer la valeur de
16 résistances indépendantes sur un réseau de centrale d'alarme
d'incendie.
Chacune des 16 entrées du testeur peut être raccordée sur
un capteur dont la valeur résistive dépend de son état (repos ou
alarme, connecté ou déconnecté). Pour chaque entrée, il est possible de
spécifier les valeurs de résistance minimale et maximale que l'on est
sensé trouver, avec comme valeur "centrale" celle que le capteur est
censé présenter au repos. Un système de comptage permet de relever le
nombre de fois qu'un capteur change de valeur (en plus ou en moins par
rapport à la valeur de repos), ce qui permet d'effectuer des tests à
distance (sans être à côté du testeur) et de vérifier ensuite si le nombre de changements enregistrés
correspond bien au nombre de manoeuvres effectuées (en condition
d'alarme). Une extension est d'ores et déjà prévue pour porter le
nombre d'entrées de 16 à 32.
Remarque
: ce projet n'est pas destiné aux seules personnes devant assurer la
maintenance de centrales d'alarme. Il peut aussi intéresser quiconque
souhaite acquérir plusieurs tensions analogiques de façon assez simple,
en faisant appel à des convertisseurs A/N intégrés pilotés par
microcontrôleur (le code source est livré pour ça).
Principe de fonctionnement
Il consiste à placer la résistance à mesurer dans un
pont diviseur résistif simple, la première résistance du pont ayant une valeur parfaitement
connue. En appliquant une tension aux extrémités du pont diviseur et en
mesurant la tension que l'on a aux bornes de la résistance à
tester, on en déduit sa valeur ohmique. La précision de la mesure dépend des
paramètres suivants :
- précision de la mesure de la tension aux
bornes de la résistance à tester. Ici, on utilise des convertisseurs
analogique / numérique (CAN) d'une résolution de 8 bits (256 pas), sous
une tension d'alimentation de +5 V. La précision côté tension mesurée est donc
de 5 V divisé par 256 soit 20 mV environ.
-
valeur effective de la résistance à tester
par rapport à la valeur de l'autre résistance du pont. Ici, la
valeur choisie permet de travailler avec des capteurs dont la
résistance est comprise entre 100 ohms et 100 kO. La précision est
moins
bonne dans les faibles valeurs mais il reste possible de distinguer une
résistance de 100 ohms d'une de 300 ohms. Inutile par contre de
chercher à différencier deux résistances de 700 ohms et 800 ohms (cela
serait cependant possible en modifiant un peu le montage et en limitant
la plage de mesure à 10 kO dans les valeurs supérieures, ce point sera
discuté plus loin).
Schéma
Le montage reste assez simple en regard des possibilités offertes. Cela est lié à l'usage de quatre circuits
PCF8591
qui intègrent chacun de quoi échantillonner quatre sources analogiques,
associés à un PIC 18F2420 pour gérer toute la tambouille informatique.
Quelques résistances et quelques boutons poussoirs viennent décorer le
tout, je n'avais pas envie d'un montage tout noir.
Horloge du PIC
Dans
le cas qui nous concerne ici, la précision de l'horloge n'a aucune
espèce d'importance, on se contente donc de l'horloge interne
à 8
MHz, plus
que suffisante en terme de vitesse pour faire ce qu'il y a à faire.
Voilà pourquoi aucun quartz ou résonnateur céramique n'est visible sur
le schéma.
Mode programmation
Le circuit dispose de sept boutons poussoirs reliés sur les lignes
du port B du PIC, ces boutons permettent de configurer le testeur.
-
Mode
: permet de passer en mode Rapport, en mode Réglage ou de revenir en mode d'Analyse (mode par défaut).
-
Next
: en mode Rapport, permet de visualiser la valeur du compteur suivant
de changement d'état. En mode réglage, permet de sélectionner le
paramètre
à modifier suivant celui en cours. En mode normal, permet de visualiser
la valeur du paramètre suivant celui actuellement affiché.
-
Prev
: en mode Rapport, permet de visualiser la valeur du compteur précédent
de changement d'état. En mode réglage, permet de sélectionner le
paramètre
à modifier précédent celui en cours. En mode normal, permet de
visualiser la valeur du paramètre précédant celui actuellement affiché.
-
Inc
: en mode réglage, permet d'incrémenter la valeur du
paramètre en cours de sélection. En mode normal et en mode rapport, n'a aucune action.
-
Dec
: en mode réglage, permet de décrémenter la valeur du
paramètre en cours de sélection. En mode normal et en mode rapport, n'a aucune action.
-
Run/Save
: en mode réglage, permet d'enregistrer les modifications de
paramètre effectuées. En mode normal ou en mode rapport, permet de tenir compte et d'enregistrer les changements d'état.
-
RAZ :
en mode analyse et en mode rapport, permet de remettre les compteurs de
sortie de plage à zéro. En mode réglage, n'a aucun effet.
Comptage des changements d'état
Le
comptage est activé ou désactivé grâce au bouton poussoir Run/Save. En
mode analyse, l'activation du comptage se traduit par la présence d'une
information supplémentaire sur l'écran LCD, en bas à droite. Cette
information complémentaire correspond tout simplement au nombre total
de changements d'état résistif observés sur l'ensemble des entrées
d'analyse. Les copies d'écran LCD qui suivent illustrent l'idée.
| Comptage
des changements désactivé. En mode analyse, n'est affichée que la
valeur résistive lue pour l'entrée en cours de sélection. Rien n'est
affiché en bas à droite de l'écran. |
| Activation du comptage confirmé après appui sur poussoir Run / Save. |
| En absence de changement d'état, le compteur est à zéro et une simple étoile est affichée. |
| Chaque
changement d'état (sortie de la plage spécifiée par l'utilisateur)
incrémente le compteur général, dont le contenu est affiché à partir de
la valeur 1. |
Deux compteurs sont prévus pour chaque entrée :
- un compteur "Inférieur" qui comptabilise le nombre de fois que la
résistance câblée sur l'entrée présente une valeur inférieure au seuil
Min spécifié par l'utilisateur.
-
un compteur "Supérieur" qui comptabilise le nombre de fois que la
résistance câblée sur l'entrée présente une valeur supérieure au seuil
Max spécifié par l'utilisateur.
Ces compteurs peuvent être consultés dans le détail en mode rapport.
| Il est possible après coup de passer en mode rapport pour voir l'état
des compteurs individuels de chaque entrée. L'affichage est de type
temps réel et de nouveaux changements d'état seront immédiatement
visibles s'ils concernent l'entrée en cours de sélection. |
| Ici, affichage du nombre de fois que la valeur résistive mesurée est sortie de la plage spécifiée, par le haut.
|
Les seuils Min et Max qui fixent les limites utilisées pour le comptage peuvent être modifiés en mode Réglage.
| En
mode réglage, on peut spécifier la plage dans laquelle la valeur
résistive mesurée est considérée comme "normale" (état nominal). Ici,
affichage et modification possible du seuil inférieur. |
| Ici, affichage et modification possible du seuil supérieur de la valeur résistive "normale". |
Extension 32 voies
L'ajout
de quatre CI de type PCF8591 sur le bus I2C (lignes SCL et SDA) permet
d'ajouter 16 lignes d'entrées analogiques et de porter leur nombre
total à 32.
Alors
que les quatre premiers PCF8591 avaient leur adresse (part variable)
configurées en 0, 1, 2 et 3, les quatre PCF8591 suivant ont leur
adresse (part variable) configurée en 4, 5, 6 et 7. Et on ne peut pas
aller plus loin sur le bus I2C car le PCF8591 ne dispose que de 3
lignes de configuration d'adresse. Ceci dit, 32 entrées analogiques
constituent déjà un bon nombre d'entrées.
Protection des entrées
Les
entrées de mesures In1 à In16 sont physiquement reliées sur les
convertisseurs analogique / numérique et peuvent être soumises à des
perturbations importantes
voire destructrices (en particulier des surtensions). Cela est d'autant
plus probable si les tests s'effectuent sur des câbles de grande
longueur et en milieu industriel. Il est donc important de protéger au
minimum chaque entrée contre des surtensions que l'on peut prévoir. Le
moyen le plus simple est de placer un condensateur de quelques nF qui
ralentit les montées de tension impulsives, et des diodes limitant
l'amplitude des perturbations à une plage proche de celle de la tension
d'alimentation. Le schéma qui suit montre que l'on fait la même chose
pour les 16 entrées.
Bien sûr ce groupe de composants devra être doublé si 32 entrées
sont utilisées. Pour un travail en labo, cet ensemble de protection
pourra
éventuellement être omis.
Logiciel du PIC
L'ensemble des fichiers est disponible
dans l'unique archive zip dont le lien suit. Code écrit et compilé dans MikroPascal Pro
V3.80.
Simulation effectuée avec succès mais circuit pas testé en grandeur nature. Mis à disposition uniquement pour tests.
Testeur alarme incendie 001a - 18F2420 - (14/11/2010)
Si vous souhaitez recevoir par la poste un PIC
préprogrammé et prêt à utiliser, merci de
consulter la page
PIC - Sources.
Circuit imprimé
Non réalisé, esquisses 2D et 3D uniquement là pour aperçu des composants utilisés.
Bien que non réalisé, circuit prévu pour superposition d'une seconde carte pour les 16 voies supplémentaires.