- Матриця світлодіодного дисплея 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 як Enable pin, Pin 6 як Pin A, Pin 7 як pin B, Pin 13 - це CLK, Pin 8 є SCLK, Pin 11 - це DATA, і нарешті Pin GND - це контакт GND для модуля та Arduino, повна таблиця нижче чітко пояснює конфігурацію контактів.
Світлодіодний модуль P10 |
Arduino UNO |
УВІМКНУТИ |
9 |
A |
6 |
B |
7 |
CLK |
13 |
SCLK |
8 |
ДАНІ |
11 |
GND |
GND |
Примітка: Підключіть термінал живлення модуля P10 до зовнішнього джерела живлення 5 В, оскільки 512 світлодіодів будуть споживати багато енергії. Рекомендується підключити джерело живлення постійного струму на 5 В, 3 А до одного блоку світлодіодного модуля P10. Якщо ви плануєте підключити більше модулів чисел, тоді відповідно збільште свою потужність SMPS.
Компоненти, необхідні для табло Arduino
Оскільки це дуже простий проект, вимоги до компонентів дуже загальні, перелік необхідних компонентів наведено нижче, ви зможете знайти весь перерахований матеріал у своєму місцевому магазині хобі.
- Arduino Nano
- P10 світлодіодний матричний дисплей
- Макет
- 5V, 3 AMP SMPS
- Модуль Bluetooth HC-05
- Підключення проводів
Схема для табло Arduino
Схема для табло з підсвічуванням світлодіодів Arduino наведена нижче, оскільки цей проект дуже простий, я використав популярне програмне забезпечення для розробки програм для розробки схеми.
Робота схеми дуже проста, у нас є додаток для Android та модуль Bluetooth, щоб успішно спілкуватися з модулем Bluetooth, вам потрібно з'єднати модуль HC-05 з додатком для Android. Після підключення ми можемо надіслати рядок, який ми хочемо відобразити, після того, як рядок надіслано, Arduino обробить рядок і перетворить його на сигнал, який може зрозуміти внутрішній резистор зсуву 74HC595, після того, як дані будуть відправлені на зміну резистор, готовий до відображення.
Пояснення коду табло табло Arduino
Після успішного завершення налаштування обладнання зараз настав час для програмування Arduino Nano. Покроковий опис коду наведено нижче. Крім того, ви можете отримати повний код табло Arduino внизу цього посібника.
Перш за все, нам потрібно включити всі бібліотеки. Ми використовували бібліотеку 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 прапор = 0; char cstr1;
Визначено функцію scan_module (), яка постійно перевіряє наявність будь-яких вхідних даних від Arduino Nano через SPI. Якщо так, тоді це спричинить переривання для виконання певних подій, визначених користувачем у програмі.
порожнеча scan_module () { led_module.scanDisplayBySPI (); }
Усередині установки () таймер ініціалізується, а переривання приєднується до функції scan_module, про яку йшлося раніше. Спочатку екран очищався за допомогою функції очищення екрана (true), що означає , що всі пікселі визначаються як OFF.
У налаштуваннях послідовний зв'язок також був увімкнений за допомогою функції Serial.begin (9600), де 9600 - це швидкість передачі даних для зв'язку Bluetooth.
void setup () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (істина); }
Тут перевіряється наявність послідовних даних, чи є дійсні дані надходять з Arduino чи ні. Отримані дані з програми зберігаються у змінних.
if (Serial.available ()> 0) { прапор = 0; input = Serial.read ();
Потім отримане значення порівнювали із заздалегідь визначеною змінною. Тут, в додатку Android, дві кнопки беруться для вибору балів для обох команд. При натисканні кнопки 1 символ 'a' передається в Arduino, а при натисканні кнопки2 символ 'b' передається в Arduino. Отже, у цьому розділі ці дані узгоджуються, і якщо вони збігаються, відповідні значення оцінок збільшуються, як показано в коді.
if (input == 'a' && flag == 0) { flag = 1; a ++; } інакше якщо (input == 'b' && flag == 0) { flag = 1; b ++; } ще;
Потім отримані дані перетворюються в масив символів, оскільки матрична функція P10 здатна відображати лише тип даних символів. Ось чому всі змінні перетворюються та об'єднуються в масив символів.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). ToCharArray (cstr1, 50);
Потім для відображення інформації в модулі шрифт вибирається за допомогою функції select (). Потім функція drawMarquee () використовується для відображення потрібної інформації на платі P10.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
Нарешті, оскільки нам потрібен екран прокрутки повідомлень, я написав код для переміщення всього нашого повідомлення з напрямків направо наліво з використанням певного періоду.
довгий старт = міліс (); тривалий таймінг = старт; логічний прапор = false; while (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); хронометраж = міліс (); } }
На цьому наш процес кодування закінчується. І тепер він готовий до завантаження.
Табло з керованим смартфоном - тестування
Після завантаження коду в Arduino настав час протестувати проект. До цього на нашому смартфоні потрібно встановити додаток android. Ви можете завантажити програму P10 Score Board за вказаним посиланням. Після встановлення відкрийте програму, і головний екран повинен виглядати як зображення нижче.
Натисніть кнопку SCAN, щоб додати модуль Bluetooth із програмою. З’явиться список спарених пристроїв Bluetooth телефону. Якщо ви раніше не спарювали модуль Bluetooth HC-05, з’єднайте модуль за допомогою налаштувань Bluetooth у вашому телефоні та виконайте цей крок. Екран буде виглядати так, як показано на малюнку:
Потім зі списку натисніть “HC-05”, оскільки це назва нашого модуля Bluetooth, що використовується тут. Після натискання на ньому на екрані відображатиметься підключений. Тоді ми можемо приступити до табло.
Клацніть на будь-яку кнопку між "Домашнім" та "Геть", як показано в додатку. Якщо обрано кнопку «Домашня сторінка», оцінка «Головна» буде збільшена на дисплеї P10. Подібним чином, якщо обрана кнопка «Відсутні», оцінка «Відсутні» буде збільшена. На зображенні нижче показано, як виглядає остаточний екран.
Сподіваюся, вам сподобався проект і ви дізналися щось нове. Якщо у вас є якісь інші питання щодо проекту, сміливо коментуйте нижче або ви можете задати своє питання на нашому форумі.