#include <Servo.h>
Servo myservo;
int pos = 90;
const int trigPin = 9;
const int echoPin = 10;
const int trigPin2 = 5;
const int echoPin2 = 6;
const int relayPin = 11;
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701
long duration, duration2;
float distanceCm, distanceCm2;
float distanceInch, distanceInch2;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(relayPin, OUTPUT);
myservo.attach(3);
myservo.write(pos);
}
void loop() {
// Mengukur jarak di Tangki 1
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * SOUND_SPEED/2;
// Mengukur jarak di Tangki 2
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distanceCm2 = duration2 * SOUND_SPEED/2;
// Menampilkan jarak pada Serial Monitor
Serial.print("Tingkat Air Tangki 1 (cm): ");
Serial.println(distanceCm);
Serial.print("Tingkat Air Tangki 2 (cm): ");
Serial.println(distanceCm2);
// Mengendalikan Servo
if(distanceCm < 8) {
myservo.write(180);
delay(15);
} else {
myservo.write(90);
delay(15);
}
// Mengendalikan Relay
if(distanceCm2 < 8) {
digitalWrite(relayPin, HIGH); // Turn on relay if distance is more than 50 cm
} else {
digitalWrite(relayPin, LOW); // Turn off relay otherwise
}
delay(1000);
}