Differences

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

Link to this comparison view

pm:prj2023:vstoica:panait-stefan-andrei [2023/05/21 14:13]
stefan.panait2112
pm:prj2023:vstoica:panait-stefan-andrei [2023/05/28 17:28] (current)
stefan.panait2112
Line 23: Line 23:
   * Servo motor x2   * Servo motor x2
   * Breadboard   * Breadboard
 +
 +{{:​pm:​prj2023:​vstoica:​screenshot_2.png?​600|}}
 +{{:​pm:​prj2023:​vstoica:​pmandrei.png?​600|}}
 +
 +====== Software Design ======
 +
 +Am folosit pentru dezvoltarea codului bibliotecile LiquidCrystal_I2C.h si servo.h pentru a folosii servomotoarele si LCD-ul.
 +
 +Descriere generala a codului:
 +    * **setup() :**In setup realizez configurarile initializand senzorul ultrasonic, LCD si servomotoru,​
 +<​code>​
 +void setup() {
 +  //​initializez lcd
 +  lcd.init();
 +  lcd.backlight();​
 +
 +  //​initializez pinii pt senzor ultrasonic
 +  DDRD |= (1 << trig);
 +  DDRD &= ~(1 << echo);
 +  ​
 +  //​initializez servomotor
 +  servo1.attach(servo1_pin);​
 +  servo2.attach(servo2_pin);​
 +  servo1.write(0);​
 +  servo2.write(0);​
 +}
 +
 +</​code>​
 +
 +* **loop() :** In functia de loop realizez configurarea propriu-zisa astfel calculez distanta la care se afla un obiect fata de senzorul ultrasonic, daca este mai mica de 20 usile se deschid, altfel usile stau inchise. Afisand un mesaj sugestiv door opened, respectiv door closed.
 +
 +<​code>​
 +void loop() {
 +
 +  //​initializez senzor si calculez distanta
 +  digitalWrite(trig,​ HIGH); ​
 +  delayMicroseconds(10);​
 +  digitalWrite(trig,​ LOW); 
 +
 +  duration = pulseIn(echo,​ HIGH);
 +  dist = (duration * 0.034) / 2;
 +  ​
 +  //daca distanta este mai mica de 20 se deschid usile altfel raman inchise
 +  if (dist < 20) {
 +    lcd.clear();​
 +    lcd.setCursor(0,​ 0);
 +    lcd.print("​Door Open"​);​
 +    digitalWrite(led2,​ LOW);
 +    digitalWrite(led1,​ HIGH);
 +    servo1.write(0); ​
 +    servo2.write(180); ​
 +    delay(2000);​
 +  } else {
 +    lcd.clear();​
 +    lcd.setCursor(0,​ 0);
 +    lcd.print("​Door Closed"​);​
 +    digitalWrite(led1,​ LOW);
 +    digitalWrite(led2,​ HIGH);
 +    servo1.write(90); ​
 +    servo2.write(90);​
 +    delay(1000);​
 +  }
 +}
 +
 +</​code>​
 +{{:​pm:​prj2023:​vstoica:​poza_usi1.jpeg?​200|}}
 +{{:​pm:​prj2023:​vstoica:​poza_usi2.jpeg?​200|}}
pm/prj2023/vstoica/panait-stefan-andrei.1684667594.txt.gz · Last modified: 2023/05/21 14:13 by stefan.panait2112
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