// Rabu, 23 Oktober 2024
// Nama : Chandra Pratama
// NIM : 2022230017
int ledPinMerah = 2; // deklarasi pin LED merah
int ledPinKuning = 15; // deklarasi pin LED kuning
int ledPinHijau = 4; // deklarasi pin LED hijau
int potensioPin = 34; // deklarasi pin potensio
int buzzerPin = 13; // deklarasi pin buzzer (Anda bisa ubah sesuai kebutuhan)
int val = 0; // deklarasi variabel nilai analog
void setup() {
Serial.begin(9600); // inisialisasi serial monitor dengan baudrate 9600
pinMode(ledPinMerah, OUTPUT); // inisialisasi pin LED merah
pinMode(ledPinKuning, OUTPUT); // inisialisasi pin LED kuning
pinMode(ledPinHijau, OUTPUT); // inisialisasi pin LED hijau
pinMode(buzzerPin, OUTPUT); // inisialisasi pin buzzer
}
void loop() {
val = analogRead(potensioPin); // membaca nilai analog dari pin potensio
int nilaipot = val / 4; // konversi nilai analog menjadi nilai ideal
int kecerahan = map(nilaipot, 0, 1023, 0, 255); // konversi range nilai
// Mengatur kondisi LED dan buzzer berdasarkan nilai kecerahan
if (kecerahan >= 0 && kecerahan <= 128) {
digitalWrite(ledPinMerah, HIGH); // LED merah menyala
digitalWrite(ledPinKuning, LOW); // LED kuning mati
digitalWrite(ledPinHijau, LOW); // LED hijau mati
noTone(buzzerPin); // buzzer mati
}
else if (kecerahan > 128 && kecerahan <= 191) {
digitalWrite(ledPinMerah, LOW); // LED merah mati
digitalWrite(ledPinKuning, HIGH); // LED kuning menyala
digitalWrite(ledPinHijau, LOW); // LED hijau mati
noTone(buzzerPin); // buzzer mati
}
else if (kecerahan > 191 && kecerahan <= 200) {
digitalWrite(ledPinMerah, LOW); // LED merah mati
digitalWrite(ledPinKuning, LOW); // LED kuning mati
digitalWrite(ledPinHijau, HIGH); // LED hijau menyala
noTone(buzzerPin); // buzzer mati
}
else if (kecerahan > 200) {
digitalWrite(ledPinMerah, HIGH); // LED merah menyala
digitalWrite(ledPinKuning, LOW); // LED kuning mati
digitalWrite(ledPinHijau, LOW); // LED hijau mati
tone(buzzerPin, 400); // buzzer menyala dengan frekuensi 400 Hz
}
Serial.println(val); // menampilkan nilai potensio ke serial monitor
delay(100); // delay untuk stabilisasi pembacaan
}