Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Модуль светодиодной матрицы ====== ===== Описание ===== Модуль светодиодной матрицы предназначен для отображения символьной и графической информации. В основе модуля лежит светодиодная матрица из 64 красных 3 мм светодиодов. В зависимости от того какое количество светодиодов и в какой последовательности загорается - можно вывести практически любую информацию: от простейших символов, букв и цифр, до более сложных графических элементов, в том числе динамических. Особенностью светодиодных матриц, в отличие от дисплеев, является низкий уровень энергопотребления (максимально 70 мА при одновременном использовании всех светодиодов). Для управления матрицей используется микросхема MAX7219. С ее помощью для управления 64 светодиодами потребуется всего три цифровых вывода контроллера. Кроме того модули можно объединять друг с другом используя все те же 3 вывода контроллера. Объединив несколько модулей - можно получить светодиодную панель или бегущую строку практически любых размеров. Для удобства крепления на плате предусмотрены 4 монтажных отверстия под винты М3. ==== Технические характеристики ==== * Рабочее напряжение: 3,3-5 В * Максимальный потребляемый ток: 70 мА * Размер матрицы: 32х32 мм * Диаметр светодиода: 3 мм ==== Размеры ==== * Габаритные размеры Д х Ш х В: 46 х 33 х 9 мм ==== Подключение ==== Модуль индикатора подключается к контроллеру с помощью следующих выводов: * **+** - соединяется с пином питания контроллера (5V или 3,3V) * **-** - соединяется с пином контроллера GND (земля) * **CLK** - соединяется с цифровым пином контроллера * **LD** - соединяется с цифровым пином контроллера * **DIN** - соединяется с цифровым пином контроллера * **DO** - предназначен для соединения нескольких модулей друг с другом и подключается к выводу DIN следующего модуля ==== Файлы для загрузки ==== * [[https://files.smartelements.ru/datasheet/MAX7219.pdf|Даташит на MAX7219]] * [[https://files.smartelements.ru/know_libs/LedControl.zip|Библиотека для Arduino]] ==== Буквы в шестнадцатиричном представлении ==== Для более удобного представления букв на матрице существует уже готовый алфавит, которым вы можете воспользоваться для своих проектов. Ниже представлены шеснадцатеричные изображения букв алфавита. Смотрите примеры 2 и 3, как ими воспользоваться. ++++ Список символов и их представления (латинский алфавит)| === Латинские заглавные буквы === ^ Буква ^ Представление ^ | A|0x6666667e66663c00| | B|0x3e66663e66663e00| | C|0x3c66060606663c00| | D|0x3e66666666663e00| | E|0x7e06063e06067e00| | F|0x0606063e06067e00| | G|0x3c66760606663c00| | H|0x6666667e66666600| | I|0x3c18181818183c00| | J|0x1c36363030307800| | K|0x66361e0e1e366600| | L|0x7e06060606060600| | M|0xc6c6c6d6feeec600| | N|0xc6c6e6f6decec600| | O|0x3c66666666663c00| | P|0x06063e6666663e00| | Q|0x603c766666663c00| | R|0x66361e3e66663e00| | S|0x3c66603c06663c00| | T|0x18181818185a7e00| | U|0x7c66666666666600| | V|0x183c666666666600| | W|0xc6eefed6c6c6c600| | X|0xc6c66c386cc6c600| | Y|0x1818183c66666600| | Z|0x7e060c1830607e00| === Латинские строчные буквы === ^ Буква ^ Представление ^ | a |0x7c667c603c000000 | | b |0x3e66663e06060600 | | c |0x3c6606663c000000 | | d |0x7c66667c60606000 | | e |0x3c067e663c000000 | | f |0x0c0c3e0c0c6c3800 | | g |0x3c607c66667c0000 | | h |0x6666663e06060600 | | i |0x3c18181800180000 | | j |0x1c36363030003000 | | k |0x66361e3666060600 | | l |0x1818181818181800 | | m |0xd6d6feeec6000000 | | n |0x6666667e3e000000 | | o |0x3c6666663c000000 | | p |0x06063e66663e0000 | | q |0xf0b03c36363c0000 | | r |0x060666663e000000 | | s |0x3e403c027c000000 | | t |0x1818187e18180000 | | u |0x7c66666666000000 | | v |0x183c666600000000 | | w |0x7cd6d6d6c6000000 | | x |0x663c183c66000000 | | y |0x3c607c6666000000 | | z |0x3c0c18303c000000 | ++++ ++++ Список символов и их представления (русский алфавит)| === Русские заглавные буквы === ^ Буква ^ Представление ^ | А | 0x6666667e66663c00 | | Б | 0x3e66663e06067e00 | | В | 0x3e66663e66663e00 | | Г | 0x0606060606667e00 | | Д | 0xc6c6fe6c6c6c7c00 | | Е | 0x7e06063e06067e00 | | Ё | 0x7e06063e06067e24 | | Ж | 0xd6d67c387cd6d600 | | З | 0x3c66603c60663c00 | | И | 0xc6c6cedef6e6c600 | | Й | 0xc6c6cedef6e6d610 | | К | 0x66361e0e1e366600 | | Л | 0x66666666663c1800 | | М | 0xc6c6c6d6feeec600 | | Н | 0x6666667e66666600 | | О | 0x3c66666666663c00 | | П | 0x6666666666667e00 | | Р | 0x06063e6666663e00 | | С | 0x3c66060606663c00 | | Т | 0x18181818185a7e00 | | У | 0x3c66607c66666600 | | Ф | 0x107cd6d6d6d67c00 | | Х | 0xc6c66c386cc6c600 | | Ц | 0xfc66666666666600 | | Ч | 0x60607c6666666600 | | Ш | 0xfed6d6d6c6c6c600 | | Щ | 0xffeb6b6b6b6b6300 | | Ъ | 0x3e66663e06060700 | | Ы | 0xcfdbdbcfc3c3c300 | | Ь | 0x3e66663e06060600 | | Э | 0x3c66607c60663c00 | | Ю | 0x73dbdbdfdfdb7300 | | Я | 0x666c787c66667c00 | === Русские строчные буквы === ^ Буква ^ Представление ^ | а | 0x7c667c603c000000 | | б | 0x3c66663e06667c00 | | в | 0x3c66663e66663c00 | | г | 0x060606667e000000 | | д | 0x3c66667c60663c00 | | е | 0x3c067e663c000000 | | ё | 0x3c067e663c006c00 | | ж | 0xd67c387cd6000000 | | з | 0x386c6038606c3800 | | и | 0x7c66666666000000 | | й | 0x7c66666666001800 | | к | 0x66361e3666000000 | | л | 0x6666667c78000000 | | м | 0xd6d6feeec6000000 | | н | 0x667e666666000000 | | о | 0x3c6666663c000000 | | п | 0x666666667e000000 | | р | 0x06063e66663e0000 | | с | 0x3c6606663c000000 | | т | 0x181818187e000000 | | у | 0x3c607c6666660000 | | ф | 0x7cd6d6d6d67c0000 | | х | 0x663c183c66000000 | | ц | 0xfc66666666000000 | | ч | 0x607c666666660000 | | ш | 0xfed6d6d6c6000000 | | щ | 0xff6b6b6b63000000 | | ъ | 0x3c6c6c3c0d0f0000 | | ы | 0xcfdbdbcfc3c30000 | | ь | 0x3c6c6c3c0c0c0000 | | э | 0x3c6678663c000000 | | ю | 0x73dbdfdfdb730000 | | я | 0x666c7866667c0000 | ++++ ===== Примеры подключения и использования ===== ==== Пример 1. Любовь ==== **Описание** В примере демонстрируется формирование изображения сердца и мигание им. Также показано как зажигать любой светодиод матрицы и помигать им. **Что нужно** ^ Что нужно ^ Сколько ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart Uno]] | 1 | | [[httpss://smartelements.ru/collection/displei-i-indikatory/product/modul-svetodiodnoy-matritsy|Модуль светодиодной матрицы]]| 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]] | 5 | **Схема подключения** {{ :main:disp:matr_8x8_uno.png?nolink |}} **Скетч для загрузки** <file Arduino> #include "LedControl.h" // подключение библиотеки для работы с дисплеем /* * Создание объекта для работы с дисплеем с параметрами: * - вывод 12 - вывод DIN * - вывод 11 - вывод CLK * - вывод 10 - вывод LD */ LedControl matrix = LedControl(12, 11, 10); unsigned long delaytime=250; // время ожидания между выводом символов на дисплей void setup() { /* * При старте микросхема MAX7219 находится в режиме * пониженного энергопотребления, * поэтому первым делом нам нужно вывести её * из этого режима. */ matrix.shutdown(0,false); matrix.setIntensity(0,8); // установим яркость дисплея на 8 - среднее значение (возможно установить от 0 до 15) matrix.clearDisplay(0); // очистка дисплея } /* * Эта функция зажигает все светодиоды матрицы поочерёдно, * мигая каждым следующим перед тем как его зажечь. */ void single() { for (int row = 0; row < 8; row++) { // цикл по строкам for (int col = 0; col < 8; col++) { // цикл по колонкам delay(delaytime); // задержка matrix.setLed(0, row, col, true); // зажечь ореденой светодиод delay(delaytime); // задержка for (int i = 0; i < 3; i++) { // три раза мигунть и оставить включенным светодиод matrix.setLed(0, row, col, false); delay(delaytime); matrix.setLed(0, row, col, true); delay(delaytime); } } } } /* * Функция отображает переданную матрицу * светодиодов 8 * 8 */ void display_matrix(byte matr[8][8]) { for(int col = 0; col < 8; col++) // цикл по колонкам { for(int row = 0; row < 8; row++) // цикл по строкам { matrix.setLed(0, row, col, matr[row][col]); // отобразить статус светодиода } delay(1); // задержка перед очередной колонкой } delay(delaytime); // задержкать выведенное изображение matrix.clearDisplay(0); // очистить дисплей } /* * Функция мигает символом сердца на дисплее */ void love() { byte biglove[8][8] = // изображение большого сердца { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, }; byte smalllove[8][8] = // изображение маленького сердца { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; for (int i = 0; i < 10; i++) { // поочередно вывести изображение сердец display_matrix(biglove); display_matrix(smalllove); } } void loop() { love(); // помигать сердцем single(); // поочередно зажечь все точки на дисплее } </file> ==== Пример 2. SmartElements ==== **Описание** В примере демонстрируется вывод надписи SmartElements по буквам. **Что нужно** ^ Что нужно ^ Сколько ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart Uno]] | 1 | | [[httpss://smartelements.ru/collection/displei-i-indikatory/product/modul-svetodiodnoy-matritsy|Модуль светодиодной матрицы]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]] | 5 | **Схема подключения** {{ :main:disp:matr_8x8_uno.png?nolink |}} **Скетч для загрузки** <file Arduino> #include "LedControl.h" // подключение библиотеки для работы с дисплеем /* Создание объекта для работы с дисплеем с параметрами: - вывод 12 - вывод DIN - вывод 11 - вывод CLK - вывод 10 - вывод LD */ LedControl matrix = LedControl(12, 11, 10); unsigned long delaytime = 500; // время ожидания между выводом символов на дисплей const uint64_t SMARTELEMENTS[] = { 0x3c66603c06663c00, //S 0xd6d6feeec6000000, //m 0x7c667c603c000000, //a 0x060666663e000000, //r 0x1818187e18180000, //t 0x7e06063e06067e00, //E 0x1818181818181800, //l 0x3c067e663c000000, //e 0xd6d6feeec6000000, //m 0x3c067e663c000000, //e 0x6666667e3e000000, //n 0x1818187e18180000, //t 0x3e403c027c000000, //s 0x0000000000000000 //пустое значение }; void setup() { /* При старте микросхема MAX7219 находится в режиме пониженного энергопотребления, поэтому первым делом нам нужно вывести её из этого режима. */ matrix.shutdown(0, false); matrix.setIntensity(0, 8); // установим яркость дисплея на 8 - среднее значение (возможно установить от 0 до 15) matrix.clearDisplay(0); // очистка дисплея } /* * Функция отображает шестнадцатиричное приедставление * на светодиодной матрице */ void displayImage(uint64_t image) { for (int i = 0; i < 8; i++) { byte row = (image >> i * 8) & 0xFF; for (int j = 0; j < 8; j++) { matrix.setLed(0, i, j, bitRead(row, j)); } } } /* * Функция отображает символы из массива */ void display_SmartElements() { int smel_len = sizeof(SMARTELEMENTS) / 8; for (int i = 0; i < smel_len; i++) { displayImage(SMARTELEMENTS[i]); delay(delaytime); } } void loop() { display_SmartElements(); } </file> ==== Пример 3. УмныеЭлементы ==== **Описание** В примере демонстрируется вывод надписи УмныеЭлементы по буквам. **Что нужно** ^ Что нужно ^ Сколько ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart Uno]] | 1 | | [[httpss://smartelements.ru/collection/displei-i-indikatory/product/modul-svetodiodnoy-matritsy|Модуль светодиодной матрицы]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]] | 5 | **Схема подключения** {{ :main:disp:matr_8x8_uno.png?nolink |}} **Скетч для загрузки** <file Arduino> #include "LedControl.h" // подключение библиотеки для работы с дисплеем /* Создание объекта для работы с дисплеем с параметрами: - вывод 12 - вывод DIN - вывод 11 - вывод CLK - вывод 10 - вывод LD */ LedControl matrix = LedControl(12, 11, 10); unsigned long delaytime = 500; // время ожидания между выводом символов на дисплей const uint64_t SMARTELEMENTS[] = { 0x3c66607c66666600, //У 0xd6d6feeec6000000, //м 0x667e666666000000, //н 0xcfdbdbcfc3c30000, //ы 0x3c067e663c000000, //е 0x3c66607c60663c00, //Э 0x6666667c78000000, //л 0x3c067e663c000000, //е 0xd6d6feeec6000000, //м 0x3c067e663c000000, //е 0x667e666666000000, //н 0x181818187e000000, //т 0xcfdbdbcfc3c30000, //ы 0x0000000000000000 //пустое значение }; void setup() { /* При старте микросхема MAX7219 находится в режиме пониженного энергопотребления, поэтому первым делом нам нужно вывести её из этого режима. */ matrix.shutdown(0, false); matrix.setIntensity(0, 8); // установим яркость дисплея на 8 - среднее значение (возможно установить от 0 до 15) matrix.clearDisplay(0); // очистка дисплея } /* * Функция отображает шестнадцатиричное приедставление * на светодиодной матрице */ void displayImage(uint64_t image) { for (int i = 0; i < 8; i++) { byte row = (image >> i * 8) & 0xFF; for (int j = 0; j < 8; j++) { matrix.setLed(0, i, j, bitRead(row, j)); } } } /* * Функция отображает символы из массива */ void display_SmartElements() { int smel_len = sizeof(SMARTELEMENTS) / 8; for (int i = 0; i < smel_len; i++) { displayImage(SMARTELEMENTS[i]); delay(delaytime); } } void loop() { display_SmartElements(); } </file>