Contrôle par carte I2C: Accès, Nombre d'accès et temps de fonctionnement
Cartes I2C à trois fonctions (Nombre d'accès, Temps de fonctionnement, Autorisation d'accès)
Je vous propose ici un lecteur de carte I2C genre carte D2000/D4000 qui a trois fonctions suivant ce qui est programmé dans la carte . Les programmateurs sont de deux modèles, soit une box de programmation : Pocket Programmateur pour Cartes I2C Type D2000/D4000 soit une interface PC décrite prochainement dans ces pages.
Les trois fonctions, au choix sont définies par un octet caché dans la mémoire de la carte lors de l'écriture, ainsi que toutes autres informations, pour validation et affectation (C.F. nominative ou libre de texte).
- Autorisation d'accès: Si la carte est reconnue, un relais tire de façon permanente pour la mise en marche de n'importe quel appareil, ou temporisée de 3" pour actionner par exemple une gâche électrique, et un afficheur 2x16 affiche un message contenu dans la carte (Ex.: le nom du titulaire ) et bip. Le retrait de la carte remet le dispositif en veille .
- Nombre d'accès comptés: Si la carte est reconnue et programmée à cet effet, chaque introduction et retrait décrémente un nombre contenu dans sa mémoire. Le reste est affiché sur l'afficheur ainsi qu'un message genre identification du titulaire. Un relais tire en permanence tant que la carte reste inserée dans le logement. Si la mémoire de ce compteur est à 0, le message "carte non valide ou épuisée" s'affiche et il ne reste plus qu'a la recharger.
- Temps d'utilisation : Si la carte est reconnue et programmée pour cela, l'introduction de la carte débite cycliquement un compteur, stocké sur la carte et colle un relais tant que le compteur n'a pas atteind 0. Le reste des unités est affiché sur le LCD ainsi que tout autre message souhaité. La décrémentation du compteur peut être programmée à la seconde, dizaine de secondes, minutes ou heures suivant un paramétre fixé dans la carte .
Le palpable (matériel)
Tout commence par le schéma:
Un bien connu de ces pages, un PIC16F84A se voit attribuer la fonction de chef d'orchestre pour la gestion de l'afficheur 2x16, du lecteur/écriveur de carte, du relais amplifié en courant par le 2N2222 et du bip. Il est cadencé par un quartz à 4MHz, valeur toute raisonnable;Si vous choisissez d'en changer, il faut recalculer les temporisations. Le POR (Power On Reset) est largement calculé et l'alimentation peut se faire avec une tension alternative ou continue de 7 à 18 volts... Le connecteur JP2 va permettre l'adaptation du montage sur un décodeur externe pour activer une sortie parmi 8 disponibles grâce a un circuit PCF8574 et une interface ULN2003 via le bus I2C. Cette option permettra par exemple de commander un ascenseur ou n'importe quels peripheriques correctement interfacés.
La liste du matériel:
Part Value
B1 W04
BZ1 BEEPER
C1 22pF
C2 22pF
C3 0.1µF
C4 0.1µF
C5 0.22µF
C8 4.7µF
C9 1000µF/25V
CRD1 I2C-CARD
D1 1N4148
DIS1 LCD16X2
J1 BORNIER2
J2 BORNIER2
Q1 4Mhz
Q2 2N2222 TO-18
R1 10K
R2 4K7
R3 4K7
R4 12K
R5 20K POT-L
R6 10K
R7 1K
REL1 12V RU
U1 16F84A
U2 7805T TO-220A
Les circuits imprimés:
Et l'ensemble Zippé au format d'exploitation:
Ctrlcard (29.79 Ko)
La matière grise
Un retour à mes premiers amours : un petit peu de Basic ! le logiciel a été développé avec BasicPicPro de chez Digimok et compilé en .hex pour tourner dans le PIC16F84 .
Ctrlcard sw (2.93 Ko)
Il n'est pas exclu que je ne reprenne pas ce logiciel sous Flowcode lors de mes longues soirées d'hiver .
Organisation interne de la carte pour la programmation :
L'organisation pour le mode 'acces' est le suivant:
Address Data Commentaire
00hex 20hex Protection contre les coïncidences aleatoires
03hex 'a' Choisi la fonction 'Acces'
04hex 'p' Si l'on veut maintenir le relais permanent
04hex ' ' Si l'on veut maintenir le relais 3 secondes
10hex Txt Debut du message....
1Fhex Txt Fin du 1er message (Ex.: NOM)
20hex Txt Debut du 2eme message
2Fhex Txt Fin du 2eme message
30hex Free Libre.......
L'organisation pour le mode 'comptage' est le suivant:
Address Data Commentaire
00hex Cent Chiffre le plus significatif (Centaines)
01hex Dix Chiffre des dizaines
02hex Unit Chiffre le moins significatif (Unités )
03hex 'c' Choisi la fonction 'Compt'
10hex Txt Debut du message....
1Fhex Txt Fin du 1er message (Ex.: Il vous reste:)
20hex Txt Debut du 2eme message
2Fhex Txt Fin du 2eme message (Ex.: Unite(s) ! )
30hex Free Libre.......(Ex.: NOM)
L'organisation pour le mode 'timer' est le suivant:
Address Data Commentaire
00hex Cent Chiffre le plus significatif
01hex Dix Chiffre des dizaines
02hex Unit Chiffre le moins significatif
03hex 't' Choisi la fonction 'Timeur'
04hex 'd' Base de temps de decrementation (seconde*10)
04hex 'm' Base de temps de decrementation (minute)
04hex 'h' Base de temps de decrementation (Heures)
10hex Txt Debut du message....
1Fhex Txt Fin du 1er message (Ex.: Il vous reste:)
20hex Txt Debut du 2eme message
2Fhex Txt Fin du 2eme message (Ex.: Unite(s) ! )
30hex Free Libre.......(Ex.: NOM)
L'organisation pour le mode 'decod' est le suivant:
Address Data Commentaire
00hex Cent Chiffre de la sortie a activer (0 a 7)
03hex 'd' Choisi la fonction 'decodeur'
10hex Txt Debut du message....
1Fhex Txt Fin du 1er message (Ex.: Vous allez au:)
20hex Txt Debut du 2eme message
2Fhex Txt Fin du 2eme message (Ex.: Etage ! )
30hex Free Libre.......(Ex.: NOM)
Le décodeur I2C / Décimal utilisé dans ce cas là est un PCF8574 accessible par l'adresse d'écriture 41hex .
Ajouter un commentaire