Dalam dunia elektronika, indikator level atau level indicator sering digunakan untuk menunjukkan status suatu parameter fisik, seperti volume, suhu, atau tegangan. Salah satu cara visualisasi yang paling sederhana adalah menggunakan LED yang menyala secara bertahap sesuai nilai masukan analog. Proyek ini adalah contoh nyata dari konsep tersebut, yaitu menggunakan potensiometer sebagai input dan enam LED sebagai indikator level.
Dengan memutar potensiometer, nilai analog yang terbaca akan semakin besar. Nilai tersebut kemudian dibandingkan dengan ambang batas yang telah ditentukan untuk menyalakan LED satu per satu secara bertahap. Semakin tinggi nilai potensiometer, semakin banyak LED yang menyala. Ini meniru sistem indikator bar, seperti pada volume level meter atau fuel gauge digital.
Proyek ini sangat cocok untuk pemula karena menggunakan komponen dasar dan tidak memerlukan library tambahan. Selain itu, dapat dikembangkan menjadi indikator suhu, cahaya, atau bahkan level air jika input dari potensiometer diganti sensor yang sesuai.
Komponen yang Digunakan
- 1x Arduino Uno
- 6x LED (boleh berbagai warna)
- 6x Resistor 220Ω atau 330Ω
- 1x Potensiometer (10KΩ disarankan)
- Kabel jumper secukupnya
- Breadboard
Skema Rangkaian

Koneksi Rangkaian
Komponen | Pin Arduino |
---|---|
Potensiometer VCC | 5V |
Potensiometer GND | GND |
Potensiometer OUT | A0 |
LED 1 (+) | D2 |
LED 2 (+) | D3 |
LED 3 (+) | D4 |
LED 4 (+) | D5 |
LED 5 (+) | D6 |
LED 6 (+) | D7 |
Semua LED (–) | GND via resistor 220Ω atau 330Ω |
Library yang Harus Ditambahkan
Proyek ini tidak membutuhkan library tambahan, cukup menggunakan library bawaan dari Arduino IDE.
Kode Program Lengkap
//PROGRAM INI DI BUAT OLEH : MANFAHBOT INDUSTRIAL AUTOMATION
//HAK CIPTA PROGRAM/CODING : LUKMAN HAKIM A.
//WEBSITE : http://manfahbot.cc
int pinLed1 = 2;
int pinLed2 = 3;
int pinLed3 = 4;
int pinLed4 = 5;
int pinLed5 = 6;
int pinLed6 = 7;
int pinPot = A0;
void setup() {
Serial.begin(9600);
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);
pinMode(pinLed6, OUTPUT);
}
void loop() {
int nilaiPot = analogRead(pinPot);
Serial.println(nilaiPot);
if (nilaiPot > 0) {
digitalWrite(pinLed1, HIGH);
} else {
digitalWrite(pinLed1, LOW);
}
if (nilaiPot > 200) {
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed1, LOW);
} else {
digitalWrite(pinLed2, LOW);
}
if (nilaiPot > 400) {
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed2, LOW);
} else {
digitalWrite(pinLed3, LOW);
}
if (nilaiPot > 600) {
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed3, LOW);
} else {
digitalWrite(pinLed4, LOW);
}
if (nilaiPot > 800) {
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed4, LOW);
} else {
digitalWrite(pinLed5, LOW);
}
if (nilaiPot > 1000) {
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed5, LOW);
} else {
digitalWrite(pinLed6, LOW);
}
}
Penjelasan Singkat Program
analogRead(pinPot)
membaca nilai potensiometer dari 0 hingga 1023.- Setiap nilai ambang (200, 400, dst) digunakan untuk menentukan level LED mana yang harus menyala.
- Hanya satu LED yang menyala pada satu waktu berdasarkan tingkatan nilai yang terbaca, mirip indikator geser (bar level).
Serial.println(nilaiPot);
digunakan untuk debugging, menampilkan nilai potensiometer di Serial Monitor.
Kesimpulan
Proyek indikator LED ini memperkenalkan konsep dasar pembacaan analog dan pengendalian output digital bertingkat dengan Arduino. Meskipun sederhana, proyek ini membuka banyak kemungkinan aplikasi lain seperti indikator ketinggian air, sensor tekanan, atau visualisasi variabel sensor lainnya. Kamu juga bisa mengembangkan sistem ini menjadi indikator linier atau bahkan grafik LED dengan tampilan lebih kompleks menggunakan shift register atau LED bargraph.