Семисегментный индикатор и светодиодные матрицы для Arduino: что выбрать
Когда нужно показать только цифры — время, температуру, счёт, — семисегментный индикатор выигрывает у дисплея по всем статьям: он ярче, читается издалека и с любого угла, стоит копейки и не боится мороза. Внутри это просто набор светодиодов в форме восьмёрки.
Плата за простоту — количество выводов. Один разряд требует восьми линий, четыре разряда напрямую заняли бы больше, чем есть у Arduino UNO. Поэтому в дело вступают драйверы.
Разборы конкретных моделей
Как подключить светодиодную матрицу 8×8 на драйвере MAX7219 к Arduino: три провода DIN, CS, CLK, питание 5 В, библиотека LedControl, скетч с рисунком и яркостью. Как соединить несколько матриц в бегущую строку с библиотекой MD_Parola.
Семисегментный индикаторКак подключить семисегментный индикатор к Arduino: распиновка, схема с резисторами, чем отличается общий катод от общего анода, таблица цифр и готовый скетч счётчика.
Четырёхразрядный индикатор на TM1637Как подключить четырёхразрядный семисегментный индикатор на TM1637 к Arduino: выводы CLK, DIO, VCC, GND, библиотека TM1637Display, скетч с числами, двоеточием и яркостью. Часы с DS3231 на TM1637 и типичные ошибки.
Виды индикаторов
Одна цифра, десять выводов: семь сегментов, точка и два общих. Подключается напрямую к плате через резисторы. Хорош для учебных проектов и там, где нужна одна цифра.
Четыре цифры в одном корпусе, двенадцать выводов. Разряды зажигаются по очереди с большой частотой — глаз видит их как горящие одновременно. Напрямую съедает почти все выводы платы, поэтому чаще берут с драйвером.
Четыре разряда плюс микросхема-драйвер на одной плате. Занимает всего два вывода и питание, сама разбирается с динамической индикацией и яркостью. Именно этот вариант ставят в часы и термометры.
Шестьдесят четыре точки, на которых можно рисовать буквы, значки и бегущую строку. Драйвер MAX7219 работает по трём проводам и умеет каскадироваться: несколько матриц соединяются в длинное табло одной цепочкой.
Десять светодиодов в ряд в одном корпусе. Показывает уровень: громкость, заряд, температуру. По сути десять обычных светодиодов, каждому нужен свой резистор.
Общий катод или общий анод
Все светодиоды внутри индикатора соединены одной стороной. Если объединены минусы — это общий катод: сегмент зажигается высоким уровнем на своём выводе, а общий сажают на землю. Если объединены плюсы — общий анод: общий идёт на питание, а сегмент зажигается низким уровнем.
Внешне они неразличимы, а перепутанный тип даёт одинаковый результат — индикатор просто не светится. Определить можно мультиметром в режиме прозвонки диодов: коснитесь общего вывода красным щупом и любого сегмента чёрным. Если сегмент вспыхнул — это общий анод, если нет — попробуйте наоборот.
Резисторы обязательны
Каждый сегмент — это отдельный светодиод, и каждому нужен свой токоограничивающий резистор на 220–330 Ом. Соблазн поставить один общий резистор велик, но тогда яркость поплывёт: цифра «один» из двух сегментов будет светить ярче, чем «восьмёрка» из семи, потому что ток делится между всеми зажжёнными.
У модулей с драйвером — TM1637, MAX7219 — эта задача решена на плате: драйвер сам стабилизирует ток каждого сегмента, и внешние резисторы не нужны.