Verrouillage par code sur le schéma atmega8. Circuit d'alarme de sécurité avec serrure à combinaison sur microcontrôleurs AVR. À propos de ma construction

Le serrure à combinaison sur microcontrôleur assemblé sur un microcontrôleur AVR ATtiny13 assez simple. Il peut être utilisé pour restreindre l'accès à diverses zones de stockage, verrouiller les portes de garage et de maison, ainsi que pour allumer divers appareils qui doivent être restreints.

Principe d'opération

Le fonctionnement de la serrure sur un microcontrôleur est basé sur la saisie alternée de trois chiffres. La taille de chaque numéro peut être comprise entre 0 et 255. Cela augmente à son tour le niveau de secret de la serrure à combinaison par rapport à d'autres serrures dans lesquelles chaque numéro secret a une taille de 0 à 9.

Si la séquence saisie de ces trois chiffres coïncide avec les trois chiffres entrés dans la mémoire du microcontrôleur de la serrure à combinaison, alors un signal de commande (log.1) apparaîtra à la sortie (broche 3), la LED HL4 s'allume pendant 15 secondes, signalant l'exactitude de l'entrée et fonctionnera, le relais K1 contrôle l'actionneur de serrure. Après 15 secondes, un journal apparaîtra sur la broche 4 du microcontrôleur. 0 et le verrou reviendra à son état de veille d'origine.

Le fonctionnement de la serrure à combinaison est contrôlé par seulement deux boutons, guidés uniquement par l'indication LED. De plus, la saisie du code secret s'effectue uniquement par un seul bouton SB2, situé sur le panneau extérieur de la serrure. Le deuxième bouton SB1 est destiné à la programmation et se trouve sur la carte elle-même.

Étapes de contrôle du verrouillage par code

  • Saisie de trois numéros de code dans la mémoire non volatile du microcontrôleur.

Regardons cela avec un exemple spécifique. Disons que nous devons définir le code secret suivant : le premier chiffre est 8, le deuxième chiffre est 12, le troisième chiffre est 9. Pour ce faire, nous alimentons l'appareil, puis maintenons enfoncés les deux boutons (SB1 et SB2 ). Après cela, relâchez le bouton SB1, et dès que la LED HL1 commence à clignoter, relâchez le bouton SB2. Après ces manipulations, la LED HL1 sera allumée en permanence, et les LED HL2 et HL3 ne seront pas allumées. Cet état de la LED indique que l'appareil est entré en mode programmation.

Maintenant, pour écrire le premier numéro, nous devons maintenir enfoncé le bouton SB2, et les trois LED commenceront à clignoter. Il faut compter le nombre de flashs requis (dans notre cas c'est 8) et relâcher le bouton. Après cela, pour confirmer l'exactitude du numéro saisi, les LED clignoteront le même nombre de fois (8 fois). Ça y est, le premier numéro est noté. Ensuite, la LED HL2 s'allume, nous rappelant qu'il faut noter le deuxième chiffre.

Nous faisons exactement la même chose que pour l'enregistrement du premier numéro : appuyez et maintenez le bouton SB2 et comptez le nombre de flashs LED requis (dans notre exemple, il est de 12), relâchez le bouton et vérifiez l'exactitude de la saisie à l'aide de flashs répétés. Ensuite la LED HL3 s'allume pour le troisième chiffre, et on répète la même procédure pour le troisième chiffre (numéro 9).

Après cela, nous avons écrit les trois chiffres dans la mémoire du microcontrôleur et pour quitter le mode de programmation, vous devez appuyer sur le bouton SB1.

  • Composer le code secret

Regardons également cela avec un exemple. Avant cela, nous avons noté le code secret 8-12-9. Pour entrer, appuyez d'abord sur le bouton SB1 et relâchez-le immédiatement après que la LED HL1 s'allume, faisant ainsi passer notre serrure en mode de saisie de code. La lueur de la LED HL1 indique que vous devez saisir le premier chiffre. La procédure de saisie des nombres est similaire à la façon dont les nombres ont été saisis lors de la programmation. C'est-à-dire qu'en appuyant sur le bouton SB1, nous comptons le montant requis, après quoi nous relâchons le bouton et observons la confirmation du chiffre composé en faisant clignoter les LED. Ensuite, nous passons aux deuxième et troisième chiffres.

Si les trois chiffres du code secret sont saisis correctement, le relais fonctionnera et la LED HL4 s'allumera pendant 15 secondes, les LED HL1, HL2, HL3 brilleront en mode feux de position.

Trois tentatives sont autorisées pour saisir le code secret. Si le code est mal saisi pour la troisième fois, la possibilité de saisir est bloquée pendant 2,5 minutes. Passé ce délai, la serrure sera prête à saisir à nouveau le code.

Lors de la programmation du microcontrôleur, les fusibles suivants doivent être réglés :

  • CKDIV8=0
  • NIVEAUBODY0 = 0
  • SPMEN = 0

(1,3 Mo, téléchargé : 1 566)

Schéma schématique d'un système de sécurité à deux niveaux, construit à l'aide de microcontrôleurs AVR de la série ATMega. 1er niveau de sécurité - serrure à combinaison. 2ème niveau de sécurité - dispositif de sécurité. Deux cartes fonctionnelles incluses dans le système sont basées sur des microcontrôleurs ATmega 8535.

Schéma structurel

Les microcontrôleurs (familles AVR, MCS-51, etc.) avec leur architecture, leurs ressources logicielles et matérielles, comme les cubes numériques, sont idéaux pour le développement de divers dispositifs de sécurité, alarmes, serrures à combinaison, etc.

Riz. 1. Schéma fonctionnel du système de sécurité.

Le système (Fig. 1) comprend deux composants principaux : le cadenas à combinaison A2 et le dispositif de sécurité A1. Le dispositif de sécurité A1 dispose de 24 lignes d'entrée indépendantes auxquelles sont connectés les interrupteurs de fin de course S1...S24. Ces interrupteurs contrôlent l'état des fenêtres 01...05, des portes D1, des trappes L1, L2.

Le nombre des objets de contrôle ci-dessus peut varier et est lié à chaque local spécifique ou périmètre protégé.

Le nombre de dispositifs de sécurité A1 et de serrures à combinaison A2 utilisés n'est également aucunement limité et est déterminé par les conditions de sécurité, le degré de protection, les caractéristiques des bâtiments, des locaux, etc. Il est clair que les interrupteurs de fin de course S1... S24 peut contrôler les portes dont l'accès aux trappes est limité par une serrure à code (ou une serrure à combinaison) A2. Le schéma de principe de la serrure à combinaison est illustré à la Fig. 2.

Diagramme schématique

Considérons le fonctionnement du dispositif de sécurité. Les éléments externes (à distance) par rapport à l'appareil sont 24 fins de course (S1...S24), qui permettent de contrôler l'état de 24 objets (par exemple, une porte). Un interrupteur de fin de course contrôle l'état d'une porte. Si la porte est fermée, le fin de course est ouvert.

L'utilisateur (opérateur, répartiteur) peut vérifier visuellement l'état de la porte en fonction de l'état de l'indicateur.

Si la porte est ouverte, le fin de course est fermé. Le voyant clignote périodiquement. Si la porte est fermée, le fin de course est ouvert. Le voyant n'est pas allumé (éteint). Laissez le fin de course S1 être installé dans la porte n° 1. Laissez le fin de course S2 être installé dans la porte n° 2, etc.

Si la porte n°1 est ouverte, le voyant HL2 clignote périodiquement (si la porte n°1 est fermée, le voyant HL2 est éteint). Si la porte n°2 est ouverte, alors le voyant HL3 clignote périodiquement (si la porte n°1 est fermée, le voyant HL3 est éteint), etc.

L'auteur ne s'attardera pas sur une conception spécifique de l'installation des fins de course, ni sur la conception de l'appareil lui-même. L'interface de surveillance et de contrôle de l'appareil comprend : des interrupteurs à bascule SA1, SA2, des indicateurs HL1...HL25. Structurellement, il est conseillé de placer tous les éléments ci-dessus sur un panneau de commande séparé.

Riz. 2. Schéma schématique d'une serrure à combinaison pour un système de sécurité.

Les éléments de l'interface de contrôle des appareils ont les objectifs suivants :

  • SA1 (SÉCURITÉ) - interrupteur à bascule d'alarme. Lorsque cet interrupteur à bascule est réglé sur la position « ON », l'appareil est armé. L'appareil est armé après environ 10 secondes. à partir du moment où l'interrupteur à bascule SA1 est installé en position « ON » à partir de la position « OFF ». Après l'armement, l'alarme se déclenche environ 10 secondes à partir du moment où l'un des interrupteurs de fin de course S1...SA24 est fermé.
  • SA2 - interrupteur muet. Cet interrupteur à bascule fonctionne uniquement en mode de surveillance de l'état de la porte. L'interrupteur à bascule SA1 doit être réglé sur la position "OFF". Lorsque vous réglez l'interrupteur à bascule SA2 sur la position « ON », lorsque vous ouvrez une porte avec un émetteur piézoélectrique BA1, vous émettrez immédiatement un signal sonore d'une durée d'environ 2 secondes. Si cet interrupteur à bascule est en position « OFF », alors lorsqu'une porte est ouverte, seul l'indicateur correspondant clignotera périodiquement, l'émetteur piézoélectrique BA1 sera éteint.
  • HL1 - indicateur d'activation du mode de sécurité. Si l'appareil est en mode « sécurité », ce voyant est allumé ; s'il est en mode « contrôle de l'état de la porte », ce voyant est éteint.

L'alarme se déclenche - cela signifie : le relais K1 est constamment activé. Les broches 5 et 6, ainsi que 2 et 3 de ce relais sont fermées. Émetteur piézoélectrique BA1 - s'allume et s'éteint avec une période d'environ 1 seconde. Pour désactiver l'alarme, l'interrupteur à bascule SA1 doit être réglé sur la position « OFF ».

Considérons les principaux composants fonctionnels du schéma de circuit de l'appareil. La base de l'appareil est le microcontrôleur DD1, dont la fréquence de fonctionnement est réglée par un générateur avec un résonateur externe ZQ1 à 10 MHz.

Riz. 3. Schéma schématique d'un dispositif de sécurité sur un microcontrôleur.

Au port PD du microcontrôleur DD1 sont connectés des commutateurs SA1, SA2 avec un émetteur piézoélectrique BA1, un indicateur HL1 et une clé sur les transistors VT1, VT2 pour contrôler le relais K1. Les fins de course S1...S24 et les indicateurs HL2...HL25 sont connectés aux ports PB, RA, PC du microcontrôleur DD1.

L'alimentation de ces indicateurs est fournie via un interrupteur sur le transistor VT3, qui est contrôlé depuis la broche 21 du microcontrôleur DD1. Les résistances R10...R17, R20...R27, R28...R35 limitent le courant pour les indicateurs HL2...HL25. La résistance R8 est la limitation de courant pour l'indicateur HL1.

Le relais K1 est contrôlé en conséquence depuis la broche 14 du microcontrôleur DD1. La tension d'alimentation +12 V et +5 V est fournie à l'appareil depuis le connecteur XI. Le condensateur C5 filtre les ondulations dans le circuit d'alimentation +5 V. Les condensateurs de blocage C4 sont situés le long du circuit d'alimentation du microcontrôleur DD1.

Dans l'algorithme de fonctionnement de l'appareil, deux modes de fonctionnement peuvent être distingués : le mode de surveillance de l'état de la porte et le mode de sécurité. Considérons l'algorithme de fonctionnement de l'appareil en mode de surveillance de l'état de la porte. Gardez toutes les portes de l’installation protégée fermées. L'interrupteur à bascule SA1 est en position "OFF".

L'interrupteur à bascule SA2 est en position "ON". Une fois l'appareil alimenté, lors de l'initialisation, les journaux sont écrits sur tous les bits des ports PB, RA et PC du microcontrôleur DD1. 1. Les interrupteurs des transistors VT1...VT2 sont fermés, l'indicateur -HL1 est éteint.

Les voyants HL2...HL25 s'éteignent. Les interrupteurs de fin de course S1...S24 sont ouverts. Un signal périodique (onde carrée) d'une période d'environ 1 s est généré à partir de la broche 21 du microcontrôleur DD1. Si vous ouvrez la porte n°1, le fin de course S5 s'allumera.

L'indicateur HL2 clignote périodiquement avec une période d'environ 1 seconde. L'émetteur piézoélectrique BA1 produira un signal sonore d'une durée d'environ 3 secondes.

Si vous ouvrez la porte n°2, le fin de course S6 s'allume. L'indicateur HL2 clignote périodiquement avec une période d'environ 1 seconde. L'émetteur piézoélectrique BA1 produira un signal sonore d'une durée d'environ 2 secondes, etc. Si vous réglez l'interrupteur à bascule SA2 sur la position « ON », alors lorsqu'un interrupteur de fin de course est fermé (lorsqu'une porte est ouverte), l'indicateur correspondant ne fera que clignoter.

Considérons le fonctionnement de l'appareil en mode sécurité. Gardez toutes les portes de l’installation protégée fermées. L'interrupteur à bascule SA1 est réglé sur "OFF".

L'appareil passe en mode sécurité environ 10 secondes après avoir réglé l'interrupteur à bascule SA1 sur la position « ON ». Pendant ce temps, il est nécessaire de fermer toutes les portes et de quitter l'installation protégée. Il est clair si le périmètre de l'objet protégé est suffisamment grand et en 10 secondes. Il est impossible de fermer toutes les portes, alors toutes les portes doivent être fermées avant d'armer l'objet.

Si en mode sécurité l'un des interrupteurs de fin de course S1...S24 est activé (n'importe quelle porte est ouverte), alors un signal de niveau logique 0 sera présent à la sortie correspondante des ports PB, PA, PC du microcontrôleur. DD1. puis après ~ 10 secondes. L'alarme sonore s'allumera (émetteur piézoélectrique BA1). Dans ce cas, à la broche 14, le microcontrôleur DD1 définira le niveau sur log.0 (le relais K1 s'allumera).

Si un « ami » pénètre dans l'objet protégé, il doit alors placer l'interrupteur à bascule SA1 sur la position « OFF » dans un délai d'environ 10 secondes, sinon l'alarme se déclenchera. Il est clair que l'accès au commutateur SA1 doit être limité.

Si un « étranger » pénètre dans un objet protégé (par une porte ouverte), il lui faut environ 10 secondes. Trouvez l'interrupteur SA1 et réglez-le sur la position "OFF". L'alarme s'allumera également si l'un des interrupteurs de fin de course S1...S24 s'allume pendant une courte période (par exemple, fermez et fermez immédiatement la porte). Les contacts de relais K1 peuvent être utilisés pour fermer des circuits de commande ou alimenter divers actionneurs, par exemple pour un mécanisme de verrouillage de porte ou pour allumer une sirène (hurleur).

Le programme développé en assembleur n'occupe qu'environ 0,4 Ko de mémoire programme du microcontrôleur DD1. Les ressources matérielles (lignes PD6, PD7) et logicielles (environ 7,6 Ko) inutilisées du microcontrôleur DD1 peuvent être utilisées pour des options supplémentaires.

Par exemple, vous pouvez installer quelques boutons et ajouter la fonction d'armement et de désarmement de l'appareil via un code d'accès ou contrôler certains autres actionneurs. Après avoir compris le programme, vous pouvez remplacer les paramètres de l'appareil définis par logiciel :

  • période de clignotement de l'indicateur HL1 ;
  • durée du signal sonore de l'émetteur piézoélectrique BA1 en mode surveillance de l'état de la porte ;
  • le temps d'armement de l'appareil, ainsi que le délai d'activation de l'alarme.

L'appareil utilise des résistances S2-ZZN-0,125 ; d'autres avec la même puissance de dissipation et une erreur de 5 % feront l'affaire. Condensateur C5 type K50-35. Condensateur C1...C4 type K10-17a. Le condensateur C4 est installé entre le circuit +5V et le conducteur commun du microcontrôleur DD1. Interrupteurs à bascule SA1...SA2 type MTD1.

Relais K1, type RES48B, version RS4.590.202-01. Ces relais, avec une tension de fonctionnement de 12 V (ou avec une autre tension de fonctionnement), peuvent être sélectionnés pour chaque cas spécifique, en tenant compte du courant et de la tension commutés de l'actionneur connecté.

Vous pouvez choisir absolument n'importe quel interrupteur de fin de course pour chaque cas spécifique. Il peut s'agir d'un bouton de type PKN124, ou par exemple d'un interrupteur sur rail étanche de type VPK2111. Émetteur piézoélectrique BA1-НРМ14АХ.

Transistor VT1-KT829A. Transistors VT2, VT3 -KT3107E. Indicateur HL1 - AL307AM, rouge. L'indicateur HL1 peut être remplacé par n'importe quel autre, de préférence avec un courant direct maximum allant jusqu'à 20 mA.

Considérons le fonctionnement d'une serrure à combinaison (ci-après dénommée la serrure) selon la figure 3. L'algorithme de son fonctionnement est assez simple : en mode écriture, un code est saisi dans l'EEPROM du microcontrôleur, qui se compose de 4 décimales. chiffres et est tapé sur un clavier à 7 boutons. Ensuite, pour vérifier, le code enregistré est lu en mode lecture. En mode de fonctionnement, la serrure attend la saisie d'un code.

Le microcontrôleur écrit le code saisi dans la RAM et le compare octet par octet avec le code écrit dans l'EEPROM. Si les codes correspondent, le microcontrôleur envoie un signal pendant cinq secondes pour activer le mécanisme d'ouverture de la serrure.

De plus, la procédure de composition d'un code peut être ouverte (le code composé est affiché à l'écran, chaque bouton enfoncé se voit attribuer un numéro à l'écran) et fermé (lors de la composition d'un code, des symboles identiques et prédéterminés sont affichés à l'écran , chaque bouton enfoncé se voit attribuer un symbole spécifique, par exemple).

Il y a un interrupteur séparé dans la serrure à cet effet. Pour activer le code à 4 chiffres affiché sur l'écran en mode enregistrement et en mode fonctionnement, il suffit d'appuyer sur n'importe quelle touche du clavier.

L'interface de l'appareil comprend une échelle, un indicateur de synthèse de caractères HG1, une unité d'indication (affichage) d'indicateurs numériques à sept segments HG2...HG4, un commutateur SA1 et un clavier (boutons S1...S8).

Les boutons S1...S7 sont désignés par des chiffres de "1" à "7". Ces boutons règlent le code d'entrée. Le bouton S8 (P) règle, dans un cycle, l'un des trois modes de fonctionnement : « mode n°1 », « mode n°2 », « mode n°3 ». Après le mode n°3, le mode n°1 est activé.

L'élément n° 1 de l'indicateur HG1 est allumé lorsque l'on travaille en mode n° 1", l'élément n° 2 de l'indicateur HG1 est allumé lorsqu'on travaille en mode n° 2, et l'élément n° 3 est allumé, respectivement, lorsque vous travaillez en mode n°3. Sur un affichage à 5 chiffres (double indicateur numérique HG2, HG3 affiche le code saisi. L'indicateur HG4 affiche les symboles « 3 » (lorsque la serrure est fermée) et « 0 » (lorsque la serrure est fermée). est ouvert).

Le commutateur SA1 définit le mode d'affichage du code sur l'écran de l'appareil. Si cet interrupteur est en position "1", alors le code spécifié depuis le clavier s'affiche sur l'écran de l'appareil. Si en position « 2 » (mode caché), alors lors de la saisie d'un code, les symboles sont affichés dans chaque chiffre sur l'écran de l'appareil

En mode n°1 (mode de fonctionnement), la serrure est prête à saisir un code pour ouvrir la serrure (si, bien entendu, le code a été préalablement écrit dans l'EEPROM). Avant de composer le code, l'afficheur affiche le code 0000. L'élément n°1 de l'indicateur HG1 est allumé (les autres éléments de l'indicateur HG1 sont éteints).

L'indicateur HG4 affiche le symbole "3" (fermé). À l'aide des boutons S1...S7, un code à 4 chiffres est composé. Le code composé est indiqué sur l'écran. Après avoir appuyé sur l'un des boutons S1...S7, le microcontrôleur écrit le code 4 bits reçu dans la RAM et commence à vérifier le code écrit dans la RAM et le code écrit dans l'EEPROM. Les codes sont comparés octet par octet.

Si la comparaison réussit, le microcontrôleur envoie un signal à l'actionneur d'ouverture de la serrure. L'élément n°4 de l'indicateur HG1 s'allume pendant cinq secondes, l'indicateur HG4 affiche le symbole « O » (ouvert) et le journal est établi. 0 sur la broche 21.

Au bout de cinq secondes, l'élément n°4 de l'indicateur HG1 s'éteint et un journal est défini sur la broche 21. 1. L'écran affiche à nouveau le code 0000. L'indicateur HG4 affiche à nouveau le symbole « 3 » (fermé).

En mode n°2 (mode d'enregistrement), le code secret est écrit dans l'EEPROM. L'écran affiche le code 0000. L'élément n°2 de l'indicateur HG1 est allumé. L'indicateur HG4 affiche le symbole "3" (fermé). Utilisez les boutons SI...S7 pour composer le code. Le code composé est indiqué sur l'écran.

Le microcontrôleur écrit le code à 4 chiffres affiché sur l'écran dans l'EEPROM après avoir appuyé sur l'un des boutons 51...57. Après avoir écrit le code, l'écran affiche à nouveau le code 0000.

En mode n°3 (mode de vérification du code enregistré), le code secret enregistré dans l'EEPROM est vérifié. L'élément n°3 de l'indicateur HG1 est allumé. L'indicateur HG4 affiche le symbole "3" (fermé). Le code enregistré dans l'EEPROM est indiqué sur l'écran.

Il est clair que l'accès au bouton S8 et au commutateur SA1 doit être limité. Structurellement, ce n’est pas si difficile à faire.

Considérons les principaux composants fonctionnels de l'appareil (Fig. 3). La base de l'appareil est le microcontrôleur DD1, dont la fréquence de fonctionnement est réglée par un générateur avec un résonateur externe ZQ1 à 11,0592 MHz. Le port PD du microcontrôleur DD1 contrôle l'indication dynamique.

L'indication dynamique est assemblée sur des transistors VT1...VT5, des indicateurs doubles numériques à sept segments HG2, HG3 et un indicateur numérique unique HG4. Les résistances R7...R14 limitent le courant pour les segments indicateurs HG2...HG4. Les codes d'allumage des indicateurs ci-dessus lorsque l'indication dynamique fonctionne sont envoyés au port PC du microcontrôleur DD1.

Pour que le clavier fonctionne, la broche 19 (PD5) du microcontrôleur DD1 est utilisée. Les éléments de l'indicateur d'échelle HG1 sont connectés aux broches du port PB du microcontrôleur DD1. Les résistances R2...R5 limitent le courant pour les éléments indicateurs HG1.

Immédiatement après la mise sous tension, un signal de réinitialisation du matériel système pour le microcontrôleur DD1 est généré au niveau de la broche 9 du microcontrôleur DD1 via un circuit RC (résistance R1, condensateur C3). L'écran affiche le code 0000. L'élément n°1 de l'indicateur HG1 est allumé. L'indicateur HG4 affiche le symbole "3" (fermé).

La tension d'alimentation +5 V est fournie à l'appareil depuis le connecteur XI. Le condensateur C5 filtre les ondulations dans le circuit d'alimentation +5 V. Le condensateur de blocage C4 est situé le long du circuit d'alimentation DD1.

Très brièvement sur le programme. Le programme utilise deux interruptions : la réinitialisation et l'interruption du temporisateur TO, dont le gestionnaire commence par l'étiquette TIM0. Lorsque vous passez à l'étiquette Réinitialiser, la pile, la minuterie, les ports, ainsi que les indicateurs et variables utilisés dans le programme sont initialisés.

Le temporisateur TO génère des interruptions de débordement (le bit TOIE0 est défini dans le registre TIMSK). Le facteur de prédivision de l'horloge du temporisateur est fixé à 64 (le chiffre 3 est écrit dans le registre TCCR0).

Dans le programme principal, des éléments de l'indicateur HG1 sont inclus. Les éléments inclus dans cet indicateur, comme mentionné ci-dessus, déterminent le mode de fonctionnement actuel de la serrure. Dans le gestionnaire d'interruption du temporisateur TO, les opérations suivantes sont effectuées : la procédure d'interrogation des boutons S1...S8, le fonctionnement de l'indication dynamique, l'écriture d'un code secret dans l'EEPROM, la lecture d'un code secret dans l'EEPROM, la conversion d'un nombre binaire en un code pour afficher des informations sur les indicateurs de l'appareil à sept segments, ainsi qu'un intervalle de temps de cinq secondes requis pour allumer l'actionneur solénoïde.

Un tampon d'affichage pour l'affichage dynamique est organisé dans la RAM du microcontrôleur de l'adresse $61 à l'adresse $70. Vous trouverez ci-dessous la répartition détaillée de l'espace d'adressage dans la RAM du microcontrôleur.

  • 60 $ est l'adresse de départ de la RAM du microcontrôleur.
  • $61...$64 - adresses où sont stockés le code spécifié pour l'ouverture de la serrure et le symbole « 3 ». Ces adresses sont affichées en mode n°1 (buffer n°1).
  • $66...$69 - adresses où sont stockés le code lu dans l'EEPROM et le symbole « 3 ». Ces adresses sont affichées en mode n°3 (tampon n°2).
  • $6С...$70 - adresses où sont stockés les symboles de saisie cachés et le symbole "3". Ces adresses sont affichées en mode n°1 (tampon n°3).

Les drapeaux impliqués dans le programme sont situés dans les registres R19 (flo) et R25 (flo1).

Le programme assembleur développé occupe environ 1,2 Ko de mémoire programme. Après avoir compris le programme, avec des modifications mineures du schéma de circuit, en utilisant les ressources matérielles et logicielles gratuites du microcontrôleur DD1, vous pouvez, par exemple, augmenter le nombre de chiffres à l'écran et le nombre de boutons ou ajouter une alarme sonore.

Des résistances de type C2-ZZN sont utilisées, toutes autres avec la même puissance de dissipation et une erreur de 5 % conviennent. Condensateurs C1...C4, type - K10-17a, C5 - K50-35a. connecteur XI type WF-4. Le condensateur C4 est installé entre le circuit +5V et le conducteur commun du microcontrôleur DD2. Pour tester le prototype, un commutateur SA1 de type VDMZ-8 a été utilisé.

Pour une installation dans un boîtier bloc, vous pouvez utiliser par exemple un interrupteur de type MTZ. L'écran présente un chiffre en surbrillance indiquant les symboles « 3 » et « O » (indicateur HG4) sur fond des autres chiffres de l'interface. Par conséquent, pour cette catégorie, un indicateur vert HDSP-F501 à sept segments et des indicateurs verts DA56-11GWA HG2, HG3 ont été sélectionnés.

La serrure et le dispositif de sécurité ne nécessitent aucune configuration ni réglage. Lorsqu'ils sont installés correctement, ils commencent à fonctionner immédiatement.

Code source et firmware des programmes - Télécharger (8 Ko).

Chichkine S.V. RK-07-16.

Littérature:

  1. A. V. Belov Nous créons des appareils sur des microcontrôleurs.
  2. S. V. Chichkine. Serrure à combinaison basée sur un microcontrôleur. R-10-2011.


Ce projet sera une excellente option pour les débutants ; il utilise un écran LCD 1602, un clavier de boutons 4x4 et, bien sûr, le contrôleur lui-même. De plus, un relais, un bouton et des connecteurs d'alimentation, des broches PLS, quelques transistors et de petites choses ont été utilisés. À propos, la luminosité de l'écran du projet sera ajustée à l'aide de la méthode PWM.

Cet appareil peut être utilisé pour protéger presque n'importe quel objet, l'utilisateur doit saisir le mot de passe correct pour y accéder. La planche a déjà été conçue de manière pratique, et il ne reste plus qu'à lui confectionner un bel étui. Le mot de passe est saisi à l'aide de la matrice 4x4 intégrée au clavier. Le module d'affichage LCD principal est utilisé pour afficher des messages à l'utilisateur et des informations actuelles. Dès que le mot de passe correct est saisi, le relais fonctionnera. Ceci sera également indiqué par une LED installée à côté du relais. Pour désactiver le relais, vous devez appuyer sur le bouton correspondant du clavier.

Après avoir saisi le mot de passe à quatre chiffres, vous devez appuyer sur le bouton "OK" (S8). À tout moment, vous pouvez appuyer sur le bouton Annuler (S12) pour effacer le code (par exemple, lors de la saisie de chiffres incorrects).

Le code de verrouillage peut être facilement modifié en entrant un mot de passe spécial « 0000 », dès que vous entrez ce mot de passe, l'appareil passe en mode changement de mot de passe. Ici, vous devez saisir l'ancien mot de passe pour obtenir l'autorisation, puis saisir le nouveau mot de passe, c'est très simple.

Le rétroéclairage de l'écran LCD s'éteint automatiquement après que le système soit resté en mode veille pendant quelques secondes. Le rétroéclairage s’atténue très doucement, tout comme sur les téléphones portables. L'écran peut être remplacé par n'importe quel écran similaire, avec un contrôleur similaire ou même une résolution différente, la principale chose à laquelle je vous conseille de faire attention est le brochage ; dans certains modèles, le brochage de l'écran peut différer. Le programme du contrôleur est écrit en C++, le code source ainsi que le firmware du contrôleur sont inclus. Le microcontrôleur peut être utilisé avec n'importe quel index ; la lettre L signifie une consommation d'énergie réduite.

Liste des composants radio utilisés :

01 Résistance de 330 Ohm (2 pièces), R3, R5

02 Résistance 4,7 kOhm R2, R4, R6

03 Résistance R1 de 200 Ohms

04 Condensateur céramique 0,1uF C1, C3, C4, C5

05 Diodes 1N4007 (2 pièces), D1, D3

06 LED 5 mm n'importe quelle couleur D4

07 Microcontrôleur ATmega8L U1

08 Stabilisateur de tension 7805 U2

09 Connecteur d'alimentation CON1

10 PCB relais RL1

11 Interrupteur marche/arrêt SW1

12 prises CC X1

13 Écran LCD 16×2 LCD1

14 Résistance d'ajustement de 10 kOhm RV1

15 berceau 28 broches pour microcontrôleur IC

16 transistors BC548 (2 pièces) Q1, Q2

17 boutons (16 pièces)

Le fichier du circuit imprimé pour la fabrication à l'aide de la méthode LUT se trouve ci-dessous dans l'archive ; le circuit imprimé peut être sensiblement plus petit si vous utilisez des boutons plus petits ou si vous déplacez le clavier vers une carte séparée. Les touches numériques peuvent être extraites d'un ancien clavier d'ordinateur ou d'ordinateur portable.

Téléchargez le fichier PCB, la source et le firmware

Article original en anglais (traduction : Avancé pour le site cxem.net)

C'est le soir qu'une femme persistante et surdimensionnée apparaît sur le seuil du bureau, proposant d'acheter des plats d'une marque célèbre. Dès le lendemain, j'ai reçu une mission de mon patron (alias) pour protéger sa nature créative des attaques des commerciaux. C'est ainsi qu'est née l'idée de créer un projet nommé Hungry_Wall. Bien entendu, il existe désormais de nombreux services impliqués dans le contrôle de l'accès aux locaux. Mais c'est bien plus intéressant de fabriquer une serrure électronique de ses propres mains, surtout pour moi, programmeur et ingénieur en électronique novice.

Comme on dit, l'essentiel est de rédiger correctement les spécifications techniques, c'est-à-dire ce que l'on souhaite obtenir comme résultat.

  1. Créez un système de reconnaissance de clés.
  2. Comparez la clé avec la base de données, et si le code de la clé présentée correspond à l'un de ceux enregistrés dans la base de données, ouvrez la serrure.
  3. Prenez les mesures du capteur magnétique pour identifier l'état de la porte et si la porte est ouverte, fermez la serrure.
  4. Utilisez une minuterie après laquelle la serrure se ferme si nous changeons d'avis sur l'entrée/sortie. Ceci est conçu pour empêcher les « ennemis » de pénétrer dans l’antre secret en profitant de notre changement d’humeur.
  5. Assurez-vous que la porte s'ouvre à l'aide d'un bouton situé à l'intérieur de la pièce.
  6. Enregistrement d'une nouvelle clé dans la base de données après présentation du passe-partout et, bien entendu, enregistrement du passe-partout lui-même.
  7. Supprimer une clé de la base de données (fonctionnalité).
  8. Système d’affichage pour une plus grande attractivité.

La moitié du travail est fait, il ne reste plus qu'à mettre en œuvre le plan en matériel et en logiciel. Pour ce faire, vous avez besoin de :

  1. Serrure électrique
  2. Lecteur de carte proxy (em-Marin) "CP-Z" d'IronLogic
  3. Clés ou cartes pour l'enregistrement dans la base de données
  4. Bouton
  5. Alimentation 12 V
  6. Corps (pour que tout soit soigné et beau)
  7. Electronique – microcontrôleur ATmega 8, « cribX28 », stabilisateur KR1158EN5V, transistor IRLU 024 N, 6 connecteurs KLEM 2, 1 connecteur WF 3 (port COM), condensateur, LED et résistances au goût.

La disposition du tableau est illustrée dans le diagramme 1.

Les composants internes de la carte sont illustrés à la figure 1.

Pour résoudre les problèmes assignés, tous les appareils utilisés sont divisés en blocs logiques présentés dans le diagramme 2.

Le bloc de serrure comprend une serrure électrique elle-même, une minuterie TimeOpen, qui permet de régler la durée maximale d'ouverture de la serrure, et un capteur magnétique qui indique l'ouverture et la fermeture de la porte. L'entrée du bloc serrure est la commande d'ouverture de la serrure (Open), provenant des blocs dame de nage et boutons. Le bloc oarlock se compose d'un dispositif de lecture, d'une base de données et d'une minuterie TimeMaster, qui définit le temps maximum de soumission d'une nouvelle clé pour l'écriture dans la base de données. L'entrée dans le bloc s'effectue sur présentation d'une clé ou d'un master. Le bloc bouton est constitué d'un bouton pouvant prendre 2 états (appuyé/non appuyé).

Pour lire les cartes sans contact, on utilise le « CP-Z Proxy Card Reader (em-Marin) » d'IronLogic ; sa particularité est qu'il émule un iButton (1-wire) si vous y apportez une carte proxy.. cela vous permet pour simplifier la programmation du verrou, il convient toutefois de noter que cette version du lecteur possède son propre râteau sous-marin.

Le principe de fonctionnement est extrêmement simple. Lorsque vous présentez la clé, son code est lu et comparé à la base. Si la clé est trouvée dans la base de données, la serrure reçoit la commande Ouvrir. Ici il faut prendre en compte la particularité de la serrure : l'ouverture doit se faire par clics (ouvrir-fermer-ouvrir). Cela offre une protection contre le blocage de la serrure. Lorsque le master est présenté, la logique du programme change. Sa présence n’altère en rien « l’ambiance » du château. Il est vu comme une sorte de sultan turc, prêt à enregistrer (écrire sur EEPROM) sa prochaine épouse (clé). Ceux. lorsque la clé est présentée (si elle n'a pas été préalablement enregistrée), son code est écrit dans l'EEPROM. Ici, il faut tenir compte du fait que la mémoire du mikruha n'est pas en caoutchouc et, par exemple, pour ATmega 8, elle est de 512 octets, ce qui permet d'enregistrer un maximum de 255 clés (si vous utilisez 2 octets pour stocker 1 clé, comme dans notre cas). La toute première clé présentée est enregistrée comme maître. Appuyer sur le bouton envoie également la commande Ouvrir à la serrure. Le système d'affichage rend notre projet plus coloré et informatif. Si la diode rouge est allumée, le passage est bloqué ; si elle est verte, vous pouvez y aller ! Lorsque le maître est activé, les deux LED s'allument.

Il est important de noter que le verrou s'ouvre lorsqu'une unité logique (c'est-à-dire une tension) lui est appliquée et qu'il est dans un état fermé si aucune tension n'est appliquée. Cela vous permet de bloquer le passage si vous oubliez de payer les services publics et que votre électricité est coupée.

L'apparence de l'ensemble de l'appareil est illustrée à la figure 2. Tout est assez soigné et beau.

Vous pouvez télécharger les sources

J'ai décidé de jouer avec un clavier à membrane 3x4 que j'avais commandé il y a longtemps en Chine. Il existe de nombreux types et variétés de ce clavier, certains dans des boîtiers en plastique et d'autres en film. Ma version 3x4 a 7 broches, le brochage du clavier 4x4 est indiqué dans le schéma ci-dessous, le schéma est un à un. La disposition est presque identique à celle du clavier 3x4, sauf que la rangée droite de touches "A, B, C, D" est manquante.

Schéma de connexion du clavier 3x4 :

Le clavier 4x4 se connecte de la même manière, la quatrième rangée est "A, B, C, D "se connecte au port PD7 du microcontrôleur.

Code source du programme :

$regfile = "m8def.dat"
$cristal = 1000000

"configuration de l'affichage
Configuration Lcdpin=Pin, Rs=Portc.0, E=Portc.1, Db4=Portc.2, Db5=Portc.3, Db6=Portc.4, Db7=Portc.5
Configuration Lcd = 20*4
Curseur désactivé
Cls

"configuration du clavier
Config Kbd = Portd, anti-rebond = 40, délai = 100

"variables
Dim Key_char As Byte "numéro de la touche enfoncée
Dim Key_str As String * 1"caractère de la touche appuyée sur le clavier
Dim Result As String * 20 "résultat des frappes
Déflcdchar 1, 32, 14, 10, 31, 27, 27, 14, 32"

Emplacement 1, 4
Écran LCD Chr(1)

Résultat = ""

"Boucle principale du programme
Faire

Key_char = Getkbd() "lorsque la touche n'est pas enfoncée la fonction renvoie la valeur 16 à la variable

Si Key_char<>16 Puis "si la variable n'est pas égale à 16, alors le bouton a été appuyé
Key_str = Lookupstr(key_char , Keyboard_data) "nous extrayons du tableau le caractère de la touche enfoncée
Résultat = Résultat + Key_str
Fin si

Emplacement 2 , 3
Lcd Result "affiche le résultat de la pression

Attendre 100

Si Résultat = "123" Alors
Emplacement 2 , 2
Écran LCD "DÉVERROUILLER"
Attends 1
Aller à Pizdec
Autre
Fin si

Si Key_str = "5" Alors
Emplacement 2 , 2
Lcd "RETOUR"
Attends 1
Aller à Pizdec
Autre
Fin si

Boucle

Données_clavier :
Données "1" , "4" , "7" , "*" , "2" , "5" , "8" , "0"
Données "3" , "6" , "9" , "#" , "A" , "B" , "C" , "D"

Pizdec :
Retour

Lorsque vous maintenez la touche enfoncée, les caractères commencent à se répéter ; le programme peut être légèrement modifié si vous ajoutez la ligne suivante à la fin de la première ligne de l'exemple :

Key_char = Getkbd()
Si Key_char<>16 Puis
Aller à 1
Fin si

De cette façon, nous évitons de répéter des caractères lorsque nous maintenons une touche enfoncée. Nous pouvons appuyer sur le bouton pendant au moins une minute, et il n'y aura qu'un seul symbole.

Lorsque vous allumez l'appareil, l'icône « cadenas » s'affiche sur la ligne supérieure et les caractères saisis s'affichent sur la ligne inférieure.


Par défaut, le code dans le code source est « 123 » ; dès que nous saisissons ce code (dès que nous appuyons sur le troisième bouton correct), « UNLOCK » apparaîtra sur la ligne du bas.

Je pense que le principe de fonctionnement du programme est clair pour vous, il ne reste plus qu'à ajouter un peu au programme, préciser les ports à déclencher lorsque le bon code est saisi.

Vidéo de la serrure à combinaison en action :

Fichiers de projet avec code source (~ 15 Ko.)

Version prête de la serrure à combinaison :

Vous trouverez ci-dessous un schéma de fonctionnement prêt à l'emploi d'une serrure à combinaison avec des ports configurés pour connecter un entraînement électrique et des LED. L'entraînement électrique peut être connecté à une voiture, ce qu'on appelle l'entraînement de serrure de porte.

Si le code PIN est correctement saisi, le variateur fonctionnera pendant 1 seconde, ce temps est-il suffisant pour que le mécanisme de verrouillage fonctionne (ouvre la porte) ? le lecteur est connecté via un transistor au port PORTB.4. Si, en essayant de saisir le code PIN, vous vous êtes trompé de numéro, appuyez sur le bouton « dièse » et vous pourrez recommencer à saisir le code...

Lorsque le code PIN est correctement saisi, le verrou s'ouvre et l'écran affiche « UNLOCK ».

Le projet Proteus et le firmware se trouvent dans l'archive ci-dessous, le code PIN de la serrure est indiqué dans l'archive au nom du fichier du firmware.

Basé sur des matériaux du site avrproject.ru

Projet Proteus et fichier du firmware (~ 16 Ko.)