Подключение светодиодной матрицы к Arduino Uno

В этом проекте мы спроектируем матричный светодиодный дисплей 8х8, для чего мы подключим светодиодную матрицу 8х8 к плате Arduino Uno. Светодиодная матрица 8х8 содержит 64 светодиода, которые упорядочены в форме матрицы, поэтому такая структура и называется светодиодной матрицей.

Подключение светодиодной матрицы к Arduino Uno: внешний вид конструкции

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

Внешний вид светодиодной матрицы 8х8

Светодиодная матрица содержит 16 контактов, из них 8 общих положительных контактов и 8 отрицательных общих контактов. Для непосредственного подключения светодиодной матрицы к плате Arduino Uno нам необходимо задействовать 16 ее контактов. Но часто бывает достаточно проблематично выделить 16 свободных контактов для подключения светодиодной матрицы. В этом случае целесообразно подключать светодиодную матрицу к плате Arduino Uno через управляющий чип. Обычно такой чип сразу продается вместе со светодиодной матрицей как показано на приведенном рисунке.

На светодиодной матрице можно будет, к примеру, показывать различные символы алфавита. Но прежде чем подключать светодиодную матрицу к плате Arduino Uno, необходимо сначала скачать специальную библиотеку для работы с ней. Сделать это можно по следующему адресу — https://github.com/shaai/Arduino_LED_matrix_sketch/archive/master.zip.

После скачивания этого архива его необходимо распаковать в каталог ARDUINO, а если точнее, то необходимо найти в нем подкаталог “library” и извлечь скачанный архив туда. После перезапуска программы библиотека будет готова к использованию.

Необходимые компоненты

Плата Arduino Uno
Источник питания с напряжением 5 В
Конденсатор 100 мкФ (соединенный по питанию)

Работа схемы

В схеме необходимо сделать следующие соединения между платой Arduino Uno и светодиодной матрицей:
PIN2 ——————LOAD or CHIPSELECT of LED module
PIN3——————CLOCK of LED module
PIN4 ——————DATAIN of LED module
+5V ——————VCC of LED module
GND ——————GND of LED module

Схема устройства представлена на следующем рисунке.

Схема подключения светодиодной матрицы 8х8 к Arduino UnoИсходный код программы

После скачивания библиотеки для работы со светодиодной матрицей нам будут доступны специальные функции для работы с этой матрицей:

#include "LedControlMS.h"
#define NBR_MTX 1
LedControl lc=LedControl(4,3,2, NBR_MTX);
lc.writeString(0,"CIRCUITDIGEST");
lc.clearAll();

Первым делом мы должны подключить заголовочный файл для работы со специальными функциями скачанной библиотеки. Это делается с помощью команды #include «LedControlMS.h».

При работе со светодиодными матрицами нам доступна такая опция, что мы можем подключать к плате Arduino Uno не одну светодиодную матрицу, а несколько, и работать с ними как с единым дисплеем. Такая функция может пригодиться когда нам, например, будет нужен дисплей, который может отображать несколько символов одновременно, а не один, как в рассматриваемом нами примере. Поэтому мы должны сообщить Arduino сколько светодиодных дисплеев мы к ней будем подключать.

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

  • DATAIN (контакт приема данных);
  • CLOCK (контакт времени);
  • CHIPSELECT (контакт приема команд).

Поэтому мы должны сообщить плате Arduino Uno к каким ее контактам мы подключили эти 3 контакта светодиодной матрицы. Это делается с помощью команды “LedControl lc=LedControl(4,3,2, NBR_MTX); ”. Далее в нашем примере с помощью команды “lc.writeString(0,»CIRCUITDIGEST»);” мы сообщаем плате Arduino Uno какую строку символов следует отобразить на светодиодной матрице, в нашем случае это будет строка ”CIRCUITDIGEST”, каждый символ отобразить один раз.

Также следует помнить о том, что необходимо очистить память дисплея светодиодной матрицы перед тем как передавать туда данные. Делается это с помощью команды ”lc.clearAll();«.

Далее представлен полный текст программы.

#include "LedControlMS.h"
//pin 4 подсоединен к DataIn
// pin 3 подсоединен к CLK
//pin 2 подсоединен LOAD

#define NBR_MTX 1 // количество дисплеев, с которыми мы будем работать
LedControl lc=LedControl(4,3,2, NBR_MTX);//

void setup()
{
for (int i=0; i< NBR_MTX; i++)
{
lc.shutdown(i,false);
/* установим яркость в среднее значение */
lc.setIntensity(i,8);
/* очистим дисплей */
lc.clearDisplay(i);
delay(100);
}
}

void loop()
{
lc.writeString(0,»CIRCUITDIGEST»); // передадим символы на дисплей
lc.clearAll(); //очистим дисплей
delay(1000);
}

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
17 просмотров

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

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