-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTrashCanFirmware.ino
More file actions
59 lines (51 loc) · 1.42 KB
/
TrashCanFirmware.ino
File metadata and controls
59 lines (51 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//////////////////////////////////////////////////////////////////////
// The Trash Master's Trash Can //
// CPT 264 Final Project //
// Taylor Daniska, Michael Orr, Jacob Strickland, and Ryan Parker //
// //
// Ultrasonic sensor controls servo to open trash can lid //
//////////////////////////////////////////////////////////////////////
#include <Servo.h>
void openlid(int);
int getspeed();
Servo servo1;
const int triggerpin = 9;
const int echopin = 10;
const int servopin = 11;
int servoposition = 0;
long duration;
int distance;
int minrotate = 0;
int maxrotate = 90;
int mindist = 10;
void setup() {
servo1.attach(servopin);
pinMode(triggerpin, OUTPUT);
pinMode(echopin, INPUT);
Serial.begin(9600);
}
void loop() {
servo1.write(minrotate);
while (1){
distance = getspeed();
Serial.print("Distance: ");
Serial.println(distance);
if (distance<mindist)
openlid(5);
}
}
int getspeed(){
digitalWrite(triggerpin, LOW);
delayMicroseconds(2);
digitalWrite(triggerpin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerpin, LOW);
duration = pulseIn(echopin, HIGH);
distance= duration*0.034/2;
return distance;
}
void openlid(int openduration){
servo1.write(maxrotate);
delay(1000*openduration);
servo1.write(minrotate);
}