Pull to refresh

Матрица на микросхеме 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. Спасибо за внимание!

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.