Семисегментный индикатор 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 методом бутерброда.

Программная часть

  1. Установите библиотеку 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

Программная часть

  1. Установите библиотеку 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 дополнительное питание через силовой клеммник.

Особенность модуля

Выбор режима яркости

Индикатор поддерживает два режима яркости: штатный и экономный.

  • Штатный режим — светодиоды индикатора горят в полную силу. Для активации — подключите напряжение от 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 г

Ресурсы