Differences

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

Link to this comparison view

pm:prj2024:vstoica:costin.bosoaga [2024/05/09 16:41]
costin.bosoaga
pm:prj2024:vstoica:costin.bosoaga [2024/05/22 22:35] (current)
costin.bosoaga [Software Design]
Line 14: Line 14:
 Proiectul este realizat cu ajutorul unui Arduino UNO, un senzor ultrasonic, un buzzer care suna in momentul in care este detectat un obiect destul de aproape, cateva LED-uri care lumineaza in functie de distanta si o rezistenta de 1k ohm, un display LCD pe care este afisat nivelul pericolului. Proiectul este realizat cu ajutorul unui Arduino UNO, un senzor ultrasonic, un buzzer care suna in momentul in care este detectat un obiect destul de aproape, cateva LED-uri care lumineaza in functie de distanta si o rezistenta de 1k ohm, un display LCD pe care este afisat nivelul pericolului.
 </​note>​ </​note>​
 +
 +
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 28: Line 30:
 </​note>​ </​note>​
  
 +===== Schema electrica =====
 +{{ :​pm:​prj2024:​vstoica:​security_alarm_schematic.png?​800 |}}
 +{{ :​pm:​prj2024:​vstoica:​alarm_system.png?​800 |}}
 ===== Software Design ===== ===== Software Design =====
  
 +Mediul de dezvoltare:
 +  * codul a fost scris in Arduino IDE.
 +  * schema electrica a fost realizata in Tinkercad
  
-<​note ​tip+Am folosit biblioteca "​LiquidCrystal"​ pentru afisarea pe Display-ul LCD. 
-Descrierea codului aplicaţiei ​(firmware): + 
-  ​* mediu de dezvoltare ​(if any) (e.gAVR Studio, CodeVisionAVR+**Functia setup** - initializeaza hardware-ul si afiseaza un mesaj de inceput pe LCD. 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib+<​note>​ 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +    ​lcd.begin(16, 2); 
-  ​(etapa 3surse şi funcţii implementate+    ​Serial.begin (9600);  
 +    pinMode(trigPin,​ OUTPUT);  
 +    pinMode(echoPin,​ INPUT); 
 +    pinMode(buzzer,​OUTPUT);​ 
 +    pinMode(PIN_RED, ​  ​OUTPUT);​ 
 +    pinMode(PIN_GREEN,​ OUTPUT); 
 +    pinMode(PIN_BLUE, ​ OUTPUT); 
 +    lcd.print("​Starting ​ System"​)
 +    delay(1500); 
 +    lcd.clear(); 
 +    lcd.print("​System On"); 
 +    ​delay(4000); ​  
 +</​note>​ 
 + 
 +**Functia loop**: 
 +  * Calculeaza distanta si delay-ul pentru buzzer: 
 +<​note>​ 
 +    duration = pulseIn(echoPin, HIGH); 
 +    distance = (duration / 2) / 29.1; 
 +    new_delay = (distance * 3+ 30; 
 +</​note>​ 
 + 
 +  * In functie de distanta schimba culoarea LED-ului si scrie starea curenta ​pe LCD: 
 +<​note>​ 
 +    if (distance < 50) 
 +    { 
 +      digitalWrite(buzzer,​ HIGH); 
 +      delay(new_delay);​ 
 +      if (distance < 10){ 
 +        setColor(255,​ 0, 0); 
 +        lcd.setCursor(0,​ 0); 
 +        lcd.print("​High Risk         "​);​ 
 +        lcd.setCursor(0,​ 11); 
 +        lcd.print("​Glowing RED       "​);​ 
 +      }  
 +      else if (distance < 25){ 
 +        setColor(255,​ 32, 0); 
 +        lcd.setCursor(0,​ 0); 
 +        lcd.print("​Medium Risk       "​);​ 
 +        lcd.setCursor(0,​ 11); 
 +        lcd.print("​Glowing Orange ​   "); 
 +      } 
 +      else { 
 +        setColor(255,​ 255, 0); 
 +        lcd.setCursor(0,​ 0); 
 +        lcd.print("​Low Risk          "); 
 +        lcd.setCursor(0,​ 11); 
 +        lcd.print("​Glowing Yellow ​   "); 
 +      } 
 +      digitalWrite(buzzer,​LOW);​ 
 +    } 
 +    else 
 +    { 
 +      digitalWrite(buzzer,​LOW);​ 
 +      setColor(0, 255, 0); 
 +      lcd.setCursor(0,​ 0); 
 +      lcd.print("​No Risk             "​);​ 
 +      lcd.setCursor(0,​ 11); 
 +      lcd.print("​Glowing Green       "​);​ 
 +    } 
 +  ​delay(200)
 +  }
 </​note>​ </​note>​
  
pm/prj2024/vstoica/costin.bosoaga.1715262118.txt.gz · Last modified: 2024/05/09 16:41 by costin.bosoaga
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