This shows you the differences between two versions of the page.
|
pm:prj2023:tmiu:smart_dustbin [2023/05/28 22:27] mircea.pieleanu [Descriere generală] |
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 29: | 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 47: | 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> | ||