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


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

Внешний вид подключения светодиодного матричного дисплея P10 к плате Arduino

В данной статье мы будем использовать модули матричных дисплеев размером 32x16 светодиодов, которые также известны как светодиодные матричные дисплеи 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 светодиодов высокой яркости, смонтированных на пластиковом основании. Любое количество этих дисплеев можно объединить как по горизонтали, так и по вертикали.

Внешний вид светодиодного матричного дисплея P10

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

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

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

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

Внешний вид обратной стороны дисплея P10

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

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

Распиновка модуля P10

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

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

Схема подключения светодиодного дисплея 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().

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

Тестирование работы проекта

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

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

(3 голосов, оценка: 3,67 из 5)
Загрузка...
8 544 просмотров

Комментарии

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

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

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

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

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

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