Blocare cod pe schema atmega8. Blocare cu combinație pe microcontrolerul AVR ATTINY2313

O încuietoare cu combinație va ajuta la restricționarea accesului neautorizat la spațiile cu obiecte de valoare. Una dintre opțiunile pentru implementarea unei blocări cu combinație pe microcontrolerul PIC16F628A este prezentată în acest articol.

Figura de mai jos prezintă o diagramă a unui lacăt cu combinație. Miezul circuitului este microcontrolerul PIC16F628A. Algoritmul pentru executarea comenzilor de bază este prezentat în Figura 2. Codul programului este scris în limbaj de asamblare, vezi listarea în folderul CL\16F628ATEMP.ASM al arhivei proiectului. Dispozitivul este controlat de un singur buton. Prin apăsarea butonului, se realizează o schimbare secvențială a modurilor de funcționare ale dispozitivului. Sunetul apăsării butonului este furnizat de un emițător de sunet piezo. Un afișaj cu un controler încorporat este utilizat pentru a afișa vizual informațiile.

Ciclul complet de programare în circuit și depanare a microcontrolerului PIC16F628A a fost efectuat folosind MPLAB IDE v8.15 (mediu de dezvoltare integrat), compilatorul MPASM v5.22 (inclus în MPLAB IDE v8.15) și MPLAB ICD 2 (in- depanator de circuite). Pentru cei care nu au instrumentele enumerate mai sus, dar au propriul program de lucru cu fișiere HEX și alt programator, puteți găsi fișierul 16F628ATEMP.HEX în proiectul corespunzător.

Microcontrolerul DD1 are pini funcționali RA0, RB0 – RB7, CCP1, care sunt utilizați pentru a introduce și a ieși informații. Microcontrolerul DD1 nu are o funcție de resetare forțată; pinul de resetare este conectat prin rezistența R1 la potențialul de alimentare pozitiv. Un oscilator RC pe cip este utilizat pentru a genera frecvența ceasului.

Butonul tact SB1 este conectat la pinul RA0 prin rezistența de limitare a curentului R3. În poziția eliberată a butonului de ceas SB1, rezistența R7 simulează un nivel logic scăzut. Microcontrolerul DD1 recunoaște trei stări ale butonului de ceas SB1:

  1. Neapasat;
  2. Apăsat scurt (mai puțin de 1 s);
  3. Apăsat și menținut (mai mult de 1 s).

Emițătorul de sunet piezo P1 ajută la distingerea stărilor butonului de ceas SB1. Deci, în starea 1, nu este generat niciun sunet, în starea 2, sunetul este generat până când microcontrolerul recunoaște starea 3, iar în starea 3, nu este generat niciun sunet.

Ecranul cu cristale lichide HG1 este folosit pentru a afișa informații. Specificațiile tehnice pentru afișaj pot fi găsite pe site. Are un controler care implementează funcția de generare a caracterelor. Afișează două rânduri de șaisprezece caractere fiecare. Afișajul este controlat prin pinii microcontrolerului RB0, RB1, RB4 – RB7. Datele sunt încărcate în nibbles, prin pinii RB4 – RB7. „Latch” - RB1. Selectăm registrul de semnal la pinul RB0. Folosind rezistențele R5 și R6 setăm contrastul afișajului HG1. Iluminarea de fundal a afișajului este conectată la alimentare prin intermediul rezistenței de limitare a curentului R4. Ecranul HG1 este înșurubat pe placă cu 3 x 15 mm separatoare din alamă și 3 x șuruburi de 6 mm.

Formând logica pe RB2, ele realizează deschiderea sau închiderea tranzistorului cu efect de câmp VT1, care pornește și dezactivează încuietoarea electrică conectată la blocul de borne X1. Încuietoarea electrică trebuie să fie proiectată pentru o tensiune de funcționare de 9-15 V și să consume un curent de cel mult 1 A. Când este aplicată tensiune la broasca electrică, aceasta trebuie să se deschidă dacă nu există tensiune, este blocată (închis). ).

Un emițător de sunet piezo P1 cu o frecvență de generare a sunetului de funcționare de 4 kHz este conectat la pinul CCP1 (implementare hardware a PWM, frecvență 4 kHz, ciclu de lucru 2) prin rezistența de limitare a curentului R2.

Dispozitivul este alimentat de la o sursă de tensiune AC sau DC conectată la conectorul X2. Tensiunea nominală a sursei de alimentare este de 9 - 15 V. Curentul nominal al sursei de alimentare este de 1 A. Pentru a stabiliza sursa de alimentare, se utilizează un circuit convențional: o punte de diode VD1, un stabilizator liniar DA1, condensatori de filtru C1 - C4.

Dispozitivul poate fi utilizat în intervalul de temperatură de la –20 °C la +70 °C.
Microcontrolerul este programat în așa fel încât să aibă unsprezece stări de funcționare.

  1. Când dispozitivul este pornit, este citită memoria de date EEPROM nevolatilă, de unde sunt descărcate starea blocării și datele codului. Dispozitivul deschide sau închide broasca electrică în funcție de registrul de stare a blocării de citire. Dispozitivul intră într-o stare în care afișează statistici de codificare, de ex. 2.
  2. În această stare, dispozitivul afișează „Stat. Stat.” iar în linia de jos afișează statisticile de codificare, și anume numărul de codificări și numărul de decodări*. După o apăsare scurtă sau menținută a butonului tact, dispozitivul, ghidat de registrul de stare a blocării, intră în starea de codare dacă încuietoarea este deschisă, adică. 3 și intră în starea de decodare dacă încuietoarea este închisă, adică. 4.
  3. Dispozitivul afișează inscripția „Cod cod” în linia de sus a afișajului și intră în starea în care este introdus codul (subrutina „Intrare cod”), adică 5. Contorul pentru numărul de codificări este incrementat. Dispozitivul intră într-o stare în care schimbă starea lacătului, închizându-l, adică. 9.
  4. Dispozitivul afișează inscripția „Decode D.code” în linia de sus a afișajului și intră în starea în care este introdus codul (subrutina „Code Entry”), adică. 5. Contorul numărului de decodare este incrementat. Dispozitivul compară codul introdus cu codul stocat în memoria EEPROM nevolatilă. Dacă codul se potrivește, atunci dispozitivul intră într-o stare în care schimbă starea lacătului, deschizându-l, adică. 10, iar dacă codul nu se potrivește, acesta intră într-o stare în care afișează informații despre eroare, adică 11.
  5. Prima cifră a codului din patru cifre este evidențiată între paranteze drepte pe linia de jos a afișajului. Prin apăsarea scurtă a butonului ceasului, registrul cifrei introduse** este incrementat. Dacă butonul tact este apăsat și menținut mai mult de 1 s, dispozitivul intră într-o stare în care este selectată a doua cifră a codului, adică. 6.
  6. A doua cifră a codului din patru cifre este evidențiată între paranteze drepte pe linia de jos a afișajului. Prin apăsarea scurtă a butonului ceasului, registrul cifrei introduse** este incrementat. Dacă butonul tact este apăsat și menținut mai mult de 1 s, dispozitivul intră într-o stare în care este selectată a treia cifră a codului, adică. 7.
  7. A treia cifră a codului din patru cifre este evidențiată între paranteze drepte pe linia de jos a afișajului. Prin apăsarea scurtă a butonului ceasului, registrul cifrei introduse** este incrementat. Dacă butonul tact este apăsat și menținut mai mult de 1 s, dispozitivul intră într-o stare în care este selectată a patra cifră a codului, adică. 8.
  8. A patra cifră a codului din patru cifre este evidențiată între paranteze drepte pe linia de jos a afișajului. Prin apăsarea scurtă a butonului ceasului, registrul cifrei introduse** este incrementat. Dacă butonul tact este apăsat și menținut mai mult de 1 s, dispozitivul intră în starea în care a fost solicitată subrutina „Introducere cod”, adică. 3 sau 4.
  9. Dispozitivul închide lacătul și stochează starea și codul de blocare. Linia de sus afișează inscripția „Salvare Salvare”. iar pe linia de jos există un cod din patru cifre. Apoi, dispozitivul intră într-o stare în care afișează statistici de codificare, de exemplu. 2.
  10. Dispozitivul deschide lacătul și stochează starea și codul de blocare. Linia de sus afișează inscripția „Salvare Salvare”. iar pe linia de jos există un cod din patru cifre. Apoi, dispozitivul intră într-o stare în care afișează statistici de codificare, adică 2.
  11. Afișajul arată „Error Error” pe linia de sus și un cod din patru cifre pe linia de jos. (Foto 4) După o apăsare scurtă sau lungă a butonului tact, dispozitivul intră într-o stare în care afișează statistici de codificare, de exemplu. 2.

*După depășirea contorului (mai mult de 65535), acesta este resetat la zero și reîncepe numărarea, ceea ce duce la o defecțiune în statistică, în sensul că numărul de codificări poate fi mai mare decât numărul de decodificări. Prin urmare, se recomandă deconectarea dispozitivului pentru a reseta contoarele.

** Când numărul 9 este incrementat, acesta este resetat la zero.

Deoarece memoria EEPROM a microcontrolerului este protejată de citirea în circuit (setată în configurație), nu va fi posibil să citiți și să aflați parola în circuit și, prin urmare, să porniți încuietoarea electrică. Rămâne o modalitate mai simplă de a-l deschide - aplicați direct tensiune la încuietoarea electrică. Concluzionam că dispozitivul de „blocare cu cod” și încuietoarea electrică trebuie protejate în mod fiabil împotriva pătrunderii persoanelor neautorizate. Butonul și afișajul trebuie să fie liber accesibile.

Este de remarcat faptul că dispozitivul poate fi dezactivat, dar starea de blocare și codul sunt încă stocate în memoria EEPROM nevolatilă după introducerea codului. Este interzisă deconectarea dispozitivului în timpul stocării codului în memoria EEPROM nevolatilă.

Merită să acordați atenție unui detaliu important în funcționarea dispozitivului. Când dispozitivul este pornit, acesta poate deschide scurt încuietoarea electrică (pentru mai puțin de 1 s), în ciuda faptului că starea închisă a broascatului electric este stocată în memoria EEPROM nevolatilă. Nu am detectat această eroare la simularea execuției codului de program în IDE-ul MPLAB. Dacă dispozitivul este deconectat în mod neașteptat în timp ce se salvează codul în memoria EEPROM, codul poate fi salvat incorect și nu va fi posibilă restabilirea acestuia, ceea ce va duce la reprogramarea microcontrolerului. De aici și recomandarea cu privire la necesitatea unei surse de alimentare stabile și (sau) de rezervă a dispozitivului. GB1 – alimentare de rezervă.

Fișierele pentru realizarea unei plăci de circuit imprimat pot fi găsite în folder.

Următoarele piese pot fi înlocuite în această unitate. Microcontroler DD1 din seria PIC16F628A-I/P-xxx cu o frecvență de ceas de funcționare de 20 MHz într-un pachet DIP18. Ecranul HG1 se va potrivi cu oricare dintre seria WH1602x. Stabilizator de tensiune DA1 domestic KR142EN5A (5 V, 1,5 A). Tranzistorul cu efect de câmp MOSFET VT1 (canal N) într-un pachet I-Pak (TO-251AA), este potrivit un analog al valorii nominale indicate în diagramă. Emițător de sunet piezo P1 cu o frecvență de generare a sunetului de funcționare de 4 kHz. Puntea de diode VD1 poate fi utilizată din oricare dintre seria 2Wxx. Conectorul de alimentare X2 este similar cu cel prezentat în diagramă cu un contact central d=2,1 mm. Condensatoarele nepolare C1 și C2 cu o valoare nominală de 0,01 – 0,47 µF x 50 V. Condensatoarele electrolitice C3 și C4 au aceeași putere capacitivă, iar tensiunea nu este mai mică decât cea indicată în diagramă.

Descărcați arhiva cu proiectul de blocare cu cod: 16F628Code_Lock.rar

Diagrama schematică a unui sistem de securitate cu două niveluri, care este construit folosind microcontrolere AVR din seria ATMega. Nivelul 1 de securitate - lacăt cu combinație. Nivelul 2 de securitate - dispozitiv de securitate. Două plăci funcționale incluse în sistem sunt bazate pe microcontrolere ATmega 8535.

Diagrama bloc

Microcontrolerele (familii AVR, MCS-51 etc.) cu arhitectura lor, resursele software și hardware, precum cuburile digitale, sunt ideale pentru dezvoltarea diferitelor dispozitive de securitate, alarme, încuietori cu combinație etc.

Orez. 1. Schema bloc a sistemului de securitate.

Sistemul (Fig. 1) are două componente principale: încuietoare cu combinație A2 și dispozitiv de securitate A1. Dispozitivul de securitate A1 are 24 de linii de intrare independente la care sunt conectate întrerupătoarele de limită S1...S24. Aceste comutatoare controlează starea ferestrelor 01...05, ușilor D1, trapelor L1, L2.

Numărul obiectelor de control de mai sus poate varia și este legat de fiecare local specific sau perimetru protejat.

Numărul de dispozitive de securitate A1 și încuietori cu combinație A2 utilizate, de asemenea, nu este limitat în niciun fel și este determinat de condițiile de securitate, gradul de protecție, caracteristicile clădirilor, spațiilor etc. Este clar că întrerupătoarele de limită S1...S24 pot controlați acele uși, la care accesul la trape este limitat de încuietori cu cod (sau încuietori cu combinație) A2. Schema schematică a lacătului cu combinație este prezentată în Fig. 2.

Diagrama schematică

Să luăm în considerare funcționarea dispozitivului de securitate. Elementele externe (la distanță) în raport cu dispozitivul sunt 24 de întrerupătoare de limită (S1...S24), care vă permit să controlați starea a 24 de obiecte (de exemplu, o ușă). Un comutator limită controlează starea unei uși. Dacă ușa este închisă, întrerupătorul de limită este deschis.

Utilizatorul (operator, dispecer) poate verifica vizual starea ușii pe baza stării indicatorului.

Dacă ușa este deschisă, întrerupătorul de limită este închis. Indicatorul clipește periodic. Dacă ușa este închisă, întrerupătorul de limită este deschis. Indicatorul nu este aprins (stins). Lăsați comutatorul de limită S1 să fie instalat în ușa nr. 1. Lăsați comutatorul de limită S2 să fie instalat în ușa nr. 2 etc.

Dacă ușa nr. 1 este deschisă, indicatorul HL2 clipește periodic (dacă ușa nr. 1 este închisă, indicatorul HL2 este stins). Dacă ușa nr. 2 este deschisă, atunci indicatorul HL3 clipește periodic (dacă ușa nr. 1 este închisă, indicatorul HL3 este stins), etc.

Autorul nu se va opri asupra niciunui design specific al instalării comutatorului de limită, precum și asupra designului dispozitivului în sine. Interfața de monitorizare și control a dispozitivului include: întrerupătoare basculante SA1, SA2, indicatoare HL1...HL25. Din punct de vedere structural, este recomandabil să plasați toate elementele de mai sus pe un panou de control separat.

Orez. 2. Schema schematică a unei încuietori cu combinație pentru un sistem de securitate.

Elementele interfeței de control al dispozitivului au următoarele scopuri:

  • SA1 (SECURITY) - comutator de alarmă. Când acest comutator este setat în poziția „ON”, dispozitivul este armat. Dispozitivul este armat după ~ 10 secunde. din momentul în care comutatorul basculant SA1 este instalat în poziția „ON” din poziția „OFF”. După setarea alarmei, alarma este declanșată ~ 10 secunde din momentul în care orice comutator de limită S1...SA24 este închis.
  • SA2 - comutator de sunet. Acest comutator basculant funcționează numai în modul de monitorizare a stării ușii. Comutatorul SA1 trebuie setat în poziția „OPRIT”. Când setați comutatorul SA2 în poziția „ON”, când deschideți orice ușă cu un emițător piezoelectric BA1, acesta va emite imediat un semnal sonor care durează ~ 2 secunde. Dacă acest comutator este în poziția „OPRIT”, atunci când orice ușă este deschisă, numai indicatorul corespunzător va clipi periodic, emițătorul piezoelectric BA1 va fi oprit.
  • HL1 - indicator de activare a modului de securitate. Dacă dispozitivul este în modul „securitate”, acest indicator este aprins, dacă se află în modul „control stare ușă”, acest indicator este stins.

Alarma este declanșată - aceasta înseamnă: releul K1 este pornit permanent. Pinii 5 și 6, precum și 2 și 3 ai acestui releu sunt închise. Emițător piezoelectric BA1 - se aprinde și se oprește cu o perioadă de ~ 1 secundă. Pentru a opri alarma, comutatorul SA1 trebuie să fie setat în poziția „OPRIT”.

Să luăm în considerare principalele componente funcționale ale schemei de circuit a dispozitivului. Dispozitivul se bazează pe microcontrolerul DD1, a cărui frecvență de funcționare este setată de un generator cu un rezonator extern ZQ1 la 10 MHz.

Orez. 3. Schema schematică a unui dispozitiv de securitate pe un microcontroler.

La portul PD al microcontrolerului DD1 sunt conectate comutatoarele SA1, SA2 cu un emițător piezoelectric BA1, indicator HL1 și o cheie pe tranzistoarele VT1, VT2 pentru controlul releului K1. Limitatoarele S1...S24 si indicatoarele HL2...HL25 sunt conectate la porturile PB, RA, PC ale microcontrolerului DD1.

Alimentarea acestor indicatori este furnizată printr-un comutator de pe tranzistorul VT3, care este controlat de la pinul 21 al microcontrolerului DD1. Rezistoarele R10...R17, R20...R27, R28...R35 sunt limitatoare de curent pentru indicatorii HL2...HL25. Rezistorul R8 limitează curentul pentru indicatorul HL1.

Releul K1 este controlat corespunzător de la pinul 14 al microcontrolerului DD1. Tensiunea de alimentare +12 V și +5 V este furnizată dispozitivului de la conectorul XI. Condensatorul C5 filtrează ondulațiile în circuitul de alimentare de +5 V Condensatorii de blocare C4 sunt amplasați de-a lungul circuitului de alimentare al microcontrolerului DD1.

În algoritmul de funcționare al dispozitivului se pot distinge două moduri de funcționare: modul de monitorizare a stării ușii și modul de securitate. Să luăm în considerare algoritmul de funcționare a dispozitivului în modul de monitorizare a stării ușii. Țineți toate ușile unității protejate închise. Comutatorul SA1 este în poziția „OPRIT”.

Comutatorul SA2 este în poziția „ON”. După ce dispozitivul este alimentat, în timpul inițializării, jurnalele sunt scrise pe toți biții porturile PB, RA și PC ale microcontrolerului DD1. 1. Comutatoarele de pe tranzistoarele VT1...VT2 sunt închise, indicatorul -HL1 este stins.

Indicatoarele HL2...HL25 sunt stinse. Întrerupătoarele de limită S1...S24 sunt deschise. Un semnal periodic (undă pătrată) cu o perioadă de aproximativ 1 s este generat de la pinul 21 al microcontrolerului DD1. Dacă deschideți ușa nr. 1, întrerupătorul de limită S5 se va porni.

Indicatorul HL2 va clipi periodic cu o perioadă de ~ 1 secundă. Emițătorul piezoelectric BA1 va produce un semnal sonor cu o durată de ~ 3 secunde.

Dacă deschideți ușa nr. 2, comutatorul de limită S6 se pornește. Indicatorul HL2 va clipi periodic cu o perioadă de ~ 1 secundă. Emițătorul piezoelectric BA1 va produce un semnal sonor cu o durată de aproximativ 2 secunde etc. Dacă setați comutatorul SA2 în poziția „ON”, atunci când orice întrerupător de limită este închis (când se deschide orice ușă), indicatorul corespunzător va clipi.

Să luăm în considerare funcționarea dispozitivului în modul de securitate. Țineți toate ușile unității protejate închise. Comutatorul SA1 este setat pe „OFF”.

Dispozitivul intră în modul de securitate la ~10 secunde după setarea comutatorului SA1 în poziția „ON”. În acest timp, este necesar să închideți toate ușile și să părăsiți unitatea protejată. Este clar dacă perimetrul obiectului protejat este suficient de mare și în 10 secunde. Este imposibil să închideți toate ușile, atunci toate ușile trebuie închise înainte de a arma obiectul.

Dacă în modul de securitate oricare dintre întrerupătoarele de limită S1...S24 este pornit (orice ușă este deschisă), atunci un semnal de nivel logic de 0 va fi prezent la ieșirea corespunzătoare a porturilor PB, PA, PC ale microcontrolerului DD1. apoi după ~ 10 sec. Alarma sonoră se va porni (emițător piezoelectric BA1). În acest caz, la pinul 14, microcontrolerul DD1 va seta nivelul la log.0 (releul K1 se va porni).

Dacă un „prieten” pătrunde în obiectul protejat, atunci trebuie să seteze comutatorul SA1 în poziția „OPRIT” în aproximativ 10 secunde, altfel alarma se va declanșa. Este clar că accesul la comutatorul SA1 ar trebui limitat.

Dacă un „străin” intră într-un obiect protejat (printr-o ușă deschisă), atunci are nevoie de ~10 secunde. Găsiți comutatorul SA1 și setați-l în poziția „OPRIT”. Alarma se va porni și dacă oricare dintre întrerupătoarele de limită S1...S24 se aprinde pentru o perioadă scurtă de timp (de exemplu, închideți și închideți imediat ușa). Contactele releului K1 pot fi folosite pentru a închide circuitele de comandă sau pentru a alimenta diferite dispozitive de acţionare, de exemplu, pentru un mecanism de blocare a uşii sau pentru a porni o sirenă (urlă).

Programul dezvoltat în asamblare ocupă doar aproximativ 0,4 KB de memorie de program a microcontrolerului DD1. Resurse hardware neutilizate (liniile PD6, PD7) și software (aproximativ 7,6 KB) ale microcontrolerului DD1 pot fi utilizate pentru opțiuni suplimentare.

De exemplu, puteți instala câteva butoane și adăugați funcția de armare și dezarmare a dispozitivului printr-un cod de acces sau controlați alte dispozitive de acționare. După ce ați înțeles programul, puteți înlocui parametrii dispozitivului setați de software:

  • perioada de clipire a indicatorului HL1;
  • durata semnalului sonor de la emițătorul piezoelectric BA1 în modul de monitorizare a stării ușii;
  • timpul de armare a dispozitivului, precum și timpul de întârziere pentru pornirea alarmei.

Dispozitivul folosește rezistențe S2-ZZN-0.125 cu aceeași putere de disipare și o eroare de 5%. Condensator C5 tip K50-35. Condensator C1...C4 tip K10-17a. Condensatorul C4 este instalat între circuitul +5V și conductorul comun al microcontrolerului DD1. Comutatoare comutatoare SA1...SA2 tip MTD1.

Releu K1, tip RES48B, versiunea RS4.590.202-01. Aceste relee, cu o tensiune de funcționare de 12 V (sau cu o altă tensiune de funcționare), pot fi selectate pentru fiecare caz specific, ținând cont de curentul și tensiunea comutată a actuatorului conectat.

Limitatoarele pot fi selectate absolut oricare pentru fiecare caz specific. Acesta ar putea fi un buton de tip PKN124 sau, de exemplu, un comutator de șină rezistent la apă de tip VPK2111. Emițător piezoelectric BA1-НРМ14АХ.

Tranzistor VT1 - KT829A. Tranzistoare VT2, VT3 -KT3107E. Indicator HL1 - AL307AM, roșu. Indicatorul HL1 poate fi înlocuit cu oricare altul, de preferință cu un curent direct maxim de până la 20 mA.

Să luăm în considerare funcționarea unei încuietori cu combinație (denumită în continuare lacăt) conform figurii 3. Algoritmul funcționării acesteia este destul de simplu: în modul de scriere, un cod este introdus în EEPROM-ul microcontrolerului, care constă din 4 zecimale. cifre și se tastează pe o tastatură cu 7 butoane. În continuare, pentru a verifica, codul înregistrat este citit în modul citire. În modul de funcționare, încuietoarea așteaptă introducerea unui cod.

Microcontrolerul scrie codul introdus în RAM și îl compară octet cu octet cu codul scris în EEPROM. Dacă codurile se potrivesc, microcontrolerul trimite un semnal timp de cinci secunde pentru a porni mecanismul de deschidere a blocării.

În plus, procedura de formare a unui cod poate fi deschisă (codul format este afișat pe afișaj, fiecărui buton apăsat i se atribuie un număr pe afișaj) și închisă (la formarea unui cod, pe afișaj sunt afișate simboluri identice, predeterminate). , fiecărui buton apăsat i se atribuie un simbol specific, de exemplu).

Există un comutator separat în blocare în acest scop. Pentru a activa codul din 4 cifre afișat pe afișaj în modul înregistrare și în modul de operare, trebuie doar să apăsați orice buton de pe tastatură.

Interfața dispozitivului include o scară, un indicator de sinteză a semnelor HG1, o unitate de indicare (afișaj) a indicatoarelor digitale cu șapte segmente HG2...HG4, comutator SA1 și o tastatură (butoane S1...S8).

Butoanele S1...S7 sunt desemnate prin numere de la „1” la „7”. Aceste butoane setează codul de intrare Butonul S8 (P) setează, într-un ciclu, unul dintre cele trei moduri de funcționare: „modul nr. 1”, „modul nr. 2”, „modul nr. 3”. După modul nr. 3, modul nr. 1 este activat.

Elementul nr. 1 al indicatorului HG1 este pornit când se lucrează în modul nr. 1”, elementul nr. 2 al indicatorului HG1 este pornit când se lucrează în modul nr. 2, iar elementul nr. 3 este pornit, respectiv, când se lucrează în modul nr. 3. Pe un afișaj cu 5 cifre (indicatorul cu indicatoare digitale duale HG2, HG3 afișează codul introdus. Indicatorul HG4 afișează simbolurile „3” (când încuietoarea este închisă) și „0” (când încuietoarea este închisă). este deschis).

Comutatorul SA1 setează modul de afișare a codului pe afișajul dispozitivului. Dacă acest comutator este în poziția „1”, atunci codul specificat de la tastatură este afișat pe afișajul dispozitivului. Dacă se află în poziția „2” (mod ascuns), atunci când introduceți un cod, simbolurile sunt afișate în fiecare cifră pe afișajul dispozitivului

În modul nr. 1 (modul de funcționare), lacătul este pregătit să introducă un cod pentru a deschide încuietoarea (dacă, desigur, codul a fost scris anterior în EEPROM). Înainte de a forma codul, codul 0000 este afișat pe afișaj. Elementul nr. 1 al indicatorului HG1 este pornit (celelalte elemente ale indicatorului HG1 sunt oprite).

Indicatorul HG4 afișează simbolul „3” (închis). Folosind butoanele S1...S7, se formează un cod din 4 cifre. Codul format este indicat pe display. După apăsarea oricăruia dintre butoanele S1...S7, microcontrolerul scrie codul primit pe 4 biți în RAM și începe să verifice codul scris în RAM și codul scris în EEPROM. Codurile sunt comparate octet cu octet.

Dacă comparația a avut succes, microcontrolerul trimite un semnal la actuatorul de deschidere a broaștei. Elementul nr. 4 al indicatorului HG1 se aprinde timp de cinci secunde, indicatorul HG4 afișează simbolul „O” (deschis) și jurnalul este setat. 0 pe pinul 21.

După cinci secunde, elementul nr. 4 al indicatorului HG1 se stinge și un jurnal este setat la pinul 21. 1. Afișajul arată din nou codul 0000. Indicatorul HG4 afișează din nou simbolul „3” (închis).

În modul nr. 2 (modul de înregistrare), codul secret este scris în EEPROM. Afișajul arată codul 0000. Elementul nr. 2 al indicatorului HG1 este pornit. Indicatorul HG4 afișează simbolul „3” (închis). Utilizați butoanele SI...S7 pentru a forma codul. Codul format este indicat pe display.

Microcontrolerul scrie codul din 4 cifre afișat pe afișaj pe EEPROM după apăsarea oricăruia dintre butoanele 51...57. După scrierea codului, afișajul afișează din nou codul 0000.

În modul nr. 3 (modul de verificare a codului înregistrat), se verifică codul secret înregistrat în EEPROM. Elementul nr. 3 al indicatorului HG1 este pornit. Indicatorul HG4 afișează simbolul „3” (închis). Codul înregistrat în EEPROM este indicat pe afișaj.

Este clar că accesul la butonul S8 și comutatorul SA1 ar trebui limitat. Din punct de vedere structural, acest lucru nu este atât de greu de făcut.

Să luăm în considerare principalele componente funcționale ale dispozitivului (Fig. 3). Baza dispozitivului este microcontrolerul DD1, a cărui frecvență de funcționare este setată de un generator cu un rezonator extern ZQ1 la 11,0592 MHz. Portul PD al microcontrolerului DD1 controlează indicația dinamică.

Indicatorul dinamic este asamblat pe tranzistoarele VT1...VT5, indicatoare duale, digitale, cu șapte segmente HG2, HG3 și un singur indicator digital HG4. Rezistoarele R7...R14 sunt limitatoare de curent pentru segmentele indicator HG2...HG4. Codurile pentru pornirea indicatorilor de mai sus atunci când indicația dinamică funcționează sunt trimise la portul PC al microcontrolerului DD1.

Pentru ca tastatura să funcționeze, se folosește pinul 19 (PD5) al microcontrolerului DD1. Elementele indicatorului de scară HG1 sunt conectate la pinii portului PB al microcontrolerului DD1. Rezistoarele R2...R5 sunt limitatoare de curent pentru elementele indicatoare HG1.

Imediat după ce este aplicată alimentarea, un semnal de resetare hardware a sistemului pentru microcontrolerul DD1 este generat la pinul 9 al microcontrolerului DD1 printr-un circuit RC (rezistor R1, condensator C3). Afișajul arată codul 0000. Elementul nr. 1 al indicatorului HG1 este pornit. Indicatorul HG4 afișează simbolul „3” (închis).

Tensiunea de alimentare +5V este furnizată dispozitivului de la conectorul XI. Condensatorul C5 filtrează ondulațiile în circuitul de alimentare +5 V. Condensatorul de blocare C4 este situat de-a lungul circuitului de alimentare DD1.

Foarte pe scurt despre program. Programul folosește două întreruperi: Resetare și întreruperea temporizatorului TO, al căror handler începe cu eticheta TIM0. Când treceți la eticheta Reset, stiva, temporizatorul, porturile, precum și steagurile și variabilele utilizate în program sunt inițializate.

Temporizatorul TO generează întreruperi de depășire (bitul TOIE0 este setat în registrul TIMSK). Factorul de pre-diviziune a ceasului cronometrului este setat la 64 (numărul 3 este scris în registrul TCCR0).

În programul principal sunt incluse elemente ale indicatorului HG1. Elementele incluse ale acestui indicator, așa cum s-a menționat mai sus, determină modul de funcționare curent al blocării. În gestionarea întreruperii temporizatorului TO se efectuează următoarele: procedura de interogare a butoanelor S1...S8, funcționarea indicației dinamice, scrierea unui cod secret în EEPROM, citirea unui cod secret din EEPROM, conversia unui număr binar într-un cod pentru afișarea informațiilor despre indicatoarele dispozitivului cu șapte segmente, precum și durata intervalului de timp de cinci secunde necesară pentru a porni actuatorul solenoid.

Un buffer de afișare pentru afișarea dinamică este organizat în memoria RAM al microcontrolerului de la adresa $61 la adresa $70. Mai jos este distribuția detaliată a spațiului de adrese din RAM-ul microcontrolerului.

  • $60 este adresa de pornire a RAM-ului microcontrolerului.
  • $61...$64 - adrese unde sunt stocate codul specificat pentru deschiderea încuietorului și simbolul „3”. Aceste adrese sunt afișate în modul nr. 1 (buffer nr. 1).
  • $66...$69 - adrese unde sunt stocate codul citit din EEPROM și simbolul „3”. Aceste adrese sunt afișate în modul nr. 3 (buffer nr. 2).
  • $6С...$70 - adrese unde sunt stocate simbolurile pentru formarea ascunsă a codului și simbolul „3”. Aceste adrese sunt afișate în modul nr. 1 (buffer nr. 3).

Drapelele implicate în program sunt localizate în registrele R19 (flo) și R25 (flo1).

Programul de asamblare dezvoltat ocupă aproximativ 1,2 KB de memorie de program. După ce ați înțeles programul, cu modificări minore ale schemei de circuit, folosind resursele hardware și software gratuite ale microcontrolerului DD1, puteți, de exemplu, să creșteți numărul de cifre de pe afișaj și numărul de butoane sau să adăugați o alarmă sonoră.

Rezistoarele de tip C2-ZZN sunt potrivite orice altele cu aceeași putere de disipare și o eroare de 5%. Condensatoare C1...C4, tip - K10-17a, C5 - K50-35a. conector XI tip WF-4. Condensatorul C4 este instalat între circuitul +5V și conductorul comun al microcontrolerului DD2. Pentru a testa prototipul, a fost folosit un comutator SA1 de tip VDMZ-8.

Pentru instalarea într-o carcasă bloc, puteți utiliza, de exemplu, un comutator de tip MTZ. Afișajul are o cifră evidențiată care indică simbolurile „3” și „O” (indicatorul HG4) pe fundalul celorlalte cifre ale interfeței. Prin urmare, pentru această categorie, au fost selectați un indicator verde HDSP-F501 cu șapte segmente și indicatorii verzi DA56-11GWA HG2, HG3.

Blocarea și dispozitivul de securitate nu necesită nicio configurație sau reglare. Când sunt instalate corect, încep să funcționeze imediat.

Codul sursă și firmware-ul programelor - Descărcare (8 KB).

Shishkin S.V. RK-07-16.

Literatură:

  1. A. V. Belov Creăm dispozitive pe microcontrolere.
  2. S. V. Şişkin. Blocare cu combinație bazată pe un microcontroler. R-10-2011.

Lucrez ca electrician în nordul îndepărtat. Iarna am avut mereu o problemă: lacătul de la intrarea în magazinul de electricitate îngheață. Și apoi mi-a atras atenția revista „Radio” nr. 5 pentru 2008. Acolo a fost publicat un articol al lui E. Pereverzev „Digital Code Lock”.

Am decis și am făcut-o. Redesenat un sigiliu dintr-o revistă. Am lipit circuitul.
Am încărcat firmware-ul și circuitul a funcționat imediat, deși acesta este primul meu circuit pe un microcontroler.

Despre construcția mea

Diagrama arată o baterie, dar nu am instalat-o.
Lipsa curentului electric in magazinul de electricitate este o prostie, dar am luat in calcul bateria pe sigiliu.
Fișierul „1.hex” este firmware flash, fișierul „2.hex” este firmware EEPROM.
Codul de deschidere „1, 2, 3” este introdus inițial în EEPROM. Codul se schimbă când încuietoarea este deschisă, după apăsarea butonului „#”. Codul poate conține până la 125 de caractere.

Versiunea semnului din articolul lui E. Pereverzev

Circuitul în sine, butoanele „Deschidere” și „Închidere”, au fost plasate în cutia de alimentare sub unitatea de comandă a comutatorului de vid.

Sursa de alimentare a fost folosită de la un scaner vechi.
Solenoidul a fost folosit dintr-un vechi laborator electric, un dezavantaj este că solenoidul consumă 1,5 A.

Am luat tastatura de la un telefon vechi.


Contactele de cauciuc au trebuit îndepărtate pentru că nu vor funcționa la frig. În locul lor am instalat butoane SWT-9. Încă nu se poate instala încuietoarea (e frig). Dar schema este pe deplin funcțională.

--
Vă mulțumim pentru atenție!
Igor Kotov, redactor-șef al revistei Datagor

Articol original de la Radio:
🕗 20.12.11 ⚖️ 512,66 Kb ⇣ 111 Salut, cititor! Mă numesc Igor, am 45 de ani, sunt siberian și inginer amator în electronică pasionat. Am venit cu, am creat și întrețin acest site minunat din 2006.
De mai bine de 10 ani, revista noastră există doar pe cheltuiala mea.

Bun! Freebie-ul s-a terminat. Dacă vrei fișiere și articole utile, ajută-mă!

Circuitul de apel de cod este implementat pe microcontrolerul ATtiny2313. Circuitul de blocare cu combinație constă dintr-un microcontroler AVR și o cheie cu tranzistor care controlează releul.

Pentru a înregistra codul, închideți comutatorul „sw”, trecând astfel blocarea în modul de înregistrare a codului. Introduceți dimensiunea combinației de coduri folosind butoanele de la 1 la 7 (butoanele 8, 9 și 0 nu sunt utilizate în setul de dimensiuni), introduceți orice combinație de cod egală cu dimensiunea codului.

E-mailul va funcționa. magnetul de blocare, deschizându-l, semnalând astfel că combinația de coduri a fost înregistrată în memoria „EEPROM”.
Mod de lucru. Oprim comutatorul comutator „sw” și punem lacătul în modul de verificare a combinației de coduri înregistrate. Repetăm ​​secvența pentru modul de înregistrare, introducem dimensiunea, introducem codul înregistrat.

Schema schematică a unui lacăt cu combinație pe microcontrolerul AVR:

Apelarea codului începe întotdeauna cu cartea. 1 _ 7 (dimensiune). Când formați o combinație de coduri, codul poate fi introdus nu numai o cifră odată, ci și, de exemplu, prin apăsarea butonului. 7, fără a elibera, apăsați butonul. 8 apoi apăsați butonul . 6 și eliberați un buton în orice secvență, ca rezultat o combinație de cod de cinci cifre va fi formată.

Dacă, după introducerea combinației corecte, încuietoarea nu se deschide, trebuie să apăsați butonul de mai multe ori. 8 - 9 sau 0, maxim de 7 ori, sau apăsați aceste butoane în același timp de două ori și repetați codul. Acest lucru poate însemna indirect că s-a încercat deschiderea încuietorului.

Când se afișează intermitent firmware-ul microcontrolerului, biții siguranțelor trebuie setate după cum urmează:

Lacătul cu combinație asamblat arată astfel:


Răspuns

Lorem Ipsum este pur și simplu un text fals al industriei de tipărire și de tipărire. Lorem Ipsum a fost textul fals standard al industriei încă din anii 1500, când o imprimantă necunoscută a luat o bucătărie de tipărire și a amestecat-o pentru a face o carte cu specimene de tipar. A supraviețuit nu numai cinci http://jquery2dotnet.com/ secole. , dar și saltul în compunerea electronică, rămânând în esență neschimbat A fost popularizat în anii 1960 odată cu lansarea foilor Letraset care conțineau pasaje Lorem Ipsum și, mai recent, cu software-ul de publicare desktop precum Aldus PageMaker, inclusiv versiuni de Lorem Ipsum.

Acest design se caracterizează prin simplitatea designului circuitului, pentru a introduce codul, se folosește un singur buton, care trebuie apăsat de un anumit număr de ori, în conformitate cu cifra codului, observând o pauză la introducerea următoarei cifre. Numărul de cifre din cod este de 4. Pentru a crește secretul, puteți plasa o tastatură în care va fi activ un singur buton pentru introducerea codului. Dacă este introdus codul corect, sistemul va activa releul, cu toate acestea, este posibil să configurați alte funcții atunci când sistemul este activat, pentru aceasta va trebui să treceți în modul de programare a dispozitivului.

Dispozitivul poate fi utilizat în sistemele de control al ușilor de garaj, sistemele de control al iluminatului și sistemele de securitate.

Elementul principal al circuitului este microcontrolerul PIC16F628A, care monitorizează apăsarea butonului, anunță vizual utilizatorul când comanda a fost primită și controlează starea releului. Pentru vizualizare, se folosește un LED, care este conectat în paralel cu butonul de introducere a codului, care vă permite să utilizați doar două fire pentru a instala și conecta butonul în locația dorită.
Pentru alimentarea dispozitivului, este necesară o sursă de alimentare de 12 V, circuitul conține un regulator de tensiune LM7805. LED-ul D3 indică alimentarea cu energie.
Sistemul are două moduri de funcționare: modul normal și modul de programare. În modul normal, dispozitivul își îndeplinește sarcina principală - monitorizează apăsările butoanelor și reacționează atunci când codul este introdus corect. În modul de programare sunt configurați parametrii de bază ai sistemului: cod, timp de activare, mod de funcționare.
Pentru a schimba modul de funcționare (normal/programare), se folosește comutatorul JP1. Când întrerupătorul este oprit - modul de funcționare normal, când este pornit - modul de programare (setări). Trebuie remarcat că într-un mod sau altul este intrat atunci când este aplicată alimentarea (starea comutatorului este verificată de microcontroler când este aplicată alimentarea). Prin urmare, pentru a intra în modul de configurare, trebuie să setați comutatorul și să aplicați puterea pentru a ieși din modul, trebuie să opriți comutatorul, apoi să porniți alimentarea.

Pentru a introduce un cod de forma 1234, secvența de acțiuni este următoarea:
apăsați butonul 1 dată;
așteptați confirmarea vizuală de către LED-ul de pe buton (LED-ul va clipi o dată);
apăsați butonul de două ori;

apăsați butonul de trei ori;
așteptați confirmarea vizuală de către LED-ul de pe buton;
apăsați butonul de 4 ori.
După introducerea celei de-a patra cifre, sistemul va funcționa în conformitate cu modul de funcționare setat. Dacă a fost introdus un cod incorect, utilizatorul va vedea o alertă vizuală (LED intermitent).
Pentru a seta parametrii de blocare se folosește modul de programare. În acest mod, pentru a vă deplasa între opțiuni, butonul este apăsat și menținut timp de 3 secunde. După eliberarea butonului, veți trece la următorul element de meniu, iar LED-ul va indica prin numărul de clipiri în ce element de meniu vă aflați (de exemplu, flash, flash, pauză, flash, flash, pauză,... - înseamnă că al doilea element de meniu este selectat).

Opțiuni de meniu:

Schimbarea codului– folosit pentru a schimba codul utilizatorului. Pentru modificare, codul este introdus în același mod ca în funcționarea normală. Când noul cod este salvat, LED-ul va indica acest lucru cu clipiri frecvente;
Modificarea timpului de activare– folosit pentru a schimba ora stării active. Apăsarea butonului o dată în acest meniu schimbă această dată la 1 secundă. De exemplu, dacă timpul necesar este de 10 secunde, atunci trebuie să apăsați butonul de 10 ori. Când parametrii sunt salvați, LED-ul va indica acest lucru cu clipiri frecvente.
Selectarea modului de operare– folosit pentru a schimba modul de control al releului. Există două moduri de funcționare: activarea releului când este introdus codul corect și schimbarea stării releului (activare/dezactivare) când este introdus codul corect. La selectarea celui de-al doilea mod, dispozitivul va acționa după cum urmează: dacă releul este activat și este introdus codul corect, releul este dezactivat la următoarea introducere a codului corect, releul este activat; Pentru a schimba modul de operare: apăsați butonul o dată pentru a selecta primul mod și de două ori pentru a selecta al doilea mod.

Toți parametrii sunt stocați în memoria nevolatilă a microcontrolerului.

Circuitul este asamblat pe o placă de circuit imprimat cu două fețe.