Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right Дисплеи chevron_right LED Bar Graph — светодиодный столбчатый индикатор

LED Bar Graph — светодиодный столбчатый индикатор

Узнайте, как собрать светодиодный bar graph — линейку из LEDs, управляемую аналоговым сигналом с потенциометра.

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

Урок опирается на идеи из туториалов For Loop and Arrays и Analog Input.

A bar graph display

Необходимые компоненты

  • Arduino Board
  • Светодиодный bar graph-дисплей или 10 отдельных LEDs
  • Потенциометр
  • 10 резисторов по 220 Ом
  • Соединительные провода
  • Макетная плата

Схема подключения

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

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

Принципиальная схема

Принципиальная схема: Arduino UNO управляет 10 светодиодами через резисторы 220 Ом; потенциометр подключён к аналоговому входу A0. На схеме — РЕЗИСТОРЫ 220 Ом и Светодиоды.

Как это работает

Логика скетча очень прямолинейна:

  1. Считываем аналоговое значение с потенциометра (analogRead).
  2. Функцией map() переводим диапазон 0–1023 в диапазон 0–10 (количество светодиодов).
  3. В цикле 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