LED Bar Graph — светодиодный столбчатый индикатор
Узнайте, как собрать светодиодный bar graph — линейку из LEDs, управляемую аналоговым сигналом с потенциометра.
Столбчатый индикатор (bar graph) — это ряд LEDs, выстроенных в линию, как на дисплее аудиоуровня. Такие индикаторы часто используют для наглядного отображения значений аналоговых датчиков: чем выше уровень сигнала, тем больше светодиодов горит. Конструкция простая: ряд LEDs, аналоговый вход с потенциометром и немного кода. Готовые многосегментные bar graph-дисплеи стоят недорого — например, this one. Этот урок показывает, как управлять серией LEDs в ряд, но та же логика применима к любому набору цифровых выходов.
Урок опирается на идеи из туториалов For Loop and Arrays и Analog Input.

Необходимые компоненты
- Arduino Board
- Светодиодный bar graph-дисплей или 10 отдельных LEDs
- Потенциометр
- 10 резисторов по 220 Ом
- Соединительные провода
- Макетная плата
Схема подключения
Светодиоды подключаются к цифровым пинам Arduino последовательно через токоограничивающие резисторы 220 Ом. Потенциометр подключается к аналоговому входу A0: крайние выводы — к 5V и GND, средний (движок) — к A0.

Схема подключения: Arduino UNO, макетная плата, 10 светодиодов с резисторами и потенциометр на входе A0.
Принципиальная схема

Принципиальная схема: Arduino UNO управляет 10 светодиодами через резисторы 220 Ом; потенциометр подключён к аналоговому входу A0. На схеме — РЕЗИСТОРЫ 220 Ом и Светодиоды.
Как это работает
Логика скетча очень прямолинейна:
- Считываем аналоговое значение с потенциометра (
analogRead). - Функцией
map()переводим диапазон 0–1023 в диапазон 0–10 (количество светодиодов). - В цикле for loop проходим по всем выходам: если номер светодиода меньше полученного значения — включаем (
HIGH), иначе — выключаем (LOW).
Таким образом, поворачивая ручку потенциометра, вы управляете тем, сколько светодиодов горит одновременно — от нуля до десяти.
Код
for loop перебирает все выходы по порядку. Каждый светодиод сравнивается с отображённым значением входа: если его порядковый номер меньше этого значения — он включается, если нет — выключается.
Практические замечания
- Резисторы обязательны. Без токоограничивающих резисторов светодиоды могут перегореть или вывести из строя пины Arduino. 220 Ом — хороший выбор для питания 5 В.
- Порядок пинов важен. Удобно объявить массив пинов в начале скетча, чтобы легко менять распиновку без правки всего кода.
- Готовый bar graph-дисплей экономит место на макетной плате: все 10 светодиодов уже собраны в одном корпусе с общим катодом или анодом. Уточните тип перед подключением.
- Масштабируемость. Хотите 8 или 16 светодиодов? Просто измените константу с количеством выходов и обновите массив пинов.
Типичные ошибки
- Светодиоды не горят вовсе — проверьте полярность: длинная ножка (анод) должна идти к пину Arduino через резистор, короткая (катод) — к
GND. - Горит только один светодиод — скорее всего, перепутан диапазон в
map()или неверно задан массив пинов. - Индикатор работает «наоборот» — поменяйте местами крайние выводы потенциометра (
5VиGND). - Мерцание — возможно, слишком частый опрос
analogRead. Добавьте небольшую задержкуdelay(10)в конец циклаloop().
Как проверить результат
Поверните потенциометр в крайнее левое положение — все светодиоды должны погаснуть. В крайнем правом — все десять должны гореть. Плавное вращение ручки должно последовательно включать или выключать светодиоды один за другим.
Дополнительные материалы
Больше базовых уроков вы найдёте в разделе built-in examples.
Также рекомендуем изучить language reference — подробный справочник языка программирования Arduino.
Последнее обновление: 28.07.2015, SM