Как стать автором
Обновить
576.42
OTUS
Цифровые навыки от ведущих экспертов

Делаем адресные 7-сегментные дисплеи своими руками

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.8K
Автор оригинала: seanhodgins
Addressable 7-Segment Displays
Addressable 7-Segment Displays

7-сегментные дисплеи часто оказываются куда сложнее, чем кажется на первый взгляд. В сущности, нужно просто включать несколько светодиодов для отображения цифр или букв. То есть, нужно управлять каждым сегментом каждой цифры, а если у цифр четыре, это уже 4 * 7 = 28 выходов! Не забывайте и о проводке с резисторами. А когда приходится управлять множеством таких дисплеев, всё становится куда сложнее. Я решил создать простой способ, который позволяет использовать любое количество 7-сегментных дисплеев с высокой степенью модульности. Нужно ли 20 дисплеев или всего 2 — в любом случае вам понадобится всего одна линия данных от Arduino для управления.

Шаг 1: Подготовьте необходимые детали и инструменты

Get the Parts and Tools!

В этом проекте используется минимальное количество деталей, почему он мне и нравится, но придётся освоить пайку SMD-компонентов.

Компоненты для одного дисплея:

  • 1 x печатная плата — файлы можно скачать с GitHub или заказать через PCBWay

  • 3 x WS2811 — Adafruit

  • 1 x 7сегментный дисплей — должен быть с общим анодом! Они есть у Sparkfun

  • 3 x Резистор 33 Ом 0805 — Digikey

  • 3 x Конденсатор 1 мкФ 0805 — Digikey

  • 1 x 3-пиновый угловой разъем — Female — Digikey

  • 1 x 3-пиновый угловой разъем — Male — Digikey

Инструменты:

  • Паяльник

  • Печь для рефлоу или паяльная станция с горячим воздухом (опционально, но проще)

  • Паяльная паста или припой

Шаг 3: Начнём с SMD-компонентов

Нанесите паяльную пасту на обратную сторону платы. Все используемые компоненты достаточно просты в работе, так что это отличный проект для начала, если вы ещё ни разу не паяли SMD-компоненты (поверхностно-монтируемые) методом оплавления (рефлоу). После нанесения пасты установите конденсаторы, резисторы, а затем микросхему WS2811. Следуйте маркировке на плате.

Шаг 4: Процесс рефлоу

Reflow!

Возьмите паяльную станцию с горячим воздухом или печь для рефлоу и прогрейте компоненты до плавления паяльной пасты. Если у вас нет станции с горячим воздухом или печи для рефлоу, можно использовать обычный паяльник с припоями. Это более трудоёмко, но вполне выполнимо. У меня есть видео по этой теме, если хотите узнать несколько техник. 

Шаг 5: Добавьте пины для разъёмов

Add the Pin Headers.

Порядок шагов в этом руководстве имеет значение. Разъёмы нужно паять первыми, потому что их контактные площадки вскоре будут скрыты под компонентом 7-сегментного дисплея. На плате указана правильная ориентация разъёмов — постарайтесь установить их как можно ровнее.

Шаг 6: Припаяйте 7-сегментный дисплей

Solder the 7-Segment Display

Последним этапом нужно припаять компонент 7-сегментного дисплея. Убедитесь, что он правильно ориентирован — ориентируйтесь на маркировку на шелкографии.

Когда пайка завершена, очистите плату с помощью очистителя — и всё готово!

Шаг 7: Как работает схема

How the Hardware Works.

Чип WS2811 позволяет управлять тремя светодиодами с регулируемой яркостью. Обычно это красный, зелёный и синий светодиоды, что позволяет создать тысячи различных цветов. В случае с 7-сегментным дисплеем мы используем три WS2811 для управления яркостью 8 различных сегментов дисплея. Два чипа WS2811 подключены к трём сегментам, трейти — к двум, а оставшийся сегмент соединён с неустановленным светодиодом, который я решил оставить про запас — на случай, если пригодится.

Адресуемость WS2811 заключается в том, что он может передавать данные от одного WS2811 к другому. Когда вы отправляете строку битов (данных), чип принимает информацию о том, какие светодиоды нужно включить, и передаёт часть данных следующему WS2811, пока все они не получат нужную информацию. Это значит, что для передачи данных достаточно всего одной линии. После того как данные для одного дисплея получены, чип передаёт информацию следующему.

На изображении выше представлена упрощённая схема подключения. Свободный зелёный провод идёт на следующий дисплей.

Шаг 8: Как работает демонстрационная программа

How the Demo Program Works.

Я написал программу для Arduino, чтобы продемонстрировать отображение информации на адресном 7-сегментном дисплее. Она использует библиотеку Adafruit NeoPixel для управления 7-сегментными дисплеями. По сути, каждая цифра представляет собой в 3 Neopixels. Вы можете отправить одну цифру на дисплей и контролировать её яркость, просто написав:

writeDigit(DisplayNumber, Number, Brightness);

DisplayNumber — это номер дисплея, на который вы хотите вывести цифру, начиная с 0. Number — это цифра, которую вы хотите отобразить на дисплее (от 0 до 9), а Brightness — значение яркости от 0 до 255.

Каждый раз, когда нужно обновить дисплеи, отправьте:

segments.show();

Поскольку здесь не используется мультиплексирование, это упрощает выполнение таких задач, как пульсация чисел, их затемнение, создание интересных анимаций.

Вложения

Шаг 9: Соединение дисплеев в цепочку

Это самая крутая часть. Если для проекта требуется 5 дисплеев, просто соедините их и измените код для отображения 5 дисплеев. Нужно 10? Просто соедините 10. Это так просто, и проводка остаётся точно такой же! Всего 3 провода.


Если хотите углубиться в разработку динамичных интерфейсов или реализовать собственный проект на Go с понятной архитектурой, обратите внимание на эти разборы:

Больше открытых уроков от преподавателей-практиков по разработке и не только смотрите в календаре.

Теги:
Хабы:
+34
Комментарии31

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS