Z-Модуль семисегментного индикатора (MAX7219)

Опубликовано 24.03.2016 9:55:00


Данный модуль собран на базе микросхемы MAX7219 и четырехразрядного семисегментного 0.56" индикатора.

MAX7219, в свою очередь, является светодиодным драйвером управляемым по трем проводам (SPI интерфейс).

 

 

Основные технические характеристики:

• Индикатор: Общий катод, 0.56", четырехразрядный

• Цвет: Красный

• Каскадное подключение модулей: Да

• Раздельное управление LED сегментами индикатора

• Наличие энергосберегающего/спящего режима с сохранением информации (150мкА).

• Управление яркостью свечения 

Модули могут подключаться каскадом для управления большим числом индикаторов. Каждый из разрядов индикатора имеет независимую адресацию и его содержимое может быть обновлено без необходимости перезаписи всего индикатора.


 

Задействуемые пины Arduino:

• Любые 3 цифровые вывода контроллера


 

Работа в среде Arduino IDE

Для работы с данным модулем необходима библиотеке LedControl

В Arduino IDE 1.0.6 и выше, данная библиотека уже включена в список стандартных.

Если же у вас версия ниже, то скачиваем, распаковываем и закидываем в папку libraries в папке Arduino. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.

 

Информация которая пригодится в программном коде для включения отдельных сегмертов индикатора. Внутри каждого разряда индикатора имется по 7 сегментов (A-G) + 1 точка (DP).

 

Модуль оборудован пяти-пиновым разъемом стандарта 2.54мм

DIN: Последовательный ввод данных.

На дублирующем разъеме он меняется на DOUT. Служит для каскадного подключения

CLK: Вход тактирования

LOAD: Разрешение приема данных

+5V: Плюс питания

GND: Минус питания

 

• Работа с одним модулем 

 

 
Пример программного кода:
// Тестировалось на Arduino IDE 1.0.6
//Добавляем необходимую библиотеку
#include "LedControl.h"
/* 
 Инициализация дисплея
 LedControl lc=LedControl(DIN,CLK,LOAD,количество модулей); 
 DIN,CLK,LOAD можно подключать к любым выводам контроллера
 */
LedControl lc=LedControl(12,11,10,1);

void setup() {
  /* Во всех функциях, первая цифра в скобочках отвечает за порядковый номер подключаемого 
  модуля. Нумерация производится с 0
   
  MAX7219 по дефолту находится в энергосберегающем/спящем режиме (отключается любое свечение сегментов).
  Энергосберегающий режим необходимо отключить вызвав функцию */
  lc.shutdown(0,false);    // функция lc.shutdown(0,true); снова его включит
  lc.setIntensity(0,10);   // яркость свечения, доступные значения от 0 до 15
  lc.clearDisplay(0);      // Очистка дисплея
}
void loop() {   
  /* Вывод чисел
  lc.setDigit(номер модуля,номер сегмента,цифра,наличие точки(DP)); */
  lc.setDigit(0,0,1,true);  // вывод цифры 1 на 1 разряд с точкой
  delay(3000);
  lc.setDigit(0,1,2,false); // вывод цифры 2 на 2 разряд с без точки
  delay(3000);
  
  /* Зажигаем любой сегмент. В примере зажжем сегменты A, D, G
  lc.setRow(номер модуля,номер разряда,B01001001);
  где B00000010 отвечает за DP, A, B, C, D, E, F, G */
  lc.setRow(0,0,B01001001); 
  delay(3000);
  lc.clearDisplay(0);
  delay(1000);
}

 

• Работа с двумя и более модулями

 
Пример программного кода:

 

Документация:

• Принципиальная схема: z-max7219-4digit-7segment-module.jpg

• Техническое описание микросхемы MAX7219: datasheet


А как же комментарии?