Семисегментный индикатор SegM8
Используйте семисегментный индикатор SegM8 для отображения цифр, символов и некоторых букв, которые будут видны на расстоянии до 50 метров.
С модулями SegM8 вам не придётся думать про схему управления и питания каждого сегмента. Мы всё продумали, вам осталось лишь подключить контроллер с интерфейсом SPI и подать на индикатор общее питание!
Примеры работы для Arduino
В качестве мозга для работы с индикатором SegM8 рассмотрим платформы из семейства Arduino.
Подключение и настройка
Для старта необходимо подключить железо и выполнить программную настройку.
Аппаратная часть
На аппаратном уровне светодиодный модуль общается с управляющей электроникой по интерфейсу SPI. Рассмотрим два случая коммуникации:
Подробнее про SPI в Arduino
Hardware SPI
Hardware SPI — это аппаратный SPI, который предназначен для общения с модулями по одноименному интерфейсу. Контакты MOSI, MISO и SCK интерфейса SPI вынесены на платах Arduino на отдельный ICSP-разъём.
Подключим SegM8 к платформе Arduino Uno. Для коммуникации используйте соединительные провода «папа-папа» и «мама-папа».
Индикатор SegM8 | Arduino Uno |
---|---|
VCC | +5V |
GND | GND |
CS | 10 |
DI / MISO | DO / MOSI |
CLK / SCK | CLK / SCK |
Для быстрой сборки и отладки устройства рекомендуем взять плату расширения Screw Shield, которая одевается сверху на Arduino Uno методом бутерброда.
Software SPI
Software SPI — это программный SPI, который который позволяет имитировать аппаратный SPI на других контактах платы. Это удобно когда на плате нет доступа к контактам Hardware SPI.
Подключим SegM8 к платформе Arduino Uno. Для коммуникации используйте соединительные провода «папа-папа».
Индикатор SegM8 | Arduino Uno |
---|---|
VCC | +5V |
GND | GND |
CS | 10 |
DI / MISO | 5 |
CLK / SCK | 7 |
Для быстрой сборки и отладки устройства рекомендуем взять плату расширения Screw Shield, которая одевается сверху на Arduino Uno методом бутерброда.
Программная часть
- Установите библиотеку SegM8.
На этом установка закончена, теперь смело переходите к экспериментам.
Простой счётчик
Выведем на семисегментный индикатор значения счётчика от 0 до 9.
Код для Hardware SPI
- segm8-led-module-example-arduino-hardwarespi-counter.ino
// Библиотека для работы с cемисегментным модулем SegM8 // https://github.com/amperka/SegM8 // Подробности и описание функций читайте в API.md #include "segm8.h" // Создаём объект для работы с модулем SegM8 // Используем аппаратный SPI // Передаём номер пина CS и кол-во подключенных индикаторов SegM8 module(10, 1); void setup() { // Инициализируем cемисегментный индикатор SegM8 module.begin(); } void loop() { // Перебираем показания счётчика от 0 до 9 for (int counter = 0; counter < 10; counter++) { // Выводим текущее значение счётчика module.display(counter, 0, 1); // Ждём 1 секунду delay(1000); } }
Код для Software SPI
- segm8-led-module-example-arduino-softwarespi-counter.ino
// Библиотека для работы с cемисегментным модулем SegM8 // https://github.com/amperka/SegM8 // Подробности и описание функций читайте в API.md #include "segm8.h" // Создаём объект для работы с модулем SegM8 // Используем программный SPI // Передаём номер пинов CS, DI, CLK // и кол-во подключенных индикаторов SegM8 module(10, 5, 7, 1); void setup() { // Инициализируем cемисегментный индикатор SegM8 module.begin(); } void loop() { // Перебираем показания счётчика от 0 до 9 for (int counter = 0; counter < 10; counter++) { // Выводим текущее значение счётчика module.display(counter, 0, 1); // Ждём 1 секунду delay(1000); } }
После прошивки устройства, счётчик на индикаторе не заставит себя долго ждать.
Если яркость свечения индикатора для вас слишком слабая, подключите к SegM8 дополнительное питание через силовой клеммник.
Вывод строки
Семисегментные индикаторы поддерживают последовательное подключение между собой в цепочку (гирлянду). Каждый новый модуль добавляет к текущему дисплею ещё один разряд для отображения цифры или буквы. Кол-во подключаемых модулей ограничено только мощностью источника питания и памятью контроллера.
Добавим к предыдущему примеру ещё три светодиодных модуля SegM8. Для соединения индикаторов между собой используйте штыревые контакты PLH-40, а откусить нужное кол-во штырьков помогут бокорезы.
Выведем на сборку из четырёх семисегментных индикаторов строку «7Seg».
Код для Hardware SPI
- segm8-led-module-example-arduino-hardwarespi-multiple-text.ino
// Библиотека для работы с cемисегментным модулем SegM8 // https://github.com/amperka/SegM8 // Подробности и описание функций читайте в API.md #include "segm8.h" // Создаём объект для работы с модулем SegM8 // Используем аппаратный SPI // Передаём номер пина CS и кол-во подключенных индикаторов SegM8 module(10, 4); void setup() { // Инициализируем cемисегментный индикатор SegM8 module.begin(); // Выводим строку module.display("7Seg", 0, 4); } void loop() { }
Код для Software SPI
- segm8-led-module-example-arduino-softwarespi-multiple-text.ino
// Библиотека для работы с cемисегментным модулем SegM8 // https://github.com/amperka/SegM8 // Подробности и описание функций читайте в API.md #include "segm8.h" // Создаём объект для работы с модулем SegM8 // Используем программный SPI // Передаём номер пинов CS, DI, CLK // и кол-во подключенных индикаторов SegM8 module(10, 5, 7, 4); void setup() { // Инициализируем cемисегментный индикатор SegM8 module.begin(); // Выводим строку module.display("7Seg", 0, 4); } void loop() { }
После прошивки устройства вы увидите соответствующую надпись на индикаторах.
Если яркость свечения индикаторов для вас слишком слабая, подключите к SegM8 дополнительное питание через силовой клеммник.
Примеры работы для Raspberry Pi
В качестве мозга для работы с индикатором SegM8 рассмотрим платформы из семейства Raspberry Pi.
Подключение и настройка
Для старта необходимо подключить железо и выполнить программную настройку.
Аппаратная часть
На аппаратном уровне светодиодный модуль общается с управляющей электроникой по интерфейсу SPI.
Подробнее про SPI в Raspberry Pi
Подключим SegM8 к платформе Raspberry Pi 4. На Raspberry Pi есть несколько видов нумерации, мы будем использовать нумерацию BCM
. Для коммуникации используйте соединительные провода «папа-мама»
Индикатор SegM8 | Raspberry Pi 4 (BCM) |
---|---|
GND | 5V |
GND | GND |
CS | SPI0CE0 / 8 |
DI / MISO | MOSI0 / 10 |
CLK / SCK | SCK0 / 11 |
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka HAT, которая надевается сверху на малину методом бутерброда.
Имена пинов на Troyka HAT относятся к нумерации Wiring Pi
, которая отличается от стандартной нумерации BCM
одноплатника Raspberry Pi. Для подробностей смотрите распиновку на Troyka HAT.
Индикатор SegM8 | Raspberry Pi 4 (BCM) | Troyka HAT (WiringPI) |
---|---|---|
GND | GND | GND |
CS | SPI0CE0 / 8 | SPI0CE0 / 10 |
DI / MISO | MOSI0 / 10 | MOSI0 / 12 |
CLK / SCK | SCK0 / 11 | SCK0 / 14 |
Программная часть
- Установите библиотеку SegM8Pi:
pip3 install segm8
На этом установка закончена, теперь смело переходите к экспериментам.
Простой счётчик
Выведем на семисегментный индикатор значения счётчика от 0 до 9.
- segm8-led-module-example-raspberry-pi-counter.py
# Библиотека для работы с cемисегментным модулем SegM8 import segm8 # Библиотека для работы с временем import time # Создаём объект для работы с модулем SegM8 # Передаём номер пина CS (CE0 или CE1) и кол-во подключенных индикаторов segm8_module = segm8.SegM8(0, 1) while True: # Перебираем показания счётчика от 0 до 9 for number in range(10): # Выводим текущее значение счётчика segm8_module.display_int(number, 0, 1) # Ждём 1 секунду time.sleep(1)
После прошивки устройства, счётчик на индикаторе не заставит себя долго ждать.
Если яркость свечения индикатора для вас слишком слабая, подключите к SegM8 дополнительное питание через силовой клеммник.
Вывод строки
Семисегментные индикаторы поддерживают последовательное подключение между собой в цепочку (гирлянду). Каждый новый модуль добавляет к текущему дисплею ещё один разряд для отображения цифры или буквы. Кол-во подключаемых модулей ограничено только мощностью источника питания и памятью контроллера.
Добавим к предыдущему примеру ещё три светодиодных модуля SegM8. Для соединения индикаторов между собой используйте штыревые контакты PLH-40, а откусить нужное кол-во штырьков помогут бокорезы.
Выведем на сборку из четырёх семисегментных индикаторов строку «7Seg».
- segm8-led-module-example-raspberry-pi-multiple-text.py
# Библиотека для работы с cемисегментным модулем SegM8 import segm8 # Библиотека для работы с временем import time # Создаём объект для работы с модулем SegM8 # Передаём номер пина CS (CE0 или CE1) и кол-во подключенных индикаторов segm8_module = segm8.SegM8(0, 4) # Выводим строку «7Seg» segm8_module.display_string("7Seg", 0, 4) while True: time.sleep(1)
После прошивки устройства вы увидите соответствующую надпись на индикаторах.
Если яркость свечения индикаторов для вас слишком слабая, подключите к SegM8 дополнительное питание через силовой клеммник.
Особенность модуля
- Уникальный драйвер индикатора: выходной сдвиговый регистр с усилительным каскадом на каждом канале. В итоге вся цепочка SegM8 управляется через один интерфейс SPI, что экономит пины на контроллере.
- Универсальный преобразователь напряжения, который предоставляет широкий выбор источника питания от 3,3 до 12 В.
Выбор режима яркости
Индикатор поддерживает два режима яркости: штатный и экономный.
- Штатный режим — светодиоды индикатора горят в полную силу. Для активации — подключите напряжение от 5 до 12 вольт на силовой клеммник.
- Экономный режим — светодиоды индикатора горят с минимальной яркостью. Для активации — подключите напряжение от 3,3 до 5 вольт на сигнальный клеммник.
Каскадное подключение
Несколько модулей легко объединяются в табло, подключаясь между собой штыревыми контактами.
Элементы платы
Семисегментный индикатор
За отображения информации отвечает семисегментный индикатор SA40-19, который состоит из семи отдельных светодиодов плоской формы A
, B
, C
, D
, E
, F
, G
и точки DP
. Светодиоды расставлены на плате в виде арабской восьмёрки, такой способ даёт при включении определённых сегментов отображать цифры и некоторые буквы.
Светодиоды индикатора SA40-19 подключены к плате управления SegM8, которая получает команды от внешнего микроконтроллера и транслирует их на семисегментный экран.
Силовой клеммник
На задней панели индикатора расположены два винтовых силовых клеммника для питания устройства в штатном режиме на полную яркость. Группа контактов Input служит для подключения к модулю источника питания, а контакты Output — для прабрасывания питания к следующему модулю в цепочке. Каждый модуль при всех зажженных сегментах потребляет ток в штатном режиме до 300 мА.
Контакт | Назначение | Подключение |
---|---|---|
+12V | Силовое питание | Силовое питания 5–12 В |
GND | Земля | Общая земля |
Сигнальный клеммник
На задней панели индикатора расположены два винтовых сигнальных клеммника. Группа контактов Input служит для подключения к модулю внешнего контроллера, а контакты Output — для прабрасывания данных к следующему модулю в цепочке. Каждый модуль при всех зажженных сегментах потребляет ток в эконом режиме до 50 мА.
Контакт | Назначение | Подключение |
---|---|---|
VCC | Питание | Питание 3,3–5 В |
GND | Земля | GND |
CS / SS | Выбор модуля на шине SPI | CS / SS |
DI / MISO | Вход ведомого устройства на шине SPI | DO / MOSI |
CLK / SCK | Тактовый сигнал на шине SPI | CLK / SCK |
Преобразователь напряжения силовой части
На плате модуля расположен универсальный преобразователь питания TPS63060, который при низком входном напряжении поднимет питание до 10,4 вольт, а при высоком — понизит до 10,4 вольт. В итоге вы можете использовать широкий выбор источников питания.
Преобразователь напряжения цифровой части
Понижающий регулятор напряжения L78L05AB с выходом 5 вольт, обеспечивает питание микросхем и другой логики модуля. Максимальный выходной ток составляет 100 мА.
Выходной сдвиговый регистр
За логику управления индикатором отвечает микросхема выходного сдвигового регистра 74HC595, которая является преобразователем последовательного интерфейса в параллельный. Чип получает команды по SPI от внешнего микроконтроллера и выдаёт разом отдельные сигналы на каждый сегмент.
Т.к. каждый сегмент в модуле достаточно прожорливый по току и напряжению, то выходные сигналы с микросхемы сдвигового регистра сначала поступают на усилительные каскады, а затем уже на светодиодный индикатор.
Выходные каналы питания сегментов
На модуле расположено восемь выходных каналов для питания индикаторных сегментов: семь каскадов предназначены для плоских сегментов и один — на точку. Каждый канал состоит из управляющего полевого транзистора с N-каналом и токоограничивающего резистора.
В свою очередь всеми каналами управляет один драйвер в виде выходного сдвигового регистра.
Принципиальная и монтажная схемы
Габаритный чертёж
Характеристики
- Модель: Семисегментный индикатор SegM8 AMP-B200-RU
- Источник света: светодиодные сегменты
- Количество сегментов: 7 + точка
- Цвет сегментов: красный
- Модель индикатора: SA40-19 / SM434001D
- Драйвер индикатора: 74HC595 с усилительным каскадом на каждом канале
- Аппаратный интерфейс: клеммники под винт
- Программный интерфейс: SPI
- Режимы яркости: штатный / экономный
- Напряжение питания:
- Через силовой клеммник: 5–12 В (штатный режим)
- Через сигнальный клеммник: 3,3–5 В (экономный режим)
- Потребляемый ток:
- В экономном режиме яркости: до 50 мА
- В штатном режиме яркости: до 300 мА
- Напряжение логических уровней: 3,3–5 В
- Размеры модуля: 122×90×26,3 мм
- Размеры экрана: 101,2×59,5 мм
- Масса: 260 г