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.

Ctrlcard

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).

  1. 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 .
  2. 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.
  3. 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 .

 

Ctrlcard hole

 

 

 

Le palpable (matériel)

Tout commence par le schéma:

Ctrlcard sch

                       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:

 Ctrlcard brd

Ctrlcard cmp

 

Et l'ensemble Zippé au format d'exploitation: 

CtrlcardCtrlcard (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 swCtrlcard 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