Четырёхразрядный индикатор (Troyka-модуль)

Четырёхразрядный индикатор — это четыре семисегментных индикатора и управляющая логика, смонтированные на одной плате.

Четырёхразрядный индикатор пригодится, если вам, например, нужно вывести текущее время или показания с одного из сенсоров. Он прост в использовании: подключается к управляющей плате, такой как Arduino, с помощью двух трёхпроводных шлейфов.

Пример использования с Arduino

Для управления индикатором мы написали библиотеку QuadDisplay. Она скрывает в себе все тонкости протокола, через который передаются данные на дисплей и предоставляет простые и понятные функции для вывода значений в различных форматах.

Пример работы через Hardware SPI

Для подключения модуля к Arduino удобно использовать Troyka Shield. На плате уже предусмотрена отдельная группа пинов для работы по протоколу SPI.

Для примера выведем на индикатор несколько значений.

qdTest.ino
// Подключаем библиотеку для работы с дисплеем
#include <QuadDisplay2.h>
// создаём объект класса QuadDisplay и передаём номер пина CS
QuadDisplay qd(9);
 
void setup()
{
  qd.begin();
}
 
void loop()
{  // можно выводить целые числа
  qd.displayInt(123);
  delay(1000);
 
  // и отрицательные тоже
  qd.displayInt(-123);
  delay(1000);
 
  // можно показывать ведущие нули (0012)
  qd.displayInt(12, true);
  delay(1000);
 
  // можно показывать вещественные числа
  // с заданной точностью, например 2 знака после запятой
  qd.displayFloat(-1.23, 2);
  delay(1000);
 
  // можно показывать температуру в °C
  qd.displayTemperatureC(-5);
  delay(1000);
 
  // можно показывать нехитрый текст (on/off, например) или
  // произвольную графику
  qd.displayDigits(QD_O, QD_f, QD_f, QD_NONE); // off
  delay(1000);
  qd.displayDigits(QD_O, QD_n, QD_NONE, QD_NONE); // on
  delay(1000);
  // и, конечно, всё очищать
  qd.displayClear();
  delay(1000);
}

Обратите внимание, что на плате Arduino Uno линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах 10(SS), 11(MOSI), 12(MISO) и 13(SCK). Следовательно если вы подключаете дисплей через Hardware SPI, занятыми окажутся пины 11(MOSI), 12(MISO) и 13(SCK).

Пример работы через Software SPI

Вы так же можете подключить дисплей к обычным пинам Troyka Shield. Пример подключения приведён на рисунке ниже.

Для примера выведем на индикатор несколько значений.

qdTest2.ino
// Подключаем библиотеку для работы с дисплеем
#include <QuadDisplay2.h>
// создаём объект класса QuadDisplay и передаём номера пинов CS, DI и ⎍
QuadDisplay qd(9, 5, 7);
 
void setup()
{
  qd.begin();
}
 
void loop()
{  // можно выводить целые числа
  qd.displayInt(123);
  delay(1000);
 
  // и отрицательные тоже
  qd.displayInt(-123);
  delay(1000);
 
  // можно показывать ведущие нули (0012)
  qd.displayInt(12, true);
  delay(1000);
 
  // можно показывать вещественные числа
  // с заданной точностью, например 2 знака после запятой
  qd.displayFloat(-1.23, 2);
  delay(1000);
 
  // можно показывать температуру в °C
  qd.displayTemperatureC(-5);
  delay(1000);
 
  // можно показывать нехитрый текст (on/off, например) или
  // произвольную графику
  qd.displayDigits(QD_O, QD_f, QD_f, QD_NONE); // off
  delay(1000);
  qd.displayDigits(QD_O, QD_n, QD_NONE, QD_NONE); // on
  delay(1000);
  // и, конечно, всё очищать
  qd.displayClear();
  delay(1000);
}

Элементы платы

На верхней стороне платы смонтированы четыре семисегментных светодиодных индикатора, а на нижней стороне — управляющая этими индикаторами логика.

Troyka контакты

Модуль подключается к управляющей электронике по SPI-интерфейсу при помощи двух трёхпроводных шлейфов.

DI
CS V G

Назначение контактов 3-проводных шлейфов:

SPI

  • Вход приёма данных (DI) — соедините с пином микроконтроллера, выполняющим функцию вывода данных (MOSI).
  • не используется
  • Вход строба () — соедините с пином микроконтроллера, выполняющим функцию строба (SCK).
  • Выбор чипа, или защёлка (CS) — модуль отображает принятые данные при изменении уровня сигнала на этом контакте с низкого на высокий. Соедините с любым цифровым пином микроконтроллера.
  • Питание (V) — соедините с питанием микроконтроллера;
  • Земля (G) — соедините с землёй микроконтроллера;

Семисегментные индикаторы

Семисегментный индикатор — это восемь светодиодов, составляющие символ: 7 сегментов + точка. Четырёхразрядный индикатор состоит из четырёх таких символов.

Управляющая логика

Управление всеми сегментами по отдельности потребовало бы 8×4=32 выходов микроконтроллера. Больше, чем предоставляют многие из них.

Для экономии выводов семисегментные индикаторы подключены через цепочку сдвиговых регистров. По одному регистру 74HC595 на каждый из четырёх индикаторов.

Сдвиговые регистры управляются через SPI-интерфейс, а следовательно для связи с микроконтроллером требуются линии MOSI, SCK, СS, Vcc и GND. Всего 5 линий.

Принципиальная и монтажная схемы

Характеристики

Напряжение питанияот 3 В до 5 В
Максимальный потребляемый ток150 мА (при питании 5 В)

Ресурсы