Оглавление:

Сборка и тестирование светодиодной точечной матрицы MAX7219: 6 шагов (с изображениями)
Сборка и тестирование светодиодной точечной матрицы MAX7219: 6 шагов (с изображениями)

Видео: Сборка и тестирование светодиодной точечной матрицы MAX7219: 6 шагов (с изображениями)

Видео: Сборка и тестирование светодиодной точечной матрицы MAX7219: 6 шагов (с изображениями)
Видео: 🌟 НЕОЖИДАННАЯ НАХОДКА огромная светодиодная матрица с РАБОТАЮЩИМИ ЧАСАМИ 2024, Ноябрь
Anonim
Image
Image
Проверить пакет
Проверить пакет

Точечно-матричный дисплей - это устройство отображения, которое содержит светоизлучающие диоды, выровненные в виде матрицы. Эти матричные дисплеи используются в приложениях, где символы, графика, символы, алфавиты, цифры должны отображаться вместе в статике, а также Прокрутка движения. Точечный матричный дисплей изготавливается в различных размерах, таких как 5x7, 8x8, 16x8, 128x16, 128x32 и 128x64, где числа представляют светодиоды в строках и столбцах, а также эти дисплеи бывают разных цветов, таких как красный, зеленый, желтый, синий, Оранжевый, Белый.

В этом руководстве я расскажу о том, как подключить матрицу 8x8 с драйвером MAX7219 к Arduino Uno. Приступим.

Запасы

MAX7219

Шаг 1. Проверьте пакет

Как вы можете видеть, у меня есть smt-версия платы драйвера, очень важно проверить все необходимые компоненты, так как компоненты smd очень маленькие по размеру, и вы можете легко их потерять. Есть также версия dip, доступная в Интернете, но я использовал версия smt для своего размера.

Шаг 2: Немного об этой конкретной матрице точек

Немного об этой конкретной точечной матрице
Немного об этой конкретной точечной матрице

Один модуль может управлять общим катодом с точечной матрицей 8x8.

Рабочее напряжение: 5 В

Размеры: длина 3,2 см, ширина 3,2 см, высота 1,3 см, отверстия под четыре винта, диаметр 3 мм.

Модули с интерфейсами ввода и вывода, поддержка каскадирования нескольких модулей.

Клеммы Data IN и OUT указаны на модуле.

Шаг 3. Драйвер MAX7219

Драйвер MAX7219
Драйвер MAX7219
Драйвер MAX7219
Драйвер MAX7219

MAX7219 - это ИС, предназначенная для управления светодиодной матрицей 8x8. ИС представляет собой драйверы дисплея с общим катодом (общий отрицательный) с последовательным входом, которые связывают микропроцессоры (или микроконтроллер) с 7-сегментными цифровыми светодиодными дисплеями до 8 цифр, гистограммами или 64 отдельными светодиодами.

Особенности и характеристики

Диапазон рабочего напряжения: от +4,0 до +5,5 В

Рекомендуемое рабочее напряжение: +5 В

Максимальное напряжение питания: 6 В

Максимальный ток, разрешенный для прохождения через каждый вывод сегмента: 100 мА

Максимальный допустимый ток через каждый ЦИФРОВОЙ вывод заземления: 500 мА

Низкое энергопотребление

Время задержки передачи данных в сегмент: 2,2 мс

Рабочая температура: от 0 ° C до + 70 ° C

Температура хранения: от -65 ° C до + 150 ° C

Шаг 4: Схема

Схема
Схема
Схема
Схема

Схема довольно проста и может быть построена с использованием перемычек «папа-мама». Просто следуйте распиновке и соберите схему. Вы можете позже собрать его на печатной плате, если вы делаете постоянное приложение для Matrix.

Конфигурация контактов следующая:

  • Vcc на вывод 5V Arduino.
  • Gnd к контакту Gnd Arduino.
  • DIN к цифровому контакту 12 Arduino.
  • CS к цифровому выводу 11 Arduino
  • CLK к цифровому выводу 10 Arduino.

Шаг 5: Код

В этом руководстве я предоставлю вам два разных кода. Один из них будет генерировать несколько английских алфавитов и смайликов на Матрице. Другой, чтобы все 64 светодиода загорелись один за другим. Вы должны использовать библиотеку lledcontrol, чтобы она работала.

Это код для английских алфавитов и смайлов.

# включить int DIN = 12; int CS = 11; int CLK = 10; байт e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; байт d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; байт u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; байт c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; байт восемь [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; байт s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; байтовая точка [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; байт o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; байт m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX находится в режиме энергосбережения при запуске lc.setIntensity (0, 15); // Устанавливаем максимальное значение яркости lc.clearDisplay (0); // и очищаем дисплей} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; нейтральный байт [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; байт хмурый [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (улыбается); задержка (1000); printByte (нейтральный); задержка (1000); printByte (хмурится); задержка (1000); printEduc8s (); lc.clearDisplay (0); задержка (1000); } void printEduc8s () {printByte (е); задержка (1000); printByte (d); задержка (1000); printByte (u); задержка (1000); printByte (c); задержка (1000); printByte (восемь); задержка (1000); printByte (s); задержка (1000); printByte (точка); задержка (1000); printByte (c); задержка (1000); printByte (o); задержка (1000); printByte (м); задержка (1000); } void printByte (байтовый символ ) {int i = 0; для (я = 0; я <8; я ++) {lc.setRow (0, я, символ [я]); }}

и код для тестирования всех 64 светодиодов

// Мы всегда должны включать библиотеку # include "LedControl.h"

/*

Теперь нам нужен LedControl для работы. ***** Эти номера контактов, вероятно, не будут работать с вашим оборудованием. ***** Контакт 12 подключен к DataIn, контакт 10 подключен к CLK, контакт 11 подключен к LOAD. У нас есть только один MAX72XX. * / LedControl lc = LedControl (12, 11, 10, 1);

/ * мы всегда немного выжидаем между обновлениями дисплея * /

unsigned long delaytime = 100;

void setup () {

/ * MAX72XX находится в режиме энергосбережения при запуске, мы должны сделать пробуждение * / lc.shutdown (0, false); / * Устанавливаем средние значения яркости * / lc.setIntensity (0, 8); / * и очищаем отображение * / lc.clearDisplay (0); }

/*

Этот метод будет отображать символы слова «Arduino» один за другим на матрице. (вам нужно не менее 5x7 светодиодов, чтобы увидеть все символы) * / void writeArduinoOnMatrix () {/ * вот данные для символов * / byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; байт r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; байт d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; байт u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; байт i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; байт n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; байт o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * теперь отображаем их один за другим с небольшой задержкой * /

lc.setRow (0, 0, a [0]); lc.setRow (0, 1, a [1]); lc.setRow (0, 2, a [2]); lc.setRow (0, 3, a [3]); lc.setRow (0, 4, a [4]); delay (время задержки); lc.setRow (0, 0, r [0]); lc.setRow (0, 1, r [1]); lc.setRow (0, 2, r [2]); lc.setRow (0, 3, r [3]); lc.setRow (0, 4, r [4]); delay (время задержки); lc.setRow (0, 0, d [0]); lc.setRow (0, 1, d [1]); lc.setRow (0, 2, d [2]); lc.setRow (0, 3, d [3]); lc.setRow (0, 4, d [4]); delay (время задержки); lc.setRow (0, 0, u [0]); lc.setRow (0, 1, u [1]); lc.setRow (0, 2, u [2]); lc.setRow (0, 3, u [3]); lc.setRow (0, 4, u [4]); delay (время задержки); lc.setRow (0, 0, я [0]); lc.setRow (0, 1, я [1]); lc.setRow (0, 2, я [2]); lc.setRow (0, 3, я [3]); lc.setRow (0, 4, я [4]); delay (время задержки); lc.setRow (0, 0, n [0]); lc.setRow (0, 1, n [1]); lc.setRow (0, 2, n [2]); lc.setRow (0, 3, n [3]); lc.setRow (0, 4, n [4]); delay (время задержки); lc.setRow (0, 0, o [0]); lc.setRow (0, 1, o [1]); lc.setRow (0, 2, o [2]); lc.setRow (0, 3, o [3]); lc.setRow (0, 4, o [4]); delay (время задержки); lc.setRow (0, 0, 0); lc.setRow (0, 1, 0); lc.setRow (0, 2, 0); lc.setRow (0, 3, 0); lc.setRow (0, 4, 0); delay (время задержки); }

/*

Эта функция загорается несколькими светодиодами подряд. Шаблон будет повторяться в каждом ряду. Шаблон будет мигать вместе с номером строки. строка номер 4 (index == 3) мигнет 4 раза и т. д. * / void rows () {for (int row = 0; row <8; row ++) {delay (delaytime); lc.setRow (0, строка, B10100000); delay (время задержки); lc.setRow (0, строка, (байт) 0); для (int i = 0; i

/*

Эта функция загорается несколькими светодиодами в столбце. Шаблон будет повторяться в каждом столбце. Шаблон будет мигать вместе с номером столбца. столбец номер 4 (index == 3) мигнет 4 раза и т. д. * / void columns () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, столбец, B10100000); delay (время задержки); lc.setColumn (0, столбец, (байт) 0); для (int i = 0; i

/*

Эта функция загорится каждым светодиодом на матрице. Светодиод будет мигать вместе с номером строки. номер строки 4 (index == 3) мигнет 4 раза и т. д. * / void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { delay (время задержки); lc.setLed (0, строка, столбец, истина); delay (время задержки); для (int i = 0; i

void loop () {

writeArduinoOnMatrix (); строки (); столбцы (); Один(); }

Шаг 6: Вывод

Image
Image
Выход
Выход
Выход
Выход
Выход
Выход

Смотрите полное видео здесь: -MAX7219 8x8 LED MATRIX СБОРКА И ИСПЫТАНИЕ с использованием ARDUINO

Что ж, вся эта тяжелая работа, несомненно, хорошо окупается, когда вы видите результат. Это стоит того !!

Подпишитесь на мой канал на YouTube: -Creative Stuff

Рекомендуемые: