#define echoPin 7 //mendefinisikan simbol dengan nama "echoPin" dan memberikan nilainya 7.
#define trigPin 8 //mendefinisikan simbol dengan nama "trigPin" dan memberikan nilai 8.
int ledRed = 3; //mengatur pin yang akan digunakan untuk mengendalikan sebuah LED (LED warna merah).
int ledYellow = 2; //mengatur pin yang akan digunakan untuk mengendalikan sebuah LED (LED warna kuning).
void setup() { //untuk mengatur semua hal yang perlu diatur sebelum program utama dimulai.
// put your setup code here, to run once:
Serial.begin(9600); //untuk menginisialisasi komunikasi serialdengan kecepatan (baud rate) 9600 bit per detik. pinMode(ledRed, OUTPUT); //mengkonfigurasi pin sebagai pin output.
pinMode(ledRed, OUTPUT); //mengkonfigurasi pin sebagai pin output.
pinMode(ledYellow, OUTPUT); //mengontrol LED dan terhubung ke pin yang diwakili oleh ledYellow.
void loop() {
}
void loop() {
// put your main code here, to run repeatedly:
long jarak, ketinggianAir, duration; //menyimpan data jarak, ketinggian air, atau durasi.
digitalWrite(trigPin, LOW); //mengukur jarak.
delayMicroseconds(2); //membuat jeda selama 2 mikrodetik sebelum melanjutkan eksekusi program selanjutnya.
digitalWrite(trigPin, HIGH); //mengatur pin padaArduino menjadi HIGH dengan tujuan mengirimkan sinyal melalui pin tersebut.
delayMicroseconds(10); //membuat jeda selama 10 mikrodetik sebelum melanjutkan eksekusi program selanjutnya.
digitalWrite(trigPin, LOW); //mengatur pin menjadi LOW dengan tujuan mematikan sinyal.
duration = pulseIn(echoPin, HIGH); //mengukur durasi sinyal untuk berubah dari LOW (OV) menjadi HIGH.
jarak = (duration/2) / 28.5; //menghitung jarak dari durasi yang diukur oleh sensor ultrasonik.
ketinggianAir = 18.5 - jarak; //menghitung ketinggian air berdasarkan nilai jarak yang telah diukur sebelumnya
Serial.println("Ketinggian Air = "); //mencetak pesan "Ketinggian Air "ke terminal serial pada platform Arduino.
Serial.print(ketinggianAir); //mencetak nilai dari variabel ketinggianAir ke terminal serial pada platform Arduino.
Serial.println(" cm"); //mencetak pesan teks" cm" di jendela monitor serial untuk memberikan informasi tentang satuan yang digunakan dalam hasil pengukuran .
if (ketinggianAir < 5){ //menguji kondisi ketinggianAir kurang dari 5.
digitalWrite(ledYellow, HIGH); //mengatur keadaan suatu pin ledYellow menjadi HIGH yg berarti mengalirkan tegangan ke pin tersebut.
digitalWrite(ledRed, LOW); //mengatur keadaan suatu pin ledRed menjadi HIGH yg berarti mengalirkan tegangan ke pin tersebut.
Serial.println("Air tersedia"); //mencetak pesan "Air tersedia" ke terminal serial pada platform Arduino, untuk memberikan informasi atau pesan kepada pengguna.
}else if (ketinggianAir > 5) {
digitalWrite(ledYellow, LOW); //mengatur keadaan pin pada platform Arduino menjadi LOW, yang digunakan untuk mematikan perangkat yang terhubung ke pin.
digitalWrite(ledRed, HIGH); //mengatur keadaan pin pada platform Arduino menjadi LOW, yang digunakan untuk mematikan perangkat yang terhubung ke pin.
Serial.println("Air habis"); //mencetak pesan "Air habis" ke terminal serial pada platform Arduino.
}
delay(2000); //membuat jeda selama 2000 milidetik (atau 2 detik) sebelum melanjutkan eksekusi program selanjutnya.
}