Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:imacovei:georgiana.olaru [2022/05/17 09:53]
georgiana.olaru
pm:prj2022:imacovei:georgiana.olaru [2022/05/23 22:29] (current)
georgiana.olaru
Line 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul consta in realizarea unui sistem care are ca scop deblocarea unei usi atunci cand este introdus codul pin corect, urmat de tasta '​*'​.+Proiectul consta in realizarea unui sistem care are ca scop deblocarea unei usi atunci cand este introdus codul pin corect, urmat de tasta '*'. Daca codul introdus este corect se va auzi o melodie de succes sau de fail in cazul in care codul este gresit. De asemenea, codul pin se poate schimba cu unul nou daca este apasata tasta '#'.
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 32: Line 32:
   * Incuietoare   * Incuietoare
   * Conector baterie 9v   * Conector baterie 9v
 +  * Buzzer
   * Fire   * Fire
  
Line 45: Line 46:
 La inceputul programului imi declar si imi initializez toate variabilele de care o sa am nevoie. Pentru a salva o parola am folosit memoria EEPROM. Initial am setat o parola demo (0000), dar apoi am comentat acele linii de initializare pentru a nu fi mereu acea parola. Apoi de fiecare data citesc ultima parola salvata pe Arduino si initializez parola in functia numita initialPassword,​ care este apelata mai tarziu in setup(). La inceputul programului imi declar si imi initializez toate variabilele de care o sa am nevoie. Pentru a salva o parola am folosit memoria EEPROM. Initial am setat o parola demo (0000), dar apoi am comentat acele linii de initializare pentru a nu fi mereu acea parola. Apoi de fiecare data citesc ultima parola salvata pe Arduino si initializez parola in functia numita initialPassword,​ care este apelata mai tarziu in setup().
  
-In functia setup() setez pe HIGH relay pin-ul (adica poarta este inchisa), este pornit ecranul, se citeste parola din memorie si setez timpii.+In functia setup() setez pe HIGH relay pin-ul (adica poarta este inchisa), este pornit ecranul, se citeste parola din memorie si setez registrele pentru timer.
  
-In functia loop() se verifica initial timer-ul, adica daca au trecut mai mult de secunde de cand a fost introdusa parola si nu a fost apasata tasta '​*', ​se reseteaza si codul pin trebuie introdus din nou. De asemenea, se apasa cate o cheie de pe tastatura si se verifica ce tasta reprezinta. Daca este '#',​ atunci se apeleaza functia change() care schimba parola cu una noua, daca este '​C',​ se sterge tot de pe ecran si se revine cu indexul la 0. Daca este altceva introdus, inseamna ca a fost apasata o tasta care reprezinta o bucata din parola ​si incepe timer-ul sa contorizeze, iar caracterul se adauga in string. Apoi, daca se apasa tasta '​*',​ incepe sa se verifice cu parola initiala. Se citeste iar parola, se verifica si daca este corecta, apare mesajul 'Pass Accepted!',​ se trece relay pin-ul in LOW si se deblocheaza poarta si ramane asa timp de 4 secunde. Tot aici iti afiseaza pe ecran daca vrei sa schimbi parola. Daca parola introdusa este gresita, relay pin-ul ramane in continuare pe HIGH, afiseaza 'Wrong Password!'​ si te intreaba din nou daca vrei sa schimbi parola.+Functia ISR este o functie de intrerupere care se declanseaza la fiecare 4 secunde si doar seteaza o variabila pe true pentru resetarea ecranului. 
 + 
 +Functia resetScreen() reseteaza ecranul daca trec 4 secunde si reseteaza timer-ul. 
 + 
 +In functia loop() se verifica initial timer-ul, adica daca au trecut mai mult de secunde de cand nu a fost apasat vreun buton si se reseteaza si codul pin trebuie introdus din nou. De asemenea, se apasa cate o cheie de pe tastatura si se verifica ce tasta reprezinta. Daca este '#',​ atunci se apeleaza functia change() care schimba parola cu una noua, daca este '​C',​ se sterge tot de pe ecran si se revine cu indexul la 0. Daca este altceva introdus, inseamna ca a fost apasata o tasta care reprezinta o bucata din parola, iar caracterul se adauga in string. Apoi, daca se apasa tasta '​*',​ incepe sa se verifice cu parola initiala. Se citeste iar parola, se verifica si daca este corecta, apare mesajul 'Pass Accepted!',​ se trece relay pin-ul in LOW si se deblocheaza poarta si ramane asa timp de 4 secunde. Tot aici iti afiseaza pe ecran daca vrei sa schimbi parola. Daca parola introdusa este gresita, relay pin-ul ramane in continuare pe HIGH, afiseaza 'Wrong Password!'​ si te intreaba din nou daca vrei sa schimbi parola.
  
 Functia change() schimba parola cu una noua. Cand este apasata tasta '#',​ trebuie introdusa parola curenta si daca este cea corecta, poti sa introduci noua parola si se salveaza in EEPROM caracter cu caracter si afiseaza ca s-a schimbat parola cu succes. Functia change() schimba parola cu una noua. Cand este apasata tasta '#',​ trebuie introdusa parola curenta si daca este cea corecta, poti sa introduci noua parola si se salveaza in EEPROM caracter cu caracter si afiseaza ca s-a schimbat parola cu succes.
Line 71: Line 76:
 ===== Download ===== ===== Download =====
  
-{{:​pm:​prj2022:​imacovei:​proiect.zip|}}+{{:​pm:​prj2022:​imacovei:​pm-proiect.zip|}}
  
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-{{:​pm:​prj2022:​imacovei:​pm-pin_door_lock.pdf|}}+{{:​pm:​prj2022:​imacovei:​pm_pin_door_lock.pdf|}}
  
 [[https://​ocw.cs.pub.ro/​courses/​pm]] [[https://​ocw.cs.pub.ro/​courses/​pm]]
pm/prj2022/imacovei/georgiana.olaru.1652770438.txt.gz · Last modified: 2022/05/17 09:53 by georgiana.olaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0