- Матрицата на LED дисплея P10
- Компоненти, необходими за Arduino Scoreboard
- Схема на схемата за табло на Arduino
- Обяснение на кода на таблото на Arduino
Електронното табло е едно от най-важните приспособления, които всеки може да има по време на всеки спортен турнир. Старото ръчно табло с помощта на конвенционални методи отнема много време и е склонно към грешки, поради което компютъризираното табло става необходимо, когато дисплеят трябва да се сменя в реално време. Ето защо в този проект ще изградим контролиран от Bluetooth безжичен табло, в който можем да променим резултата на дъската само с помощта на приложение за Android. Мозъкът на този проект е Arduino Nano, а за частта на дисплея ще използваме LED матрица P10, за да показваме резултата дистанционно в реално време.
Матрицата на LED дисплея P10
А P10 LED Matrix дисплей е най-добрият начин да се направи достъпно LED борда на открито или на закрито употреба. Този панел има общо 512 светодиода с висока яркост, монтирани върху пластмасов корпус, проектирани за най-добри резултати на дисплея. Той също така се предлага с IP65 рейтинг за хидроизолация, което го прави идеален за използване на открито. С това можете да направите голяма LED табела, като комбинирате произволен брой такива панели във всяка структура на редове и колони.
Нашият модул има размер 32 * 16, което означава, че има 32 светодиода във всеки ред и 16 светодиода във всяка колона. И така, във всяка led табела има общо 512 светодиода. Освен това, той има IP65 рейтинг за хидроизолация, може да се захранва от един 5V източник на захранване, има много широк ъгъл на гледане и яркостта може да достигне до 4500 нита. Така че, ще можете да го видите ясно при донесена дневна светлина. Преди това също използвахме този P10 дисплей с Arduino, за да изградим проста LED платка.
ПИН Описание на P10 LED матрица:
Тази платка с LED дисплей използва 10-пинов хедър за поща за вход и изход, в този раздел сме описали всички необходими щифтове на този модул. Също така можете да видите, че в средата на модула има външен 5V конектор, който се използва за свързване на външното захранване към платката.
- Активиране: Този щифт се използва за управление на яркостта на LED панела, като му подава PWM импулс.
- A, B: Те се наричат мултиплексни щифтове за избор. Те вземат цифров вход, за да изберат всякакви мултиплексни редове.
- Часовник за смяна (CLK), Часовник за съхранение (SCLK) и Данни: Това са нормалните щифтове за управление на регистъра на смяната. Тук се използва регистър за смяна 74HC595.
Връзка P10 LED дисплеен модул с 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 LED модул |
Arduino UNO |
АКТИВИРАНЕ |
9 |
A |
6 |
Б. |
7 |
CLK |
13 |
SCLK |
8 |
ДАННИ |
11. |
GND |
GND |
Забележка: Свържете захранващия терминал на модула P10 към външен 5V източник на захранване, защото 512 светодиода ще изразходват много енергия. Препоръчително е да свържете 5V, 3 Amp DC захранване към единица P10 LED модул. Ако планирате да свържете модул с повече номера, увеличете съответно капацитета си на SMPS.
Компоненти, необходими за Arduino Scoreboard
Тъй като това е много прост проект, изискванията за компонентите са много общи, списъкът на необходимите компоненти е показан по-долу, трябва да можете да намерите всички изброени материали във вашия местен магазин за хоби.
- Arduino Nano
- P10 LED матричен дисплей
- Макет
- 5V, 3 AMP SMPS
- Bluetooth модул HC-05
- Свързване на проводници
Схема на схемата за табло на Arduino
Схемата за Arduino LED Scoreboard е показана по-долу, тъй като този проект е много прост, използвах популярния софтуер за фризиране, за да разработя схемата.
Работата на веригата е много проста, имаме приложение за Android и модул Bluetooth, за да комуникирате успешно с модула Bluetooth, трябва да сдвоите модула HC-05 с приложението android. След като сме свързани, можем да изпратим низа, който искаме да покажем, след като низът бъде изпратен, Arduino ще обработи низа и ще го преобразува в сигнал, който вътрешният резистор за смяна 74HC595 може да разбере, след като данните бъдат изпратени на смяната резистор, готов за показване.
Обяснение на кода на таблото на Arduino
След успешното завършване на хардуерната настройка, сега е време за програмиране на Arduino Nano. Поетапното описание на кода е дадено по-долу. Също така можете да получите пълния код на Arduino Scoreboard в долната част на този урок.
На първо място, трябва да включим всички библиотеки. Използвахме библиотеката DMD.h, за да контролираме LED дисплея P10. Можете да го изтеглите и включите от дадената връзка към GitHub. След това трябва да включите библиотеката TimerOne.h, която ще се използва за програмиране на прекъсвания в нашия код.
В тази библиотека има много фронтове, ние използвахме “ Arial_black_16 ” за този проект.
#include
В следващата стъпка броят на редовете и колоните е дефиниран за нашата LED матрична платка. В този проект сме използвали само един модул, така че стойността ROW и COLUMN могат да бъдат определени като 1.
#define ROW 1 #define COLUMN 1 #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
След това се дефинират всички променливи, използвани в кода. Символна променлива се използва за получаване на серийни данни от Android App, две целочислени стойности се използват за съхраняване на резултати и се дефинира масив, който съхранява крайните данни, които трябва да бъдат показани в Матрицата.
въвеждане на символи; int a = 0, b = 0; int флаг = 0; char cstr1;
Дефинирана е функция scan_module (), която непрекъснато проверява за входящи данни от Arduino Nano чрез SPI. Ако отговорът е да, тогава той ще задейства прекъсване за извършване на определени събития, както е определено от потребителя в програмата.
void 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 или не. Получените данни от приложението се съхраняват в променлива.
ако (Serial.available ()> 0) { флаг = 0; вход = Serial.read ();
След това получената стойност беше сравнена с предварително дефинираната променлива. Тук, в приложението за Android, са взети два бутона за избор на резултатите и за двата отбора. При натискане на бутон 1 символ „а“ се предава на 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);
След това, за да се покаже информация в модула, шрифтът се избира с помощта на функцията selection (). След това функцията 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 модула с App. Това ще покаже списъка на сдвоените Bluetooth устройства на телефона. Ако досега не сте сдвоявали Bluetooth модула HC-05, сдвоете модула, като използвате Bluetooth настройката на телефона си и след това направете тази стъпка. Екранът ще изглежда така, както е показано:
След това от списъка кликнете върху „HC-05“, тъй като това е името на нашия Bluetooth модул, използван тук. След като щракнете върху него, той ще се покаже свързан на екрана. След това можем да продължим с таблото.
Кликнете върху който и да е бутон между „Начало“ и „Гост“, както е показано в приложението. Ако е избран бутон Начало, резултатът от Начало ще се увеличи на дисплея P10. По същия начин, ако бъде избран бутон Гост, резултатът от Гост ще бъде увеличен. Изображението по-долу показва как изглежда крайният екран.
Надявам се, че проектът ви е харесал и сте научили нещо ново, ако имате някакви други въпроси относно проекта, не се колебайте да коментирате по-долу или можете да зададете въпроса си в нашия форум.