- Матричный светодиодный экран P10
- Компоненты, необходимые для табло Arduino
- Принципиальная схема табло Arduino
- Пояснение кода табло Arduino
Электронное табло - одно из самых важных устройств, которое может иметь каждый во время любого спортивного турнира. Старое ручное табло, использующее обычные методы, требует очень много времени и подвержено ошибкам, поэтому компьютеризированное табло становится необходимым там, где необходимо менять единицы отображения в реальном времени. Вот почему в этом проекте мы создадим беспроводное табло, управляемое Bluetooth, на котором мы сможем изменить счет на доске, просто используя приложение для Android. Мозгом этого проекта является Arduino Nano, а в части дисплея мы будем использовать светодиодную матрицу P10 для удаленного отображения результатов в реальном времени.
Матричный светодиодный экран P10
P10 Светодиодный матричный дисплей является лучшим способом доступны сделать светодиодную доску для наружного или внутреннего применения. Эта панель имеет в общей сложности 512 светодиодов высокой яркости, установленных на пластиковом корпусе, предназначенном для наилучших результатов отображения. Он также имеет степень защиты IP65 для гидроизоляции, что делает его идеальным для использования на открытом воздухе. Таким образом, вы можете сделать большую светодиодную вывеску, объединив любое количество таких панелей в любой структуре строк и столбцов.
Наш модуль имеет размер 32 * 16, что означает, что в каждом ряду 32 светодиода и 16 светодиодов в каждом столбце. Итак, всего в каждой светодиодной вывеске присутствует 512 светодиодов. Помимо этого, он имеет рейтинг IP65 для водонепроницаемости, он может питаться от одного источника питания 5 В, он имеет очень широкий угол обзора, а яркость может достигать 4500 нит. Таким образом, вы сможете ясно увидеть это при дневном свете. Ранее мы также использовали этот дисплей P10 с Arduino для создания простой светодиодной платы.
Pin Описание от P10 светодиодной матрицы:
Эта плата светодиодного дисплея использует 10-контактный почтовый заголовок для входного и выходного подключения, в этом разделе мы описали все необходимые контакты этого модуля. Кроме того, вы можете видеть, что в середине модуля есть внешний разъем на 5 В, который используется для подключения внешнего питания к плате.
- Включить: этот вывод используется для управления яркостью светодиодной панели, подавая на нее импульс ШИМ.
- A, B: они называются выводами мультиплексного выбора. Они используют цифровой вход для выбора любых строк мультиплекса.
- Часы сдвига (CLK), часы сохранения (SCLK) и данные: это обычные контакты управления регистром сдвига. Здесь используется сдвиговый регистр 74HC595.
Подключение модуля светодиодного дисплея P10 к Arduino:
Подключение модуля матричного дисплея P10 к Arduino - очень простой процесс, в нашей схеме мы настроили вывод 9 Arduino как вывод включения, вывод 6 как вывод A, вывод 7 как вывод B, вывод 13 - это CLK, вывод 8 - SCLK, контакт 11 - это ДАННЫЕ, и, наконец, контакт GND - это контакт GND для модуля и Arduino, полная таблица ниже четко объясняет конфигурацию контактов.
Светодиодный модуль P10 |
Arduino UNO |
ВКЛЮЧИТЬ |
9 |
А |
6 |
B |
7 |
CLK |
13 |
SCLK |
8 |
ДАННЫЕ |
11 |
GND |
GND |
Примечание. Подключите клемму питания модуля P10 к внешнему источнику питания 5 В, так как 512 светодиодов потребляют много энергии. Рекомендуется подключить источник постоянного тока 5 В, 3 А к одному блоку светодиодного модуля P10. Если вы планируете подключить модуль с дополнительными номерами, соответственно увеличьте емкость SMPS.
Компоненты, необходимые для табло Arduino
Поскольку это очень простой проект, требования к компонентам очень общие, список необходимых компонентов показан ниже, вы сможете найти все перечисленные материалы в вашем местном магазине для хобби.
- Ардуино Нано
- Светодиодный матричный дисплей P10
- Макетная плата
- 5 В, 3 А, импульсный источник питания
- Модуль Bluetooth HC-05
- Подключение проводов
Принципиальная схема табло Arduino
Схема для светодиодного табло Arduino показана ниже, так как этот проект очень прост. Для разработки схемы я использовал популярное программное обеспечение fritzing.
Работа схемы очень проста, у нас есть приложение для Android и модуль Bluetooth, чтобы успешно общаться с модулем Bluetooth, вам необходимо подключить модуль HC-05 к приложению Android. После подключения мы можем отправить строку, которую хотим отобразить, после отправки строки Arduino обработает строку и преобразует ее в сигнал, который может понять внутренний резистор сдвига 74HC595, после того, как данные будут отправлены в сдвиг. резистор, готов к отображению.
Пояснение кода табло Arduino
После успешного завершения настройки оборудования настало время для программирования Arduino Nano. Пошаговое описание кода приведено ниже. Кроме того, вы можете получить полный код Arduino Scoreboard внизу этого руководства.
Прежде всего, нам нужно включить все библиотеки. Мы использовали библиотеку DMD.h для управления светодиодным дисплеем P10. Вы можете скачать и включить его по данной ссылке на GitHub. После этого вам нужно включить библиотеку TimerOne.h, которая будет использоваться для программирования прерываний в нашем коде.
В этой библиотеке доступно много фронтов, в этом проекте мы использовали « Arial_black_16 ».
#включают
На следующем этапе определяется количество строк и столбцов для нашей платы светодиодной матрицы. В этом проекте мы использовали только один модуль, поэтому значение ROW и COLUMN можно определить как 1.
#define ROW 1 #define COLUMN 1 #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
После этого определяются все используемые в коде переменные. Символьная переменная используется для получения последовательных данных из приложения Android, два целочисленных значения используются для хранения оценок, и определяется массив, в котором хранятся окончательные данные, которые будут отображаться в матрице.
ввод символов; int a = 0, b = 0; int flag = 0; char cstr1;
Определена функция scan_module (), которая непрерывно проверяет любые входящие данные от Arduino Nano через SPI. Если да, то он вызовет прерывание для выполнения определенных событий, как определено пользователем в программе.
void scan_module () { led_module.scanDisplayBySPI (); }
Внутри setup () таймер инициализируется, а прерывание прикрепляется к функции scan_module, о которой говорилось ранее. Изначально экран очищался с помощью функции clear screen (true), что означает , что все пиксели определены как OFF.
В настройке последовательная связь также была включена с помощью функции Serial.begin (9600), где 9600 - это скорость передачи данных для связи Bluetooth.
void setup () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (модуль_сканирования); led_module.clearScreen (правда); }
Здесь проверяется доступность последовательных данных, поступают ли действительные данные от Arduino или нет. Полученные данные из приложения хранятся в переменной.
если (Serial.available ()> 0) { flag = 0; input = Serial.read ();
Затем полученное значение сравнивалось с предопределенной переменной. Здесь, в приложении для Android, две кнопки используются для выбора очков для обеих команд. При нажатии кнопки 1 символ «a» передается в Arduino, а при нажатии кнопки 2 символ «b» передается в Arduino. Следовательно, в этом разделе эти данные сопоставляются, и если они совпадают, то соответствующие значения баллов увеличиваются, как показано в коде.
если (input == 'a' && flag == 0) { flag = 1; а ++; } иначе если (input == 'b' && flag == 0) { flag = 1; b ++; } else;
Затем полученные данные преобразуются в массив символов, поскольку матричная функция P10 способна отображать только символьный тип данных. Вот почему все переменные преобразуются и объединяются в массив символов.
(Строка («ДОМ:») + Строка (а) + Строка («-») + Строка («ОТСУТСТВУЮ:») + Строка (b)). ToCharArray (cstr1, 50);
Затем для отображения информации в модуле шрифт выбирается с помощью функции selection (). Затем функция drawMarquee () используется для отображения нужной информации на плате P10.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
Наконец, поскольку нам нужен прокручивающийся дисплей сообщений, я написал код для смещения всего нашего сообщения с направления справа налево с использованием определенного периода.
длинный старт = миллис (); долгий тайминг = старт; логический флаг = ложь; в то время как (! флаг) { если ((время + 30) <миллис ()) { флаг = led_module.stepMarquee (-1, 0); timming = миллис (); } }
Это знаменует конец нашего процесса кодирования. И теперь он готов к загрузке.
Табло, управляемое смартфоном - Тестирование
После загрузки кода в Arduino пора протестировать проект. Перед этим на наш смартфон необходимо установить приложение android. Вы можете скачать приложение P10 Score Board по данной ссылке. После установки откройте приложение, и главный экран должен выглядеть, как на изображении ниже.
Нажмите кнопку SCAN, чтобы добавить модуль Bluetooth с приложением. Это покажет список сопряженных устройств Bluetooth телефона. Если вы ранее не сопрягали модуль Bluetooth HC-05, выполните сопряжение модуля с помощью настройки Bluetooth вашего телефона, а затем выполните этот шаг. Экран будет выглядеть так:
Затем в списке щелкните «HC-05», так как это имя используемого здесь модуля Bluetooth. После нажатия на него на экране отобразится подключенное. Затем мы можем перейти к табло.
Нажмите любую кнопку между «Дома» и «Нет на месте», как показано в приложении. Если выбрана кнопка «Домой», счет «Домой» будет увеличиваться на дисплее P10. Точно так же, если выбрана кнопка «Нет», счет «Нет» будет увеличиваться. На изображении ниже показано, как выглядит финальный экран.
Надеюсь, вам понравился проект и вы узнали что-то новое, если у вас есть другие вопросы по проекту, не стесняйтесь оставлять комментарии ниже или вы можете задать свой вопрос на нашем форуме.