Рубрики
Схемы на Arduino

Светодиодная панель на Arduino и матричных дисплеях P10

Показ различных объявлений на разнообразных досках/панелях играет существенную роль в жизни современного общества. Одними из самых популярных средств отображения подобной информации в настоящее время являются цифровые светодиодные панели ввиду их высокой надежности и других достоинств. Ранее на нашем сайте мы уже рассматривали ряд проектов, в которых мы использовали светодиодную матрицу 8×8, но в этой статье мы рассмотрим светодиодную матрицу значительно большего размера.

В данной статье мы будем использовать модули матричных дисплеев размером 32×16 светодиодов, которые также известны как светодиодные матричные дисплеи P10 (P10 LED Display Module), для скроллинга на них текста под управлением платы Arduino. Эти модули P10 можно объединять вместе как по горизонтали, так и по вертикали, и создавать из них светодиодные панели/матрицы практически любых размеров.

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. 32*16 P10 LED display module (светодиодный матричный дисплей) (купить на AliExpress).
  3. 16-пиновый FRC коннектор.
  4. Импульсный источник питания (SMPS) на 5 В, 3 А (купить на AliExpress).
  5. Соединительные провода.

Принцип работы светодиодных матричных дисплеев P10

Светодиодные матричные дисплеи P10 наиболее удобны для создания наружных и внутренних досок объявлений. Подобный дисплей содержит 512 светодиодов высокой яркости, смонтированных на пластиковом основании. Любое количество этих дисплеев можно объединить как по горизонтали, так и по вертикали.

Обозначение 32*16 у этих дисплеев обозначает, что они содержат 32 светодиода в каждой строке и 16 светодиодов в каждом столбце. Итого получаем 512 светодиодов.

Технические характеристики светодиодных матричных дисплеев P10:

  • яркость: 3500-4500nits;
  • максимальная потребляемая мощность: 20 Вт;
  • напряжение питания: 5 В постоянного тока;
  • водонепроницаемость: IP65;
  • конфигурация 1 Вт на пиксел;
  • широкие углы обзора;
  • высокая контрастность.

Назначение контактов светодиодных дисплеев P10

Enable: этот контакт используется яркостью дисплея при помощи подачи на него импульса ШИМ (широтно-импульсной модуляции);
A, B: контакты мультиплексирования, позволяют обратиться к любым контактам при помощи технологии мультиплексирования;
Shift clock (CLK), Store clock (SCLK) и Data: контакты управления обычным регистром сдвига. В этих дисплеях используется регистр сдвига 74HC595.

Распиновка модуля P10 показана на следующем рисунке.

Схема проекта

Схема подключения светодиодного дисплея P10 к плате Arduino представлена на следующем рисунке.

Схема соединений светодиодного дисплея P10 и платы Arduino показана в следующей таблице.

Дисплей P10 Плата Arduino
ENABLE 9
A 6
B 7
CLK 13
SCLK 8
DATA 11
GND GND

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Примечание: подключайте контакты питания каждого модуля P10 к импульсному источнику питания (SMPS) 5 В по отдельности. Если вы планируете использовать больше модулей P10 для создания светодиодной матрицы, то соответствующим образом вам будет необходимо масштабировать и импульсный источник питания (SMPS).

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе мы должны подключить все используемые библиотеки. Библиотека “DMD.h” будет использоваться для работы со светодиодными дисплеями P10. Скачайте ее по этой ссылке и установите ее в вашу Arduino IDE. Библиотека “TimerOne.h” будет использоваться для задач обработки прерываний, ее можно скачать по следующей ссылке.

Также мы будем использовать библиотеку “Arial Black font” для отображения текста на нашем дисплее.

Далее следует указать количество строк и столбцов нашей светодиодной панели – поскольку для ее создания мы использовали только один модуль P10, то число строк и столбцов должно быть равно 1. Затем укажем шрифт Arial_Black_16, который будет использоваться для скроллинга текста на дисплее.

Функция scan_module() будет проверять все поступающие по интерфейсу SPI данные. Если данные будут поступать, то будет срабатывать прерывание, в обработчике которого будут выполняться необходимые действия.

Внутри функции void setup() мы будем инициализировать таймер и прикреплять прерывание к функции scan_module. Функция clearScreen(true) будет использоваться для очистки экрана дисплея.

Далее, для отображения строки на экране дисплея, необходимо с помощью функции selectFont() задать используемый шрифт. После задания шрифта мы будем высвечивать на экране дисплея приветственное сообщение “Welcome to Circuit Digest” с помощью функции drawMarquee().

И, наконец, чтобы производить скроллинг текста на нашем светодиодном дисплее, мы будем переключать наше сообщение справа налево с заданным временным интервалом.

Исходный код программы (скетча)

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

8 ответов к “Светодиодная панель на Arduino и матричных дисплеях P10”

у меня 4 панели почему когда я прописываю в прошивке несколько у меня ничего не высвечивается а если в Arduino
#define ROW 1
#define COLUMN 1
вернуть как было по одному то все работает мне надо соединить 4, шлейфа я подключил между ними если ставлю в этих значениях больше одного то нет ничего

А попробуйте два дисплея соединить вместе, заработают или нет. В сети есть информация по поводу того что вроде как возможностей Ардуино Уно не хватает для управления 4 такими дисплеями и поэтому нужно использовать плату помощнее. К примеру, вот здесь можно про это почитать — arduino.ru/forum/programmirovanie/dva-p10-rgb-displeya-arduino-uno. Лично такое не пробовал, поэтому точно сказать не могу, к сожалению.

Здравствуйте. Спасибо за статью. Скажите, а будет ли работать этот скетч для нескольких панелей, например 4 шт. По схеме 2х2, т.е.2 по горизонтали и 2 по вертикали. И как соединить панели в таком режиме

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

У нас в городе на остановках транспорта висят табло, на которые выводится инфа о прибывающих автобусах и троллейбусах.
Так вот, недавно приносили мне такое табло в ремонт. В нём 4 панели соединены зигзагом, управляющий контроллер — из PIC-ов был. Точную маркировку не скажу. Была затёрта. В прошивку залезть не довелось. Причина неисправности была в цепях питания. Конденсаторы не вынесли скачка напряжения от блока питания.

Добрый день, к сожалению я не могу. Не знаю, отпишется ли здесь кто-нибудь из тех, кто может

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

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