Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
MAX7219 - это ИС, которая используется для управления 7-сегментными светодиодами (до 8 цифр), блочными дисплеями (столбчатыми дисплеями) и 64 отдельными светодиодами, которые являются общими катодами. Для связи с микроконтроллером MAX7219 использует систему связи SPI. Так что для управления 64 светодиодами нужно всего 3 порта микроконтроллера.
В этой статье я покажу вам, как использовать 7-сегментный модуль, который использует IC MAX7219 в качестве драйвера.
Необходимые компоненты:
- MAX7219 7-сегментный модуль
- Ардуино Нано
- провод перемычка
- USB мини
Требуемая библиотека:
LedControl
В этом уроке я использую плату Arduino Nano. Если вы никогда им не пользовались. Предлагаю прочитать мою предыдущую статью «Как использовать Arduino Nano».
Шаг 1: соберите все компоненты
Подключите плату Arduino к 7-сегментному модулю. Смотрите картинку или инструкцию, которые я написал ниже:
Arduino на 7 сегментов
+ 5 В => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS / НАГРУЗКА
Шаг 2. Добавьте библиотеку
После того, как цепь будет завершена. Добавьте библиотеку «LedControl» в IDE Arduino.
Чтобы добавить библиотеку в Arduino, вы можете прочитать ее в статье «Как добавить внешнюю библиотеку в Arduino», которую я написал ранее ».
Шаг 3: Дополнительные функции
После добавления библиотеки LedControl. Вы можете использовать дополнительные функции для управления 7-сегментным модулем.
Аргумент
addr - адрес дисплея
цифра - позиция цифры на дисплее (0..7) значение - значение, которое будет отображаться. (0x00..0x0F)
dp устанавливает десятичную точку.
Функция
setChar (адрес, цифра, значение.dp); // для отображения значения типа char для 7-битной кодировки ASCII
setDigit (адрес, цифра, значение, логическое значение dp); // для отображения цифр и символов в одной функции setRow (addr, digit, value, boolean dp); // чтобы отобразить объект в нужной цифре
Подробнее читайте здесь.
Шаг 4. Загрузите эскиз
Я сделал набросок для испытания этого 7-сегментного модуля. Вы можете скопировать приведенный ниже код и вставить его в свой набросок.
// Мы всегда должны включать библиотеку
#include "LedControl.h"
/*
Теперь нам нужен LedControl для работы. ***** Эти номера контактов, вероятно, не будут работать с вашим оборудованием *****
пин 12 подключен к DataIn
вывод 11 подключен к CLK
контакт 10 подключен к НАГРУЗКЕ
У нас только один MAX72XX.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/ * мы всегда немного выжидаем между обновлениями дисплея * /
unsigned long delaytime = 500;
void setup () {
/ * MAX72XX находится в режиме энергосбережения при запуске, мы должны сделать пробуждение * /
lc.shutdown (0, ложь);
/ * Устанавливаем средние значения яркости * /
lc.setIntensity (0, 8);
/ * и очистить дисплей * /
lc.clearDisplay (0);}
void hello () {
lc.setChar (0, 7, 'H', ложь);
lc.setChar (0, 6, 'E', ложь);
lc.setChar (0, 5, 'L', ложь);
lc.setChar (0, 4, 'L', ложь);
lc.setChar (0, 3, '0', ложь);
lc.setChar (0, 2, '.', ложь);
lc.setChar (0, 1, '.', ложь);
lc.setChar (0, 0, '.', ложь);
задержка (время задержки + 1000);
lc.clearDisplay (0);
delay (время задержки);
lc.setDigit (0, 7, 1, ложь);
delay (время задержки);
lc.setDigit (0, 6, 2, ложь);
delay (время задержки);
lc.setDigit (0, 5, 3, ложь);
delay (время задержки);
lc.setDigit (0, 4, 4, ложь);
delay (время задержки);
lc.setDigit (0, 3, 5, ложь);
delay (время задержки);
lc.setDigit (0, 2, 6, ложь);
delay (время задержки);
lc.setDigit (0, 1, 7, ложь);
delay (время задержки);
lc.setDigit (0, 0, 8, ложь);
задержка (1500);
lc.clearDisplay (0);
delay (время задержки);
}
void loop () {привет ();
}
Или скачайте файл ниже:
Шаг 5: Результат
Радуйтесь результату.
Если есть вопросы, просто напишите их в колонке комментариев.
Увидимся в следующей статье.