Rancang Bangun Tempat Sampah Otomatis Menggunakan Sensor HC-SR04 Berbasis Mikrokontroler Atmega 328
LAMPIRAN PROGRAM LENGKAP
#include
int trigPinOUT = 8;
int echoPinOUT = 9;
const int pb1 = 1;
long durationOUT;
long sensorOUT;
int trigPinIN= 11;
int echoPinIN= 12;
int ledHijau = 13;
int ledKuning = A0;
int ledMerah = A1;
long durationIN;
long sensorIN;
boolean tutup = true;
Servo myservo;
void setup()
{
pinMode(pb1,INPUT_PULLUP);
pinMode(trigPinOUT,OUTPUT);
pinMode(echoPinOUT,INPUT);
pinMode(A2,OUTPUT); //BUZZER
pinMode(trigPinIN,OUTPUT);
Universitas Sumatera Utara
pinMode(echoPinIN,INPUT);
pinMode(13,OUTPUT);
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
myservo.attach(10);
myservo.write(95);
}
void loop()
{
if(digitalRead(pb1) == LOW){
if(tutup) {
myservo.write(15);
tutup = false;
}
else {
myservo.write(95);
tutup = true;
}
}
else{
if(tutup){
digitalWrite(trigPinOUT, LOW);
delayMicroseconds(2);
digitalWrite(trigPinOUT, HIGH);
delayMicroseconds(10);
Universitas Sumatera Utara
digitalWrite(trigPinOUT, LOW);
durationOUT = pulseIn(echoPinOUT, HIGH);
sensorOUT = durationOUT *0.034/2;
digitalWrite(trigPinIN, LOW);
delayMicroseconds(2);
digitalWrite(trigPinIN, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinIN, LOW);
durationIN = pulseIn(echoPinIN, HIGH);
sensorIN = durationIN *0.034/2;
if(sensorOUT
#include
int trigPinOUT = 8;
int echoPinOUT = 9;
const int pb1 = 1;
long durationOUT;
long sensorOUT;
int trigPinIN= 11;
int echoPinIN= 12;
int ledHijau = 13;
int ledKuning = A0;
int ledMerah = A1;
long durationIN;
long sensorIN;
boolean tutup = true;
Servo myservo;
void setup()
{
pinMode(pb1,INPUT_PULLUP);
pinMode(trigPinOUT,OUTPUT);
pinMode(echoPinOUT,INPUT);
pinMode(A2,OUTPUT); //BUZZER
pinMode(trigPinIN,OUTPUT);
Universitas Sumatera Utara
pinMode(echoPinIN,INPUT);
pinMode(13,OUTPUT);
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
myservo.attach(10);
myservo.write(95);
}
void loop()
{
if(digitalRead(pb1) == LOW){
if(tutup) {
myservo.write(15);
tutup = false;
}
else {
myservo.write(95);
tutup = true;
}
}
else{
if(tutup){
digitalWrite(trigPinOUT, LOW);
delayMicroseconds(2);
digitalWrite(trigPinOUT, HIGH);
delayMicroseconds(10);
Universitas Sumatera Utara
digitalWrite(trigPinOUT, LOW);
durationOUT = pulseIn(echoPinOUT, HIGH);
sensorOUT = durationOUT *0.034/2;
digitalWrite(trigPinIN, LOW);
delayMicroseconds(2);
digitalWrite(trigPinIN, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinIN, LOW);
durationIN = pulseIn(echoPinIN, HIGH);
sensorIN = durationIN *0.034/2;
if(sensorOUT