// ---------------------------------------------------------------- //
// Arduino Ultrasoninc Sensor HC-SR04
// Using HC-SR04 Module
// ---------------------------------------------------------------- //
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define echoPin1 32
#define trigPin1 33
#define echoPin2 19
#define trigPin2 18
// defines variables
Servo SM;
int ledPin = 12;
const int pinServo = 26;
int pos = 0;
long duration1;
long duration2;
int distance1;
int distance2;
void setup() {
lcd.init();
lcd.backlight();
lcd.setBacklight(HIGH);
SM.attach(pinServo);
pinMode(ledPin, OUTPUT);
pinMode(trigPin1, OUTPUT); // Sets the trigPin as an OUTPUT
pinMode(echoPin1, INPUT); // Sets the echoPin as an INPUT
pinMode(trigPin2, OUTPUT); // Sets the trigPin as an OUTPUT
pinMode(echoPin2, INPUT); // Sets the echoPin as an INPUT
Serial.begin(9600); // // Serial Communication is starting with 9600 of baudrate speed
Serial.println("Smart Trash Can"); // print some text in Serial Monitor
Serial.println("with Arduino ESP 32");
}
void loop() {
// Clears the trigPin condition
ultra2();
digitalWrite(ledPin,LOW);
if(distance2 <=4){
digitalWrite(ledPin,HIGH);
lcd.setCursor(0,0);
lcd.print("Tempat Sampah");
lcd.setCursor(0,1);
lcd.print("Penuh !!!");
//tone(25,100);
}
else{
digitalWrite(ledPin,LOW);
lcd.clear();
//noTone(25);
}
ultra1();
SM.write(0);
if(distance1 <= 10){
SM.write(90);
}
else{
return;
}
}
void ultra1(){
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1 = duration1*0.034/2;
}
void ultra2(){
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distance2 = duration2*0.034/2;
}