Как стать автором
Обновить

Матрица на микросхеме MAX7219, подключение к Arduino

Привет, Хабр!

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

В этой статье мы научимся работать с матрицей 8*8 на микросхеме MAX7219 и напишем код на языке программирования C++(Wiring).

В классической линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR. Следующие МК можно встретить на указанных распространённых платах:

  1. ATmega2560 (16 МГц, 256к Flash, 8к RAM, 54 порта, из них до 15 с ШИМ и 16 АЦП). Платы Mega.

  2. ATmega32U4 (16 МГц, 32к Flash, 2,5к RAM, 20 портов, из них до 7 с ШИМ и 12 АЦП). Платы Leonardo, Micro, Yun.

  3. ATmega328 (16 МГц, 32к Flash, 2к RAM, 14 портов, из них до 6 с ШИМ и 8 АЦП). Платы UnoR3, Mini, NanoR2, Pro, Pro mini, различные варианты плат uno и nano, такие как Wifi Uno и nano + nrf42l01.

  4. ATtiny85 (20Мгц, 8к Flash, 512б RAM, 6 портов, из них 4 ШИМ и 4 аналоговых). Платы Digispark, также часто применяются вне плат.

  5. ATmega168(16Мгц, 16к Flash, 1к RAM, порты и распиновка аналогично ATmega328) Платы Uno R1, Uno R2, Pro mini, NanoR1.

Нам необходимо несколько компонентов:

  1. Arduino UNO (подойдет любая плата из линейки Arduino)

  2. Матрица 8*8 на микросхеме MAX7219

  3. Breadboard

  4. Провода для подключения

Разберем на примере этого модуля

У модуля есть пять выводов на каждой стороне. С одной стороны данные входят в модуль, с другой стороны данные выходят из модуля и передаются в следующий. Это позволяет соединять матрицы у цепочку.

Подключение

Светодиодная матрицы 8×8 с MAX7219

VCC

GND

DIN

CS

CLK

Arduino UNO

+5V

GND

11

9

13

Схема подключения
Схема подключения

Код

#include <SPI.h>          //Подключение библиотек
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>

int pinCS = 9;
int numberOfHorizontalDisplays = 1; // количество матриц по-горизонтали
int numberOfVerticalDisplays = 1; // количество матриц по-вертикали

Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);

const byte data[8] = {
    B00000000,
    B01100110,     //Массив
    B11111111,
    B11111111,
    B01111110,
    B00111100,
    B00011000,
    B00000000 
};

void setup() {
    matrix.setIntensity(2); // яркость от 0 до 15

    matrix.fillScreen(LOW); // очистка матрицы
    for ( int y = 0; y < 8; y++ ) {
        for ( int x = 0; x < 8; x++ ) {
            // зажигаем x-й пиксель в y-й строке
            matrix.drawPixel(x, y, data[y] & (1<<x));
        }
    }
    matrix.write(); // вывод всех пикселей на матрицу
}

void loop() {
}

Все необходимые библиотеки вы можете скачать по ссылке:

Результат

Надеюсь статья оказалась интересной и подробной для изучения основ по программированию на Arduino. Спасибо за внимание!

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.