Six-LED Level Meter with a Potentiometer
Turn a potentiometer into a six-LED level indicator, displaying a mapped level from 0 to 7.
Lesson 14 · Reuse the potentiometer; build six outputs
Keep the potentiometer on A0. Add six LEDs to pins D2–D7, each with its own 220–330 Ω resistor and a common GND connection.
1Pot outer terminals → 5 V and GND; centre → A0
2D2, D3, D4, D5, D6, D7 → six separate resistors → six LED anodes
3All six LED cathodes → GND
PHOTO TO ADDPotentiometer next to a straight chain of six numbered LEDs.
Map 0–1023 to levels 0–7
At level 0 all LEDs are off. As the knob turns, more LEDs illuminate. Level 7 means all six are on. Since there are eight numbered levels but only six LEDs, levels 6 and 7 both display all six on; print the number to distinguish them.
void setup() {
pinMode(2, OUTPUT); pinMode(3, OUTPUT);
pinMode(4, OUTPUT); pinMode(5, OUTPUT);
pinMode(6, OUTPUT); pinMode(7, OUTPUT);
Serial.begin(9600);
}
void loop() {
int raw = analogRead(A0);
int level = map(raw, 0, 1023, 0, 7);
digitalWrite(2, level >= 1 ? HIGH : LOW);
digitalWrite(3, level >= 2 ? HIGH : LOW);
digitalWrite(4, level >= 3 ? HIGH : LOW);
digitalWrite(5, level >= 4 ? HIGH : LOW);
digitalWrite(6, level >= 5 ? HIGH : LOW);
digitalWrite(7, level >= 6 ? HIGH : LOW);
Serial.print("Raw: "); Serial.print(raw);
Serial.print(" Level: "); Serial.println(level);
delay(50);
}VIDEO TO ADDShow raw input, printed level and LED chain through the full knob travel.