#include <Servo.h>
// Mendefinisikan pin-pins Trig dan Echo dari Sensor Ultrasonik
const int trigPin = 11;
const int echoPin = 10;
// Variabel untuk durasi dan jarak
long duration;
int distance;
Servo myServo; // Membuat objek servo untuk mengontrol motor servo
void setup() {
pinMode(trigPin, OUTPUT); // Mengatur trigPin sebagai Output
pinMode(echoPin, INPUT); // Mengatur echoPin sebagai Input
Serial.begin(9600);
myServo.attach(12); // Mendefinisikan pin mana motor servo terhubung
}
void loop() {
// Memutar motor servo dari 15 hingga 165 derajat
for (int i = 0; i <= 180; i++) {
myServo.write(i);
delay(10);
distance = calculateDistance(); // Memanggil fungsi untuk menghitung jarak yang diukur oleh sensor Ultrasonik untuk setiap derajat
Serial.print(i); // Mengirim derajat saat ini ke Port Serial
Serial.print(","); // Mengirim karakter tambahan di sebelah nilai sebelumnya yang diperlukan nanti di IDE Processing untuk pengindeksan
Serial.print(distance); // Mengirim nilai jarak ke Port Serial
Serial.print("."); // Mengirim karakter tambahan di sebelah nilai sebelumnya yang diperlukan nanti di IDE Processing untuk pengindeksan
}
// Mengulangi baris sebelumnya dari 165 hingga 15 derajat
for (int i = 180; i > 0; i--) {
myServo.write(i);
delay(10);
distance = calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(".");
}
}
// Fungsi untuk menghitung jarak yang diukur oleh sensor Ultrasonik
int calculateDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Mengatur trigPin dalam keadaan HIGH selama 10 mikro detik
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Membaca echo lun, mengembalikan waktu perjalanan gelombang suara dalam mikro detik
distance = duration * 0.034 / 2;
return distance;
}