В статье мы рассмотрим конструкцию платы расширения Arduino, которая предназначена для управления большим количеством светодиодов. С ее помощью можно организовать управление 512 светодиодами. Изначально плата предназначалась для управления светодиодным кубом размером 8×8×8, однако пользователи могут использовать ее для управления светодиодным экраном размером 64×8 пикселей. Управление светодиодами реализуется с помощью регистров сдвига.
Основные параметры:
- используемые микросхемы регистра сдвига: M74HC595B1R;
- рекомендуемые микросхемы регистра сдвига: 74HC595;
- напряжение питания: +5 В;
- используемые цифровые выходы Arduino: D2, D3, D4, D5;
- положительные выходы для подключения светодиодов: 64;
- общие выводы: 8;
- максимальный ток: 0.5 А на каждый вывод;
- используемые токоограничительные резисторы: 330 Ом;
- дополнительные светодиоды статуса: питание и линия ввода/вывода Arduino D13;
- кнопки: Сброс.
Принципиальная схема платы расширения
Сразу следует оговорить один важный момент относительно питания платы расширения и светодиодов, которые к ней будут подключаться. Использовать нужно отдельный, достаточно мощный блок питания с выходным напряжением +5 В и выходным током до 1.5 А. Возможно использование ATX блока питания от компьютера, однако потребуется некоторая дополнительная коммутация для запуска блока питания (сигнал PS_ON подключить к общему проводу).
Вычисление потребляемого тока для используемых светодиодов
Для вычисления потребляемого светодиодами тока можно использовать следующие выражения:
(NLed×ILed) / Nlayers,
где
NLed – количество светодиодов,
ILed – ток потребления одного светодиода,
Nlayers – количество слоев светодиодного куба (или количество строк).
К примеру, для светодиодного куба 8×8×8, мы используем 64 светодиода в каждом слое, каждый светодиод имеет ток потребления 20 мА:
(512×20) / 8=1.28 А
Подключение светодиодов
Управление светодиодами осуществляется с помощью регистров сдвига, восемь из которых управляют анодами светодиодов. К каждому регистру сдвига подключено 8 светодиодов, катоды каждой группы из 8 светодиодов общие. Катодами управляет девятый регистр сдвига с помощью мощных N-канальных MOSFET ключей.
Управление регистрами сдвига
В первый момент времени необходимо подать сигнал низкого логического уровня на вывод регистров RCK (вывод Arduino D5), чтобы записать данные в регистр сдвига. Данные в нашем случае – это 9 Байт, которые передаются последовательно в регистр сдвига. Первые 8 байт определяют, какие из 64 светодиодов (в одном слое) будут включены, последний байт определяет какой один из 8 MOSFET ключей будет включен (т.е. управление слоями светодиодного куба). Затем, после передачи 9 байт, необходимо подать сигнал высокого логического уровня на вывод RCK, чтобы зафиксировать данные в регистре хранения и передать их на выходы QA-QH. Такой набор операций необходимо проделать 8 раз, т.к. светодиодный куб имеет 8 слоев, и мы получим отображение одного кадра анимации. Помните, что лишь один слой активен в каждый момент времени.
К примеру, для прорисовки контуров светодиодного куба, нам необходимо: для первого и последнего слоя первым передать байт 11111111, затем 6 байт 10000001 и последний байт 11111111. Для слоев 2-7 – первым передается байт 10000001, затем 6 байт 00000000 и последний 10000001. Это без учета управления ключами MOSFET.
Слой 1
|
Слой 2
|
Слой 3
|
Слой 4
|
Слой 5
|
Слой 6
|
Слой 7
|
Слой 8
|
11111111
10000001
10000001
10000001
10000001
10000001
10000001
11111111 |
10000001
00000000
00000000
00000000
00000000
00000000
00000000
10000001
|
10000001
00000000
00000000
00000000
00000000
00000000
00000000
10000001
|
10000001
00000000
00000000
00000000
00000000
00000000
00000000
10000001
|
10000001
00000000
00000000
00000000
00000000
00000000
00000000
10000001
|
10000001
00000000
00000000
00000000
00000000
00000000
00000000
10000001
|
10000001
00000000
00000000
00000000
00000000
00000000
00000000
10000001
|
11111111
10000001
10000001
10000001
10000001
10000001
10000001
11111111
|
Загрузки
Пример программы управления светодиодным кубом – скачать