Blocare cod pe firmware-ul pic16f628a. Lacăt electronic cu combinație pe microcontrolerul PIC12F675

În diverse literaturi de radio amatori, puteți găsi multe opțiuni pentru încuietori cu combinație electronică.

O caracteristică a acestei scheme de blocare a combinației de microcontroler este o metodă fundamental nouă de citire a tastelor folosind un singur port al microcontrolerului PIC12F675. Această caracteristică poate fi implementată numai cu microcontrolere care includ un modul convertor analog-digital (ADC), cum ar fi microcontrolerul nostru PIC12F675.

Acest microcontroler este echipat cu un ADC de 10 biți cu un interval de conversie de la 0 la 1023. Esența metodei este că tastatura este, de fapt, un divizor de tensiune pe rezistențele R1-R12 și când este apăsat un anumit buton de la tastatură, la intrarea 7 a microcontrolerului este furnizată o tensiune, a cărei valoare specifică acestui buton.

Funcționarea blocării cu combinație pe PIC12F675

Pentru a scrie 4 cifre ale unui cod secret, trebuie mai întâi să apăsați butonul „COD” și să îl țineți apăsat până când LED-ul se aprinde. Apoi, una câte una, trebuie să formați 4 cifre ale codului secret. La finalizarea introducerii, codul dat va fi scris în memoria nevolatilă a microcontrolerului.

Acum, dacă introduceți acest cod pe tastatură, releul se va porni timp de 5 secunde. Cu o tastare greșită de zece ori cod secret va suna o alarmă.

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. A fost publicat un articol de E. Pereverzev „Digital Combination Lock”.

Hotărât și gata. Redesenat un sigiliu dintr-o revistă. A lipit diagrama.
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 de pe sigiliu.
Fișierul „1.hex” este firmware-ul flash, fișierul „2.hex” este firmware-ul EEPROM.
Codul de deschidere „1, 2, 3” este introdus inițial în EEPROM. Codul se schimbă pe lacătul deschis, după apăsarea butonului „#”. Codul poate conține până la 125 de caractere.

Versiune cu sigiliu din articolul lui E. Pereverzev

Circuitul în sine, butoanele „Deschidere”, „Închidere”, sursa de alimentare a fost plasată în cutie de sub unitatea de comandă a întrerupătorului cu vid.

Sursa de alimentare folosită de la un scaner vechi.
Am folosit solenoidul dintr-un vechi laborator electric, unul minus - solenoidul consumă 1,5 A.

Am luat tastatura de la un telefon vechi.


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

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

Articolul original de la „Radio”:
🕗 20/12/11 ⚖️ 512,66 Kb ⇣ 111 Salut cititorule! Mă numesc Igor, am 45 de ani, sunt siberian și inginer electronist amator pasionat. Am venit cu, am creat și întrețin acest minunat site 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ă!

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. A supraviețuit nu numai cinci http://jquery2dotnet.com/ secole, dar de asemenea, saltul în compunerea electronică, rămânând practic neschimbat.

Acest design se distinge 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ă configurarea pentru alte funcții atunci când sistemul este activat, pentru aceasta va trebui să treceți la modul de programare a dispozitivului.

Dispozitivul poate fi utilizat în sisteme de control uși de garaj, în sistemul de control al luminii, în sistemele de securitate.

Elementul principal al circuitului este microcontrolerul PIC16F628A, care monitorizează apăsarea unui buton, informează vizual utilizatorul despre primirea unei comenzi și controlează starea releului. Pentru vizualizare se folosește un LED, care este conectat în paralel cu butonul de introducere a codului, care permite utilizarea doar a două fire pentru a instala și conecta butonul în locul dorit.
Pentru a alimenta dispozitivul, veți avea nevoie de o sursă de alimentare de 12 V, regulatorul de tensiune LM7805 este instalat în circuit. 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 răspunde atunci când codul este introdus corect. În modul de programare sunt configurați principalii parametri ai sistemului: cod, timp de activare, mod de funcționare.
Comutatorul JP1 este utilizat pentru a schimba modul de funcționare (normal/programare). Când întrerupătorul este oprit, este modul normal de funcționare; când este pornit, este modul de programare (setări). Trebuie remarcat faptul că intrarea într-un anumit mod este efectuată 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 setare, trebuie să setați comutatorul și să porniți alimentarea, pentru a ieși din modul, opriți comutatorul, opriți și apoi 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 conform regim stabilit muncă. Dacă a fost introdus un cod nevalid, utilizatorul va vedea o alertă vizuală (LED-ul clipește).
Modul de programare este utilizat pentru a seta parametrii de blocare. În acest mod, pentru a comuta între opțiuni, butonul este apăsat și menținut timp de 3 secunde. După eliberarea butonului, se va efectua trecerea la următorul element de meniu, în timp ce numărul de clipiri va indica î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 a schimba codul se introduce în același mod ca în funcționarea normală. Când noul cod a fost 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 se modifică de această dată cu 1 s. De exemplu, dacă aveți nevoie de un timp 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. Când este selectat al doilea mod, dispozitivul va acționa după cum urmează: dacă releul este activat și este introdus codul corect, releul este dezactivat, data viitoare când este introdus codul 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.

Această încuietoare electronică cu combinație poate fi folosită pentru a deschide un obturator electromecanic. Funcționalitate implementată în software. Releul de control al blocării se pornește (de obicei pentru a deschide ușa) pentru câteva secunde dacă cineva introduce codul corect.

Consumul de curent al circuitului este scăzut deoarece microcontrolerul doarme de cele mai multe ori și se trezește doar pentru a procesa apăsările de taste. Controlerul 16F628A este deja alimentat de un oscilator RC intern, deci nu sunt necesare cristale externe. Fiecare apăsare a tastei este duplicată semnal sonor Sonerie BM1. Soneria este utilizată cu un generator intern. Starea dispozitivului este afișată pe indicatorul LCD tip 16x02 cu controlerul HD44780. Lacătul folosește o tastatură matrice standard cu 3 coloane și 4 rânduri.Diagrama lacătului este în figura de mai jos.

Pentru a deschide încuietoarea, introduceți codul corect și utilizați „#” ca tasta „enter”. Codul original este 623342. Codul poate fi schimbat oricând după introducerea codului curent. Tasta „*” este folosită pentru a schimba codul. Introduceți codul real și apăsați „*”. Dacă codul este introdus corect, indicatorul de schimbare a codului HL1 se va aprinde, apoi introduceți un nou cod, confirmând introducerea de două ori cu tasta „#”. De asemenea, puteți modifica lungimea codului.

Dispozitivul este conceput pentru a proteja încăperile, dulapurile și seifurile împotriva deschiderii neautorizate.

Toate setările și codul sunt stocate în memoria nevolatilă a microcontrolerului.

Această schemă simplă este destul de în puterea multor radioamatori.

Un algoritm de lucru bine gândit vă va oferi plăcerea de a opera această schemă.

Dispozitivul se bazează pe un microcontroler. PIC16F628A(DD1 în diagrama din Fig. 1).

După ce este aplicată alimentarea, programul de microcontroler își configurează porturile și, de asemenea, dezactivează sursa de tensiune de referință, modulul de captare SHI / comparație, temporizatoarele, comparatoarele și hardware-ul USART - aceste module nu sunt necesare pentru ca blocarea să funcționeze. Apoi începe sondarea de la tastatură. Este format din două părți. Primul - butoanele SB3-SB14 - este situat în afara obiectului protejat. Al doilea - butoanele SB1, SB2 și comutatorul SA1 - este situat în interior. Butoanele SB3-SB 13 din prima parte a tastaturii sunt combinate într-o matrice. Butonul SB 14 nu este inclus în matrice, este conceput pentru a reporni microcontrolerul în cazul oricărei defecțiuni în program, precum și într-o serie de alte cazuri, care vor fi discutate mai jos.

Butonul SB1 „Deschis” este instalat în interior, lângă ușă. Apăsând-o, puteți deschide ușa din interior fără a forma codul. SB2 - buton de repornire a programului; butoanele SB2 și SB Și conectate în paralel. Butoanelor matrice li se atribuie denumiri: SB3 - "1", SB4 - "4", SB5 - "7", SB6 - "Deschis". SB7 - „2”, SB8 - „5”, SB9 - „8”, SB10 - „O”, SB11 - „3”, SB12 - „6”. SB13 - „9”. Comutatorul SAI selectează modul de închidere a blocării. Codul se introduce prin apăsare alternativă pe termen scurt a butoanelor numerice. În confirmarea apăsării, va suna un scurt semnal sonor al emițătorului piezo HA1. controlat de tranzistorul VT2.

Înainte de deschiderea ușii, se introduce un cod din patru cifre cu pauze între apăsările adiacente de cel mult 3 s. și apoi în 3 s este necesar să apăsați scurt butonul SB6 După 2 s, ieșirea RAO a microcontrolerului DD1 va fi setată la nivel inalt, tranzistorul VT1 se va deschide și electromagnetul va funcționa!, care va pune în mișcare șurubul de blocare, comprimându-și arcul, iar ușa se va deschide.

Dacă pauza dintre apăsările adiacente depășește 3 s, atunci un semnal va suna cu o frecvență descrescătoare. Aceasta înseamnă că programul a început să ruleze din nou și codul trebuie introdus de la început. Dioda VD1 este proiectată pentru a proteja tranzistorul VT1 de o supratensiune de auto-inducție a înfășurării electromagnetului Y1. Înainte de declanșarea electromagnetului, va suna un semnal cu aceeași frecvență ca la apăsarea tastelor numerice, dar pe o durată mai lungă, ceea ce semnalează deschiderea ușii.

Când contactele comutatorului SA1 sunt deschise, electromagnetul va închide încuietoarea anumit timp(implicit - 12 s). Acest timp este setat la programarea microcontrolerului. În programul care va trebui să fie încărcat în controler, în câmpul pentru lucrul cu EEPROM, în celula cu adresa 0x06 (a șaptea la rând), trebuie să introduceți un număr de la 0x01 la OxFF, la rata de 1 unitate = 2,5 s. Pauza minimă posibilă este de 2,5 s, maxim 10 minute.

Dacă contactele comutatorului SA1 sunt închise, adică un nivel scăzut este setat la intrarea RA4 a microcontrolerului DD1, atunci blocarea este închisă după apăsarea butonului SB 14 sau SB2. După ce tranzistorul VT1 se închide, electromagnetul se va dezactiva și arcul de blocare va împinge șurubul înapoi - ușa va fi blocată din nou.

Pentru a deschide ușa din interiorul camerei, apăsați butonul SB1 și țineți-l apăsat până când electromagnetul este declanșat, ceea ce va fi indicat printr-un semnal sonor de 2 s. Poți deschide oricând ușa din interior. Dacă ușa nu se deschide, trebuie să apăsați butonul SB2 (reporniți programul) și să apăsați din nou butonul SB 1.

Când este necesară schimbarea codului, se introduce mai întâi cel vechi în același mod ca în timpul operațiunii de deschidere a ușii, dar apoi butonul SB6 nu este apăsat scurt, ci menținut până când se aud trei tonuri. Apoi trebuie să eliberați imediat butonul SB6, să introduceți un nou cod din patru cifre și să apăsați imediat butonul SB6 din nou pentru a confirma introducerea. În continuare, un semnal va suna cu o frecvență crescândă, care va anunța că noul cod a fost acceptat. Este stocat în primele patru celule din memoria nevolatilă a microcontrolerului DD1.

Aparatul este echipat cu sistem de blocare. De fiecare dată când introduceți un cod incorect, blocarea va reda două bipuri la 1000 Hz și unul la 500 Hz. Controlerul consideră că este eronat să apese butonul SB6 într-un moment în care codul greșit este în registrele de lucru și să introducă cinci cifre ale codului. După trei erori la rând, microcontrolerul DD1 va seta ieșirea RA2 la un nivel ridicat. Aceasta va deschide tranzistorul VT3, care va porni dispozitivul de alarmă. Acest dispozitiv poate fi o sirenă sau un apelator telefonic.

În același timp, LED-ul HL1 instalat pe panoul tastaturii se va aprinde, ceea ce va arăta că interogarea tastaturii (cu excepția comutatorului comutator SA1 și a butoanelor SB1, SB2, SB14) este dezactivată. Aceasta este urmată de o pauză de zece minute, timp în care dispozitivul de alarmă funcționează și LED-ul HL1 este aprins. În acest timp, încuietoarea poate fi deschisă numai din interior. Dacă apăsați butoanele SB 14 și SB2 (butoane pentru repornirea programului microcontrolerului), atunci numărătoarea inversă de zece minute va începe din nou. După pauză, controlerul va oferi o singură oportunitate de a introduce codul, iar dacă acesta este incorect, pauza de zece minute cu activarea dispozitivului de alarmă se va repeta din nou. Și așa va continua până când este introdus codul corect. De fiecare dată după introducerea codului corect, contorul de erori este resetat la zero.

Alimenta sursa dispozitivului curent continuu tensiune 10 ... 15 V. În cazul unei întreruperi de curent în rețeaua de 220 V, încuietoarea continuă să funcționeze din baterie. O diagramă a celei mai simple versiuni a unei astfel de surse de alimentare este prezentată în fig. 2.

Transformatorul T1 scade tensiunea rețelei de la 220 V la 15 ... 20 V. Curentul maxim al înfășurării secundare a transformatorului nu trebuie să fie mai mic de 1,5 A. DA1 este un regulator de tensiune reglabil. Prin schimbarea rezistenței rezistenței de construcție R2, se setează o tensiune la ieșirea stabilizatorului DA1, la care curentul de încărcare al bateriei încărcate GB1 nu depășește 100 ... 200 μA. În același timp, în timpul unui consum mare de curent, când electromagnetul Y1 a funcționat, partea principală a curentului dă acumulator, care permite să nu supraîncărcați stabilizatorul DA1. Dioda VD5 este concepută pentru a proteja stabilizatorul DA1 în absența tensiunii la intrarea sa.

Bateria trebuie să furnizeze un curent de 300 ... 600mA (capacitate - 7 Ah). Stabilizatorul DA1 trebuie instalat pe un radiator cu o suprafață de 30...40 cm2.

Tastatura poate fi realizată din butoane individuale. Potrivit, de exemplu, DIPTRONICS DTSMW-66N. Dar puteți folosi și o tastatură gata făcută de la un buton aparat de telefon sau calculator. De regulă, puteți conecta cu ușurință o astfel de tastatură la dispozitiv prin asamblarea butoanelor într-o matrice adecvată. De asemenea, este necesar să puneți LED-ul HL1 pe panoul tastaturii.

Emițătorul piezo este potrivit pentru oricare dintre seria ZP. Electromagnetul Y1 este utilizat de la mecanismul de acționare a casetei al magnetofonului, dar orice altul potrivit ca mărime și cu un curent de înfășurare maxim de cel mult 1,3 A va fi potrivit. Dacă curentul consumat de electromagnet este mai mare de 1 A, atunci tranzistorul VT1 trebuie instalat pe un radiator cu o suprafață de 30 .. .40 cm2.

Arhivare cu firmware



Se încarcă...
Top