Dernière mise à jour :
17/06/2015
Présentation
La réalisation qui suit a été
développée à la demande du centre de la bande dessinée de Bruxelle, dans le cadre d'une
exposition.
Le circuit permet de saisir un nombre quelconque sur un
clavier géant pour déclancher la lecture d'un fichier multimédia stocké
sur une carte SD elle-même placée dans un lecteur multimédia de marque
iDAL.
Cahier des charges
Le circuit devait répondre aux besoins suivants :
- Transformation d'un nombre saisi sur un clavier à touche (entre 1 et 255) en une représentation binaire sur 8 bits (un octet).
- Possibilité de spécifier un nombre maximal permis (limite supérieure de valeur inférieure à 255)
- Présence d'une touche RANDOM (octet de sortie présentant une valeur aléatoire)
- Possibilité de choisir entre modes auto-validation (timer) et validation manuelle (via touche ENTREE)
- Octet de sortie délivré sous forme maintenue ou impulsionnelle
- Possibilité de commander des optocoupleurs (interface de sortie à transistors)
Le tout dans un format compact et alimenté sous une tension unique de 5 V ou 12 V.
Schéma
Le circuit s'appuie sur un PIC 18F45K22, l'interface de sortie à transistors se résume à un ULN2803.
(image volontairement floutée)Principe général
L'utilisateur saisi un nombre quelconque
sur un clavier à touches câblé en matrice (4 rangées et 4 colonnes), ce nombre peut être composé de 1, 2 ou 3
chiffres. Lors de l'appui sur un chiffre, le système agit différement
selon qu'il se trouve en mode de validation manuelle ou en mode de
validation automatique.
- Dans le mode de validation manuelle, l'utilisateur doit valider le nombre saisi (1 à 3 chiffre) en appuyant sur la touche ENTER.
- Dans
le mode de validation automatique, une temporisation est démarrée dès
l'appui sur une touche. Cette temporisation est remise à zéro lors
de l'appui sur
n'importe quel chiffre. Au terme de la temporisation, le système valide
automatiquement la saisie, sans que l'utilisateur ait besoin de presser
le bouton ENTER. La durée de la temporisation (temps dont l'utilisateur
dispose pour saisir le nombre) peut être ajustée. Ce mode de
fonctionnement est comparable à celui utilisé pour les touches de
télécommande des récepteurs TV.
Le
choix du mode "validation manuelle" ou "validation automatique"
s'effectue grâce à un cavalier (inaccessible à l'utilisateur final).
Mode validation (automatique ou manuelle)
Le mode de validation manuel ou automatique dépend de l'état de la
ligne RC0 du PIC et donc de la présence ou absence du cavalier JP1.
- JP1/Auto-Enter retiré
= (RC0 = 0) : mode manuel, l'utilisateur doit presser le bouton ENTER après saisie du ou des chiffres du nombre.
- JP1/Auto-Enter
en place (RC0 = 1) : mode automatique, validation après une
temporisation (ajustable) qui démarre ou redémarre à chaque pression
d'un chiffre.
La durée de la temporisation est de 1,0 seconde
par défaut. Pour la modifier, il faut presser le bouton # (la
LED Timer s'allume), puis saisir le nombre de [paquet de 10 ms] désiré.
Par exemple pour une durée de 3 secondes, il faut saisir le nombre 300
(300 * 0,010 sec = 3 secondes). Le nombre maximal pouvant être saisi
est 999 (10 secondes environ), il est stocké en EEPROM et rappelé
à la mise sous tension suivante.
Mode de sortie (maintenu ou impulsionnel)
Le
mode maintenu ou impulsionnel des sorties dépend de l'état de la ligne
RC1 du PIC et donc de la présence ou absence du cavalier JP2.
- JP2/Out-Pulse
retiré (RC1 = 0) : les sorties S0 à S7 (port D du PIC) prennent la
valeur qui correspond au nombre saisi par l'utilisateur, et restent
dans le même état jusqu'à nouvelle saisie.
- JP2/Out-Pulse en place (RC1 = 1) : les sorties S0 à S7 (port D du PIC) prennent la
valeur qui correspond au nombre saisi par l'utilisateur pendant 100 ms, puis repassent toutes à zéro.
Quand
les sortie S0 à S7 sont à l'état logique bas (0 V), les transistors
correspondants inclus dans le ULN2803 ne sont pas passants et les
optocoupleurs qui font suite (dans le lecteur iDal) ne sont pas activés. Quand les sortie S0 à
S7 sont à l'état logique haut (+5 V), les transistors
correspondants inclus dans le ULN2803 sont passants et les
optocoupleurs qui font suite sont activés.
Limite (nombre max)
Pour
spécifier le nombre au-delà duquel on ne peut aller, presser le bouton
LIMIT puis saisir les chiffres correspondant à ce nombre. La valeur est
stockée en EEPROM et rappelée à la mise sous tension suivante. Si après cela
l'utilisateur saisit un nombre supérieur à la limite spécifiée, alors
la sortie s'active avec la valeur 255 pour lecture d'un fichier
"Erreur".
Section de "puissance"
Elle se limite à
l'utilisation d'un ULN2803 qui comporte huit transistors darlington. Ce
circuit peut être remplacé par huit transistors NPN "discrets" (par
exemple 2N2222, BC107 ou BC517), chacun devant être équipé d'une
résistance de limitation du courant de base (2,2 kO).
Alimentation
L'alimentation de l'interface doit se faire en +5 V et ne réclame que
quelques dizaines de mA. Un régulateur de
tension de type LM7805 (ou même un 78L05 qui est la version 100 mA)
peut donc être mis en oeuvre. Comme le lecteur iDal piloté
par cette interface met à disposition un +12 V (500 mA),
point besoin de bloc alim externe. Cependant, le cavalier JP3/PS permet de choisir la source d'alimentation :
- JP3/PS en position A : appliquer une tension continue comprise entre +8 V et +15 V sur le bornier J3/Alim.
- JP3/PS en position B : appliquer une
tension continue de +5 V sur le bornier J3/Alim.
Attention,
ne pas appliquer une tension supérieure à +5,5 V sur le bornier J3/Alim
quand JP3 est en position B, sous peine de détruire le
microcontrôleur !
Programmation du PIC
Si
besoin, le PIC peut être reprogrammé in situ via le connecteur J2/ICSP.
Comme les broches dédiées à la programmation ICSP ne servent à
rien d'autre, aucune manoeuvre spécifique
n'est à prévoir, si ce n'est de brancher le programmateur sur ledit
connecteur.
Remarques diverses
- La
LED LED3 connectée sur la ligne RC4 s'allume brièvement à chaque
pression
d'un chiffre, ainsi qu'après modification du délai Timer ou du nombre
Limit, ceci dans le but de confirmer la bonne prise en compte des
actions de l'utilisateur. En pratique, cette LED ne servira que pour
tester le bon fonctionnement de l'ensemble au moment de la première
installation.
- Dans le mode de saisie automatique, il est
possible d'appuyer sur la touche ENTER avant la fin de la
temporisation. Dans ce cas, la validation est immédiate.
- Dans
le mode de sortie impulsionnelle, la durée d'activation des sorties est
de 100 ms. Cette durée peut être raccourcie ou allongée si besoin, mais
nécessite dans ce cas une reprogrammation du PIC.
Logiciel du PIC
Demande pro, logiciel non disponible sur ce site.
Prototype
Réalisé avec ma platine EasyPic7 et un clavier matricé avec protection par diodes.
On
retrouve bien la protection contre les surtensions éventuellement
véhiculées par les grands câbles qui assurent la liaison entre le
clavier et le circuit principal (résistances, diodes zeners et
condensateurs).
Réalisation pro
Circuit finalisé (en double face) en action avec le lecteur iDAL...
Circuit imprimé
Réalisé en double face.
Historique
17/06/2015
- Première mise à disposition.