Как подключить led матрицу
Перейти к содержимому

Как подключить led матрицу

  • автор:

Подключение LED матрицы MAX7219 к Arduino

Сегодня мы научимся использовать светодиодную матрицу MAX7219 с платой Arduino UNO. И несмотря на то, что на первый взгляд применение платы может показаться достаточно непростым, на самом деле подключить ее и использовать очень легко.

Что нам понадобится:

  • LED матрица MAX7219;
  • Соединительные провода;
  • Плата Arduino UNO;
  • USB кабель;
  • ПК.

Подключение

Процесс подключения совсем несложен. Необходимо подключить 5 контактов матрицы к плате:

  • Vcc — 5v
  • Gnd — Gnd
  • DIN (DataIN) — 11
  • CS (LOAD) — 10
  • CLK – 13

На этом все, процесс подключения окончен. Остается только программирование.

Код

Данный код просто прокручивает заданный текст. При желании вы можете изменить буквы или вставить вместо них другие символы.

/* This code is a public example. dil = 11 cs = 10 clk = 13 */ #include #include PROGMEM prog_uchar CH[] = < 3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space 1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // ! 3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // " 5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // # 4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $ 5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // % 5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // & 1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // ' 3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // ( 3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // ) 5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // * 5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // + 2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // , 4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // - 2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // . 4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // / 4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0 3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1 4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2 4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3 4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4 4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5 4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6 4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7 4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8 4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9 2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // : 2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ; 3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // < 3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // = 3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ? 5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @ 4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A 4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B 4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C 4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D 4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E 4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F 4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G 4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H 3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I 4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J 4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K 4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L 5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M 5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N 4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O 4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P 4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q 4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R 4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S 5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T 4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U 5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V 5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W 5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X 5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y 4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z 2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [ 4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash 2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ] 3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat 4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _ 2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // ` 4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a 4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b 4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c 4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d 4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e 3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f 4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g 4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h 3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i 4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j 4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k 3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l 5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m 4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n 4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o 4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p 4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q 4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r 4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s 3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t 4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u 5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v 5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w 5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x 4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y 3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z 3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // < 1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // | 3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // >4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~ >; int data = 11; // 8, DIN pin of MAX7219 module int load = 10; // 9, CS pin of MAX7219 module int clock = 13; // 10, CLK pin of MAX7219 module int maxInUse = 1; //change this variable to set how many MAX7219’s you’ll use MaxMatrix m(data, load, clock, maxInUse); // define module byte buffer[10]; // active sentenses char string1[] = » ABCDEFGHIJKLMNOPQRSTUVWXYZ «; void setup() < m.init(); // module initialize m.setIntensity(0); // dot matix intensity 0-15 Serial.begin(9600); // serial communication initialize >void loop() < byte c; // this is the code if you want to entering a message via serial console while (Serial.available() >0) < byte c = Serial.read(); Serial.println(c, DEC); printCharWithShift(c, 100); >delay(100); m.shiftLeft(false, true); // 1st block — print the active sentences // comment this block when using the 2nd messages block printStringWithShift(string1, 100); //printStringWithShift(string2, 100); //printStringWithShift(string3, 100); //printStringWithShift(string4, 100); //printStringWithShift(string5, 100); //printStringWithShift(string6, 100); // 2nd block — print sentences just for tests // uncomment this block to use it /* printStringWithShift(string7, 100); printStringWithShift(string8, 100); printStringWithShift(string9, 100); printStringWithShift(string10, 100); printStringWithShift(string11, 100); */ > void printCharWithShift(char c, int shift_speed) < if (c < 32) return; c -= 32; memcpy_P(buffer, CH + 7*c, 7); m.writeSprite(maxInUse*8, 0, buffer); m.setColumn(maxInUse*8 + buffer[0], 0); for (int i=0; i> void printStringWithShift(char* s, int shift_speed) < while (*s != 0)< printCharWithShift(*s, shift_speed); s++; >> void printString(char* s) < int col = 0; while (*s != 0) < if (*s < 32) continue; char c = *s - 32; memcpy_P(buffer, CH + 7*c, 7); m.writeSprite(col, 0, buffer); m.setColumn(col + buffer[0], 0); col += buffer[0] + 1; s++; >>

Тестирование

После загрузки кода мы можем в полной мере насладиться полученным результатом. Фото не передают всю картину в полной мере, поэтому лучше посмотреть видео.

На этом возможности использования матрицы не заканчиваются. Одновременно можно подключить до восьми матриц одновременно. И для этого понадобиться всего 3 лишних контакта. CS, CLK, 5В и Gnd всех матриц можно соединить вместе, а DATAOUT первой матрицы подключить к DATAIN следующей матрицы и т.д.

Статья является авторским переводом с сайта instructables.com.

Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.

Подключение LED матрицы 8*8 к Arduino через сдвиговые регистры

Эта статья создана для тех, кто купил голую матрицу 8х8 и сдвиговые регистры 74hc595 и не знает как это все подключить. Я долго искал в интернете инструкции о том, как подключить вышеперечисленные компоненты, но находил либо не для моих регистров либо с нерабочими скетчами, поэтому решил, что все-таки придется поработать руками и головой, чтобы порадовать себя картинками 8*8. Найдя в интернете даташиты к матрице и сдвиговым регистрам, нарисовал следующую схему: схема подключения12-я нога у обеих микросхем (latch pin), для экономии портов общая, т.к нет смысла защелкивать регистры в разное время. Часть пинов матрицы ( аноды ) подключены через токоограничивающие резисторы номиналом 220ом. Все остальное по схеме предельно просто. На всякий случай картинки с распиновкой матрицы. Изображения придется выводить построчно (иначе с подобными матрицами никак), с маленькой задержкой (человеческий глаз практически не различает задержки в 1мс). В скетче старался все пояснять. При загрузке в плату на дисплее будут отображаться цифры, которые мы отправим в монитор порта ардуино.(см. видео) Фото готового устройства (на экране зигзаг, в скетче его изображение хранится в массиве pic) В дальнейшем попробую сделать на этом дисплее что-нибудь интересное.

Прикрепленные файлы:
  • cxemNetMatrix8x8.ino (4 Кб)
  • matrix.rar (188 Кб)
Теги:

nikitosing Опубликована: 20.08.2017 0 0

Вознаградить Я собрал 0 0

Оценить статью

  • Техническая грамотность

Светодиодная матрица. Урок 17. Ардуино

Светодиодная матрица WS2812B (SK6812) и Ардуино

Привет! Что может быть лучше rgb светодиода? Конечно 256 светодиодов вместе. Да еще и адресуемых. Это значит, что мы сможем зажечь любой из 256 светодиодов из программы на Ардуино. Сегодня в обзоре светодиодная матрица WS2812B (SK6812).

В предыдущей статье мы говорили о гироскопе GY-521. Это тоже очень интересный модуль для Ардуино. Посмотрите тот обзор, если пропустили или уже забыли.

Светодиодная матрица WS2812B (SK6812)

Характеристики

  • Можно использовать только внутри сухих помещений.
  • Напряжением 5 вольт.
  • Рабочая температура матрицы от -25 до + 80 °C Работая при температуре ниже — 25 лента может «тормозить» или вообще не выполнять команды контроллера. Однако изменения при переохлаждении не фатальны. При повышении температуры, диоды продолжат полноценно работать.

Подключение

  • +5V — питание 5 вольт на плате
  • GND — земля
  • DIN — пин для данных на плате Ардуино

Матрица работает от 5 вольт. А значит мы сможем подключить ее напрямую к Ардуино. Однако, для реальных проектов рекомендую сделать для нее отдельное питание от аккумулятора или блока питания. В соответствии с характеристиками производителя при ярком белом свете, матрица потребляет 76,8 Вт. А ток может быть от 12 до 18 А, в соответствии с таблицей производителя.

Кроме того, сигнальный контакт DIN подключим через резистор, чтобы оградить контакт Ардуино от перепадов напряжения.

Подключение матрицы. +5V - питание 5 вольт на плате, GND - земля, DIN - пин для данных на плате Ардуино Принципиальная схема подключения светодиодной матрицы

Библиотека FastLed

Для работы со светодиодными матрицами уже написано не мало библиотек. Сегодня используем одну из них. И посмотрим на примеры программ из нее. С помощью менеджера библиотек установим FastLED и откроем пример из меню File -> Examples -> FastLED -> DemoReel100

В начале скетча есть раздел с настройками матрицы. Нам нужно изменить несколько параметров. Поставим количество светодиодов равное 256, а яркость уменьшим, чтобы потреблять меньше тока, на 8.

Контакт DIN подключен к 3 контакту Ардуино.

#define DATA_PIN 3 //#define CLK_PIN 4 #define LED_TYPE WS2811 #define COLOR_ORDER GRB #define NUM_LEDS 256 CRGB leds[NUM_LEDS]; #define BRIGHTNESS 8 #define FRAMES_PER_SECOND 120

Остальную программу изменять не будем, загрузим скетч в Ардуино и посмотрим на результат.

Теперь попробуем использовать код из примера и напишем свой небольшой скетч.

Объявим настройки матрицы и инициализируем их.

#include #define NUM_LEDS 256 #define DATA_PIN 3 #define BRIGHTNESS 8 CRGB leds[NUM_LEDS]; void setup() < FastLED.addLeds(leds, NUM_LEDS); // GRB ordering FastLED.setBrightness(BRIGHTNESS); >

А цикле loop() возьмем каждый отдельный светодиод и будем зажигать и гасить его в цикле. Таким образом мы сможем обратиться к каждому конкретному светодиоду.

void loop() < for (int i = 0; i >

Полный текст программы

#include #define NUM_LEDS 256 #define DATA_PIN 3 #define BRIGHTNESS 8 CRGB leds[NUM_LEDS]; void setup() < FastLED.addLeds(leds, NUM_LEDS); // GRB ordering is assumed FastLED.setBrightness(BRIGHTNESS); > void loop() < for (int i = 0; i >

Возможные проблемы

При подключении питания матрицы к Ардуино. Контроллер может сильно нагреться в процессе использования. Особенно, если включить все светодиоды на большой яркости. В этом случае, пожалуйста, используйте отдельное питание.

Заключение

Мы рассмотрели светодиодную матрицу 16х16 светодиодов. Подключили ее к Ардуино и научились обращаться к каждому светодиоду. Это сильно поможет нам в будущих проектах.

Где купить

  • Светодиодная матрица
  • Arduino nano
  • Набор датчиков
  • Arduino Uno

Как подключить светодиодную матрицу

Светодиодные устройства при правильном подключении способны создавать неповторимые визуальные эффекты. Они могут пригодиться вам для улучшения атмосферы заведения. Как подключить светодиодную матрицу? В этой статье собраны способы подключения оборудования, способного подавать сигналы о неисправности других приспособлений, их бесперебойном функционировании. При желании вы можете самостоятельно соединить светодиодные приспособления без специализированных навыков, уникального оборудования. Подсоединение поможет вам отслеживать неполадки в системе освещения.

Как подключить светодиодную матрицу

Способы подключения

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

  1. Подсоединение светодиодов к пинам контроллера. Для матрицы размером 8 на 8 понадобится 64 пина, существенно сокращает возможности подходящих контроллеров.
  2. Соединение путем динамической индикации на несколько разрядов. То есть для изделия 8 на 8 понадобится 16 пинов. Существенная экономия ресурсов контроллера поможет сократить количество используемых пинов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *