Differences

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

Link to this comparison view

pm:prj2022:robert:laser-tripwire-alarm [2022/05/27 19:46]
mario_gabriel.mosor [Software Design]
pm:prj2022:robert:laser-tripwire-alarm [2022/05/27 20:52] (current)
mario_gabriel.mosor [Jurnal]
Line 75: Line 75:
 </​code>​ </​code>​
  
 +==CODUL==
 +<code cpp>
 +#include <​Keypad.h>​
  
 +#define Rec 0
 +#define Laser 2
 +#define Button 3
 +
 +bool detection;
 +short a=0;
 +short code[4]={'​1','​3','​6','​6'​}; ​ //codul de acces este stocat într-o matrice, îl putem face mai lung sau mai scurt
 +                                  ​
 +
 +const byte numRows= 4;            //​Rândurile și coloanele tastaturii
 +const byte numCols= 4;
 + 
 +char keymap[numRows][numCols]= ​   //Harta tastaturii
 +          {
 +          {'​1',​ '​2',​ '​3',​ '​A'​}, ​
 +          {'​4',​ '​5',​ '​6',​ '​B'​}, ​
 +          {'​7',​ '​8',​ '​9',​ '​C'​},​
 +          {'​*',​ '​0',​ '#',​ '​D'​}
 +          };
 +
 +byte rowPins[numRows] = {11,​10,​9,​8};​ //Keypad 8 pins
 +byte colPins[numCols]= {7,​6,​5,​4}; ​
 +
 +Keypad myKeypad= Keypad(makeKeymap(keymap),​ rowPins, colPins, numRows, numCols);
 +
 +void setup() {
 +  ​
 +  pinMode(Laser,​ OUTPUT);
 +  digitalWrite(Laser,​ HIGH);
 +  delay(2000);​
 +}
 +
 +void loop() {
 +
 + short Detect = analogRead(Rec); ​                //​Citirea constantă a valorii senzorului, pentru a detecta dacă cineva trece
 +
 +
 +    if(Detect < 500)
 +        detection = true;
 +
 +    if(detection==true) ​
 +        {                                       //​Secvența de alarmă și așteptare constantă ca „*” să fie apăsat
 +         ​tone(13,​1000);​
 +         ​delay(50);​
 +         ​tone(13,​200);​
 +         ​delay(50);​
 +         char keypressed = myKeypad.getKey();​
 +         if (keypressed == '​*'​) ​                  //​dacă este apăsat „*” acceseaza funcția Getpass
 +         ​Getpass();​
 +          }
 +    ​
 +     ​if(a==4){ ​                                  //​dacă a==4 înseamnă că codul este corect, alarma este oprită
 +         ​noTone(13);​
 +         ​a=0; ​                                  //​setam a la 0, altfel alarma se va opri automat
 +         ​detection=false;​
 +         }
 + 
 +  ​
 +}
 +
 +void Getpass(){ ​              //​Obținerea funcției de parolă
 +  tone(13,​2000); ​             //Sunet cu frecvență constantă în timp ce introducem codul
 +  for(short i=0 ; i<4 ; i++)
 +            {
 +              ​
 +           char keypressed = myKeypad.waitForKey();​
 +              if (keypressed==code[i]) ​  //​Dacă secvența este corectă, a crește (4) înseamnă că toate valorile sunt corecte
 +              a++;
 +            }
 +}
 +
 +</​code>​
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 84: Line 159:
  
 ===== Concluzii ===== ===== Concluzii =====
 +Având un start mai lent decât ceilalți colegi (au întârziat destul de mult anumite piese), acest proiect s-a dovedit a fi o provocare unde 
 +am învățat cum sa lucrez util într-un timp scurt. Acest dispozitiv este folosit pentru securizarea anumitor obiecte, alertând proprietarul cu ajutorul unui buzzer. Proiectul funcționează corespunzător dorințelor mele fiind util pentru oricine si in orice mediu.
  
 +Sursa inspirației mele fiind filmul Oceans Twelve ​  
 + 
 ===== Download ===== ===== Download =====
 +*{{:​pm:​prj2022:​robert:​laser_tripwire_alarm_keypad.7z|Source Code}}
  
-<note warning>​ +*{{:pm:prj2022:robert:wiring.png?linkonly|Electric diagram}}
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +
- +
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +  * Săptămâna 1: Am început să fac cercetări pentru tema proiectului ​și să aleg pe cea care m-a atras cel mai mult  
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul ​proiectului+  * Săptămâna 2: Am plasat comanda pentru piesele necesare  
-</​note>​ +  * Săptămâna 3: Începutul ​proiectului ​propriu-zis (Completare pagina wiki || +inca asteptam senzorul de lumina) 
 +  * Săptămâna 4: Terminarea proiectului si prezentarea proiectului la laborator
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- +[[https://​ardushop.ro/​ro/​home/​89-modul-buzzer.html?​gclid=CjwKCAjw7cGUBhA9EiwArBAvooFcSrWbhKVi24jDsyeEdWovjSsRJ1dfju0rWZYueQ2UHNw3YCHWNBoCtTUQAvD_BwE]] 
-<​note>​ +https://​www.sigmanortec.ro/​Modul-dioda-laser-KY-008-p126265142?​gclid=CjwKCAjw7cGUBhA9EiwArBAvosYIsk3VPmFXy06tMPde5yQvnzRVQsOup2G6UDXkm6JZ9l3N184ogRoCCwEQAvD_BwE 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+[[https://​www.seeedstudio.com/​Grove-Light-Sensor-p-746.html]]
-</note>+
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2022/robert/laser-tripwire-alarm.1653669966.txt.gz · Last modified: 2022/05/27 19:46 by mario_gabriel.mosor
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