This shows you the differences between two versions of the page.
pm:prj2023:tmiu:smart_dustbin [2023/05/28 22:26] mircea.pieleanu created |
pm:prj2023:tmiu:smart_dustbin [2023/05/28 22:36] (current) mircea.pieleanu [Nume proiect] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nume proiect ====== | + | ====== Smart Dustbin====== |
===== Introducere ===== | ===== Introducere ===== | ||
Line 9: | Line 9: | ||
<note tip> | <note tip> | ||
Atunci cand ne aproriem de cosul de gunoi,senzorul ultrasonic simte miscarea trimite semnal la arduino si acesta bune in miscare servo motorul care va deschide capacul de la gunoi.Acesta se va inchide dupa cateva secunde. | Atunci cand ne aproriem de cosul de gunoi,senzorul ultrasonic simte miscarea trimite semnal la arduino si acesta bune in miscare servo motorul care va deschide capacul de la gunoi.Acesta se va inchide dupa cateva secunde. | ||
- | Schemă bloc: smartbin.drawio.html | ||
</note> | </note> | ||
Line 30: | Line 29: | ||
<note tip> | <note tip> | ||
Am folosit o biblioteca <Servo.h> | Am folosit o biblioteca <Servo.h> | ||
- | #include <Servo.h> //servo library | + | Servo servo; |
- | Servo servo; | + | int trigPin = 5; |
- | int trigPin = 5; | + | int echoPin = 6; |
- | int echoPin = 6; | + | int servoPin = 7; |
- | int servoPin = 7; | + | int led= 10; |
- | int led= 10; | + | long duration, dist, average; |
- | long duration, dist, average; | + | long aver[3]; //array for average |
- | long aver[3]; | + | void setup() { |
- | + | ||
- | + | ||
- | void setup() { | + | |
Serial.begin(9600); | Serial.begin(9600); | ||
servo.attach(servoPin); | servo.attach(servoPin); | ||
Line 48: | Line 44: | ||
delay(100); | delay(100); | ||
servo.detach(); | servo.detach(); | ||
- | } | + | } |
- | + | void measure() { | |
- | void measure() { | + | digitalWrite(10,HIGH); |
- | digitalWrite(10,HIGH); | + | digitalWrite(trigPin, LOW); |
- | digitalWrite(trigPin, LOW); | + | delayMicroseconds(5); |
- | delayMicroseconds(5); | + | digitalWrite(trigPin, HIGH); |
- | digitalWrite(trigPin, HIGH); | + | delayMicroseconds(15); |
- | delayMicroseconds(15); | + | digitalWrite(trigPin, LOW); |
- | digitalWrite(trigPin, LOW); | + | pinMode(echoPin, INPUT); |
- | pinMode(echoPin, INPUT); | + | duration = pulseIn(echoPin, HIGH); |
- | duration = pulseIn(echoPin, HIGH); | + | dist = (duration/2) / 29.1; |
- | dist = (duration/2) / 29.1; | + | } |
- | } | + | void loop() { |
- | void loop() { | + | for (int i=0;i<=2;i++) { |
- | for (int i=0;i<=2;i++) { | + | measure(); |
- | measure(); | + | aver[i]=dist; |
- | aver[i]=dist; | + | delay(10); |
- | delay(10); | + | |
} | } | ||
- | dist=(aver[0]+aver[1]+aver[2])/3; | + | dist=(aver[0]+aver[1]+aver[2])/3; |
- | + | if ( dist<50 ) { | |
- | if ( dist<50 ) { | + | //Putem schimba distanta dupa cum vrem |
- | //Putem schimba distanta dupa cum vrem | + | servo.attach(servoPin); |
- | servo.attach(servoPin); | + | delay(1); |
- | delay(1); | + | servo.write(0); |
- | servo.write(0); | + | delay(3000); |
- | delay(3000); | + | servo.write(150); |
- | servo.write(150); | + | delay(1000); |
- | delay(1000); | + | servo.detach(); |
- | servo.detach(); | + | } |
- | } | + | Serial.print(dist); |
- | Serial.print(dist); | + | } |
- | } | + | |
</note> | </note> | ||