Alarma Securitate
Introducere
Mi-am propus sa realizez o alarma de locuinta cu senzori de contact folosind microcontrollerul ATMega 16. Aceasta se va folosi pentru securizarea unei case / apartament impotriva unui acces neautorizat.
Descriere generala
Alarma va avea urmatoarele functii:
Se va putea arma/dezarma cu un cod zecimal;
Codul zecimal este configurabil;
Codul zecimal se poate schimba astfel: cand alarma este dezarmata, se va introduce un cod standard (de ex: 12345678), dupa care se va cere introducerea actualului cod de armare/dezarmare, si se va introduce de 2 ori noul cod;
In caz ca un senzor este activat va astepta 15 secunde sa fie dezarmata, daca nu, va intra in mod alarma si va emite un semnal de alerta (luminos, si eventual sonor);
In mod alarma va afisa pe lcd care senzor a fost activat;
Alarma va contine senzori de miscare, senzori de temperatura, detectori de fum . Acestia se vor monta pe tocul usilor sau geamurilor, pe tavanul incaperilor etc iar pentru a nu ma complica cu prea multe fire si pentru a-mi usura munca in testare , voi simula toti acesti senzori prin niste push buttonuri pe o placuta de extensie.
Hardware Design
Pe portul A al microcontroller-ului este legat lcd-ul de afisare a diferitelor mesaje de intampinare/status;
Pe portul B al microcontroller-ului este legata tastatura (are 8 pini care merg in cei 8 pini ai portului B);
Pe portul D al microcontroller-ului este legata placuta de extensie cu senzori si cu led-uri;
Materiale folosite in construirea proiectului sunt urmatoarele:
Lcd alfanumeric 2*16, cu backlight – model NT-C1626B;
Placuta extensie pentru a lega placuta cu microcontroller de lcd;
Senzorii de contact reprezentati prin push buttonuri (avand in vedere ca este totusi un proiect didactic, ma gandesc ca n-are nici un sens sa ma duc sa cumpar senzori de contact, si sa ii leg cu zece metri de cablu de o usa si un geam si eventual de tavan intrucat modul in care functioneaza este identic. Senzorii sunt legati cu un fir la masa, si cu celalalt la pinii D0-D5);
Software Design
Cum functioneaza ?
In momentul in care alarma este pornita adica alarma este dezarmata voi afisa pe lcd un mesaj de stare, si se va asteapta introducerea unei comenzi .
Starea alarmei este tinuta minte printr-o variabila alarm:
0 alarma este nearmata;
1 alarma este armata;
2 un senzor a fost declansat; astept 15 secunde pentru introducerea codului de dezarmare;
3 mod sirena – semnal vizual (acustic);
(-1) a fost introdus codul de schimbare a codului de armare; se asteapta introducerea codului de armare curent;
(-2) codul de armare a fost introdus; se asteapata introducerea noului cod de armare;
Comenzile pe care le poate primi alarma sunt :
introducerea unui cod de zece caractere: de armare/dezarmare (predefinit si care se poate schimba – 0123457898)
schimbarea codului de armare (9876543210); Dupa aceasta se va cere introducerea codului de armare/dezarmare curent dupa care se va introduce noul cod de armare . Restrictia este ca acel cod sa fie de 10 caractere altfel nu este luat in considerare.
Alarma intra in mod armat :
pe lcd se va afisa status-ul de armare (se aprinde un led si se trimite un mesaj pe lcd).
se intra intr-o bucla in care este citita starea senzorilor .
astept introducerea codului de dezarmare.
il compar cu codul de dezarmare iar daca coincide dezarmeaz alarma.
La declansarea unui senzor – pornesc sistemul de intreruperi.Sistemul are configurata intreruperea de timer 1, care va numara 15 secunde dupa care va intra in rutina de tratare a intreruperii.
Rutina de tratare a intreruperii consta in faptul ca dupa 15 secunde opresc sistemul de intreruperi , citesc daca alarma este inca armata; daca este armata (nu s-a dezarmat prin introducerea codului) pornesc alarma luminoasa (acustica);
Astept introducerea codului de dezarmare.
Dezarmez alarma , si se reia toata procedura.
Functii utilizate
Cum se face citirea caracterelor de la tastaura?
tastatura este de tip matrice cu 16 taste (4 linii, 4 coloane).In momentul in care se apasa o tasta ,se face scurt intre pinul care reprezinta linia si cele care reprezinta coloana pe care se afla acea tasta.
ca sa citesc “un caracter”: pe pinii B4-B7 am un output de 0 iar toti pinii de input sunt pe pull-up, astept 4 sau 5 cicluri de ceas (nop) vedem pe care pin (B0-B3) am 0 avand pinul de coloana si cel de linie identific tasta care a fost apasata.
dupa ce identific tasta, apelez o functie de loop pentru a astepta aproximativ 70 ms intructa.
daca nu as face acest delay as inregistra acelasi caracter de mai multe ori.
Modul in care citesc starea senzorilor:
citesc starea pinilor D0 D5.
daca sunt 1 sau 0 (depinde daca inchid sau deschid circuitul cand sunt apasati).
intru in mod alarma(alarm = 1).
in cazul in care dorim a monta mai mult de 6 senzori atunci putem monta in paralel pe acelasi pin mai multi senzori.
Rezultate Obţinute
Concluzii
Download
stanalexandra332ca.zip
Jurnal
Bibliografie