Регистрация  Вход
Ваша корзина пуста
Фотографии
Индикаторный модуль "МИ-3"

Модуль "МИ-3" представляет собой трёхразрядный семисегментный индикатор со встроенным контроллером. Данные загружаются в модуль по последовательному интерфесу, совместимому с интерфейсом микросхем 74HC595.

Модуль имеет встроенный преобразователь питания с выходным диапазоном от 9 до 40 В и выходом 5 В, 3 А. От данного преобразователя можно запитывать и внешние устройства.

Используемые в модуле светодиодные индикаторы имеют высоту цифр 57 мм.

Последовательный интерфейс для загрузки данных использует три линии:
  DATA – данные;
  CLK – строб данных;
  STORE – строб регистра-защёлки.

Основой модуля являются драйверы MBI5026GF, соединённые последовательно. Сегменты индикаторов разведены несколько хаотично, исходя исключительно из возможности разводки сигналов на печатной плате. Расположение индикаторов на печатной плате и нумерация их сегментов приведена на рисунке ниже:


Последовательность сегментов, предназначенная для непосредственной загрузки в модуль, представляет из себя 24-битное значение, которое передаётся старшим битом вперёд:

  G3 F3 H3 E3 D3 C3 A3 B3 B1 A1 H1 F1 G1 B2 A2 H2 G2 F2 E2 D2 C2 E1 D1 C1

Ниже приведён пример на языке Си для загрузки данных, соответствующих числу "847" на индикаторах:

  // Определения сегментов
  #define A1 (1UL << 14)
  #define B1 (1UL << 15)
  #define C1 (1UL << 0)
  #define D1 (1UL << 1)
  #define E1 (1UL << 2)
  #define F1 (1UL << 12)
  #define G1 (1UL << 11)
  #define H1 (1UL << 13)

  #define A2 (1UL << 9)
  #define B2 (1UL << 10)
  #define C2 (1UL << 3)
  #define D2 (1UL << 4)
  #define E2 (1UL << 5)
  #define F2 (1UL << 6)
  #define G2 (1UL << 7)
  #define H2 (1UL << 8)

  #define A3 (1UL << 17)
  #define B3 (1UL << 16)
  #define C3 (1UL << 18)
  #define D3 (1UL << 19)
  #define E3 (1UL << 20)
  #define F3 (1UL << 22)
  #define G3 (1UL << 23)
  #define H3 (1UL << 21)

  //------------------------------

  void PutLED(unsigned long value)
  {
    STORE = 0;

    for (char i = 24; i > 0; i--)
    {
      CLK = 0;
      DATA = (value & (1UL << 23)) > 0;
      CLK = 1;
      value <<= 1;
    }

    STORE = 1;
  }

  ...

  // Вызов функции для отображения числа 847
  PutLED(A3+B3+C3+D3+E3+F3+G3 + F2+G2+B2+C2 + A1+B1+C1);