● Проект 9: Матрица светодиодная 8x8

Опубликовано: 23.04.2018
В этом эксперименте мы рассмотрим каскадное подключение нескольких микросхем 74HC595, что позволит, используя 3 вывода Arduino, управлять множеством контактов, что будет продемонстрировано в примере вывода фигур на экран светодиодной матрицы 8×8.

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

контроллер Arduino UNO R3;
плата для прототипирования;
светодиодная RGB матрица 8×8;
• микросхема 74HC595 – 2 штуки;
провода папа-папа.
провода папа-мама.

В светодиодных матрицах светодиоды расположены в определенном порядке, а выводы расположены в удобном для монтажа порядке. Светодиодные матрицы бывают одноцветными, двухцветными и RGB. В эксперименте будем использовать двухцветную светодиодную матрицу FYM-23881BUG-11, которая представляет собой набор из 64 светодиодов зеленого цвета, собранных в матрицу 8×8. Расположение выводов матрицы показано на рис. 9.1.



Для подключения светодиодной матрицы к Arduino будем использовать каскадное подключение 2 микросхем 74HC595. При таком подключении биты из первого регистра будут проталкиваться в следующий в каскаде регистр. Нужно подсоединить вывод QH’ первого регистра к пину DS (MOSI). Схема соединений показана на рис. 9.2.

Arduino проект www.arduino-kit.ru
Рис. 9.2. Схема подключения светодиодной матрицы

Для формирования изображения матрицы будем использовать динамическую индикацию для каждого столбца. Каждые 3 секунды будем менять фигуру для матрицы. Данные фигур хранятся в массиве figure[]. Содержимое скетча показано в листинге 9.1.


// подключение библиотеки SPI
#include <SPI.h>
int ss_pin=8; // пин SS
int pos=0; //
int offfigure=0; // текущая фигура для отображения
unsigned long millis1=0;
// массив с данными фигур для отображения
byte figure[2][8]={
{B10011001,B10011001,B10011001,B10000001,B10000001,B10011001,B10011001,B10011001},
{B10101010,B10101010,B10101010,B10101010,B10101010,B10101010,B10101010,B10101010}
};
void setup()
{
SPI.begin();
// Сконфигурировать контакт SS как выход
pinMode(ss_pin, OUTPUT);
}
void loop()
{
digitalWrite(ss_pin, LOW);
// столбцы
SPI.transfer(B00000001<<pos);
// строки
SPI.transfer(figure[offfigure][pos]);
digitalWrite(ss_pin,HIGH); // вывести данные на выводы 74HC595
delay(1);
pos=(pos+1)%8;
if(millis()-millis1>3000) // через 3 секунды – новая фигура
{
offfigure=(offfigure+1)%2;
millis1=millis();
}
}

Порядок подключения:

1. Подключаем матрицу по схеме на рис. 9.2.
2. Загружаем в плату Arduino скетч из листинга 9.1.
3. Наблюдаем процесс попеременного выводы фигур на экране
матрицы.

Листинги программ скачать

Главное меню

Каталог

Полезные ссылки

Цена
от
до