#include <Servo.h>
// Definisikan pin untuk sensor HC-SR04
const int trigPins[] = {2, 4, 6, 8};
const int echoPins[] = {3, 5, 7, 9};
// Definisikan pin untuk servo
const int servoPins[] = {10, 11, 12, 13};
Servo servos[4]; // Buat array objek servo
void setup() {
Serial.begin(9600); // Mulai komunikasi serial
// Inisialisasi pin untuk sensor dan servo
for (int i = 0; i < 4; i++) {
pinMode(trigPins[i], OUTPUT);
pinMode(echoPins[i], INPUT);
servos[i].attach(servoPins[i]);
servos[i].write(0); // Mulai servo dari sudut 0 derajat
}
}
void loop() {
for (int i = 0; i < 4; i++) {
long duration;
int distance;
// Mengirim sinyal trigger untuk sensor yang bersangkutan
digitalWrite(trigPins[i], LOW);
delayMicroseconds(2);
digitalWrite(trigPins[i], HIGH);
delayMicroseconds(10);
digitalWrite(trigPins[i], LOW);
// Menerima sinyal echo
duration = pulseIn(echoPins[i], HIGH);
// Menghitung jarak dalam cm
distance = duration * 0.034 / 2;
// Tampilkan jarak ke Serial Monitor
Serial.print("Sensor ");
Serial.print(i + 1);
Serial.print(" Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Kondisi untuk menggerakkan servo yang bersangkutan
if (distance <= 20) {
servos[i].write(90); // Gerakkan servo ke 90 derajat
} else {
servos[i].write(0); // Kembali ke 0 derajat
}
}
delay(500); // Tunggu setengah detik sebelum pengukuran berikutnya
}