- Matricea cu afișaj LED P10
- Componente necesare pentru tabloul de bord Arduino
- Diagrama circuitului pentru tabloul de bord Arduino
- Explicație privind codul tabloului de bord Arduino
Un tablou de bord electronic este unul dintre cele mai importante gadgeturi pe care le poate avea oricine în timpul oricărui turneu sportiv. Tabloul de bord manual vechi care utilizează metode convenționale consumă foarte mult timp și este predispus la erori, prin urmare devine necesar un tablou de bord computerizat în care unitatea de afișare trebuie schimbată în timp real. Acesta este motivul pentru care, în acest proiect, vom construi un tablou de bord fără fir controlat prin Bluetooth, în care putem schimba scorul pe tablă doar utilizând o aplicație Android. Creierul acestui proiect este un Arduino Nano și, pentru partea de afișare, vom folosi o matrice LED P10 pentru a afișa scorul de la distanță în timp real.
Matricea cu afișaj LED P10
Un afișaj cu matrice LED P10 este cel mai bun mod disponibil pentru a crea o placă LED pentru utilizare în exterior sau în interior. Acest panou are un total de 512 LED-uri cu luminozitate ridicată montate pe o carcasă din plastic concepută pentru cele mai bune rezultate de afișare. De asemenea, vine cu o clasificare IP65 pentru impermeabilizare, făcându-l perfect pentru utilizare în exterior. Cu aceasta, puteți crea un panou mare LED combinând orice număr de astfel de panouri în orice structură de rânduri și coloane.
Modulul nostru are o dimensiune de 32 * 16, ceea ce înseamnă că există 32 de LED-uri în fiecare rând și 16 LED-uri în fiecare coloană. Deci, există un total de 512 LED-uri prezente în fiecare panou cu LED-uri. În afară de asta, are o clasificare IP65 pentru impermeabilizare, poate fi alimentat de o singură sursă de alimentare de 5V, are un unghi de vizualizare foarte larg, iar luminozitatea poate ajunge până la 4500 de niți. Așadar, îl veți putea vedea clar în lumina zilei. Anterior am folosit și acest afișaj P10 cu Arduino pentru a construi o placă LED simplă.
Pin Descrierea de P10 LED Matrix:
Această placă de afișare cu LED utilizează un antet de poștă cu 10 pini pentru conexiunea de intrare și ieșire, în această secțiune am descris toți pinii necesari ai acestui modul. De asemenea, puteți vedea că există un conector extern de 5V în mijlocul modulului, care este utilizat pentru a conecta puterea externă la placă.
- Activați: acest pin este utilizat pentru a controla luminozitatea panoului LED, oferindu-i un impuls PWM.
- A, B: Acestea sunt numite pini de selectare multiplex. Acestea iau intrare digitală pentru a selecta orice rânduri multiplex.
- Shift clock (CLK), Store clock (SCLK) și Data: Acestea sunt pinii normali de control al registrului shift. Aici este utilizat un registru de schimbare 74HC595.
Interfațarea modulului de afișare LED P10 cu Arduino:
Conectarea modulului de afișare a matricei P10 la Arduino este un proces foarte simplu, în circuitul nostru am configurat pinul 9 al Arduino ca pin activat, pinul 6 ca pinul A, pinul 7 ca pinul B, pinul 13 este CLK, pinul 8 este SCLK, Pinul 11 este DATA, iar în cele din urmă Pinul GND este pinul GND pentru modul și Arduino, un tabel complet de mai jos explică în mod clar configurația pinului.
Modul LED P10 |
Arduino UNO |
PERMITE |
9 |
A |
6 |
B |
7 |
CLK |
13 |
SCLK |
8 |
DATE |
11 |
GND |
GND |
Notă: Conectați terminalul de alimentare al modulului P10 la o sursă externă de alimentare de 5V, deoarece 512 LED-uri vor consuma multă energie. Se recomandă conectarea unei surse de curent continuu de 5 V, 3 A la o singură unitate de modul LED P10. Dacă intenționați să conectați mai multe module de numere, creșteți capacitatea SMPS în consecință.
Componente necesare pentru tabloul de bord Arduino
Deoarece acesta este un proiect foarte simplu, cerințele privind componentele sunt foarte generice, o listă a componentelor necesare este prezentată mai jos, ar trebui să puteți găsi toate materialele listate în magazinul dvs. local de hobby-uri.
- Arduino Nano
- Afișaj cu matrice LED P10
- Breadboard
- 5V, 3 AMP SMPS
- Modul Bluetooth HC-05
- Conectarea firelor
Diagrama circuitului pentru tabloul de bord Arduino
Schema pentru tabloul de bord Arduino LED este prezentată mai jos, deoarece acest proiect este foarte simplu, am folosit popularul software fritzing pentru a dezvolta schema.
Funcționarea circuitului este foarte simplă, avem o aplicație Android și un modul Bluetooth, pentru a comunica cu succes cu modulul Bluetooth, trebuie să împerecheați modulul HC-05 cu aplicația Android. Odată ce suntem conectați, putem trimite șirul pe care dorim să îl afișăm, odată ce șirul este trimis, Arduino va procesa șirul și îl va converti într-un semnal pe care rezistorul de schimbare internă 74HC595 îl poate înțelege, după ce datele sunt trimise în schimbare rezistor, este gata de afișare.
Explicație privind codul tabloului de bord Arduino
După finalizarea cu succes a configurării hardware, acum este timpul pentru programarea Arduino Nano. Descrierea în etape a codului este dată mai jos. De asemenea, puteți obține codul complet Arduino Scoreboard în partea de jos a acestui tutorial.
În primul rând, trebuie să includem toate bibliotecile. Am folosit biblioteca DMD.h pentru a controla afișajul cu LED-uri P10. Puteți să o descărcați și să o includeți de pe linkul GitHub dat. După aceea, trebuie să includeți Biblioteca TimerOne.h, care va fi utilizată pentru programarea întreruperii în codul nostru.
Există multe fronturi disponibile în această bibliotecă, am folosit „ Arial_black_16 ” pentru acest proiect.
#include
În pasul următor, numărul de rânduri și coloane este definit pentru placa noastră cu matrice LED. Am folosit un singur modul în acest proiect, astfel încât atât valoarea ROW, cât și valoarea COLUMN pot fi definite ca 1.
#define ROW 1 #define COLUMN 1 #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
După aceea, sunt definite toate variabilele utilizate în cod. O variabilă de caractere este utilizată pentru a primi date seriale din aplicația Android, două valori întregi sunt utilizate pentru a stoca scorurile și este definită o matrice care stochează datele finale care vor fi afișate pe Matrix.
intrare char; int a = 0, b = 0; int flag = 0; char cstr1;
Este definită o funcție scan_module (), care verifică continuu dacă există date primite de la Arduino Nano prin SPI. Dacă da, atunci va declanșa o întrerupere pentru efectuarea anumitor evenimente definite de utilizator în program.
void scan_module () { led_module.scanDisplayBySPI (); }
În interiorul setării (), temporizatorul este inițializat, iar întreruperea este atașată la funcția scan_module, despre care am discutat anterior. Inițial, ecranul a fost șters folosind funcția ecran clar (adevărat), ceea ce înseamnă că toți pixelii sunt definiți ca OPRIT.
În configurare, comunicarea serială a fost de asemenea activată folosind funcția Serial.begin (9600) unde 9600 este rata de transmisie pentru comunicația Bluetooth.
void setup () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (adevărat); }
Aici, disponibilitatea datelor seriale este verificată, dacă există date valide care provin de la Arduino sau nu. Datele primite din aplicație sunt stocate într-o variabilă.
if (Serial.available ()> 0) { flag = 0; input = Serial.read ();
Apoi, valoarea primită a fost comparată cu variabila predefinită. Aici, în aplicația Android, sunt luate două butoane pentru a selecta scorurile pentru ambele echipe. Când butonul 1 este apăsat, caracterul „a” este transmis către Arduino și când butonul 2 este apăsat, caracterul „b” este transmis către Arduino. Prin urmare, în această secțiune, aceste date sunt potrivite și, dacă sunt potrivite, valorile scorului respectiv sunt incrementate așa cum se arată în cod.
if (input == 'a' && flag == 0) { flag = 1; a ++; } else if (input == 'b' && flag == 0) { flag = 1; b ++; } altfel;
Apoi, datele primite sunt convertite într-o matrice de caractere, deoarece funcția matricei P10 este capabilă doar să afișeze tipul de date de caractere. Acesta este motivul pentru care toate variabilele sunt convertite și concatenate într-o matrice de caractere.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). ToCharArray (cstr1, 50);
Apoi, pentru a afișa informații în modul, fontul este selectat folosind funcția selection (). Apoi funcția drawMarquee () este utilizată pentru a afișa informațiile dorite pe placa P10.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
În cele din urmă, întrucât avem nevoie de afișarea unui mesaj derulant, am scris un cod pentru a schimba întregul mesaj din direcția Dreapta spre Stânga folosind o anumită perioadă.
start lung = milis (); timming lung = start; steag boolean = fals; while (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); timming = millis (); } }
Aceasta marchează sfârșitul procesului nostru de codificare. Și acum este gata pentru încărcare.
Tablou de bord controlat de smartphone - Testare
După ce ați încărcat codul pe Arduino, este timpul să testați proiectul. Înainte de aceasta, aplicația Android trebuie instalată pe smartphone-ul nostru. Puteți descărca aplicația P10 Score Board de pe linkul dat. După instalare, deschideți aplicația și ecranul de pornire ar trebui să arate ca imaginea de mai jos.
Faceți clic pe butonul SCAN pentru a adăuga modulul Bluetooth cu aplicația. Aceasta va afișa lista dispozitivelor Bluetooth asociate telefonului. Dacă nu ați asociat anterior modulul Bluetooth HC-05, asociați modulul utilizând setarea Bluetooth a telefonului dvs. și apoi efectuați acest pas. Ecranul va arăta astfel:
Apoi, din listă, faceți clic pe „HC-05”, deoarece acesta este numele modulului nostru Bluetooth utilizat aici. După ce faceți clic pe acesta, va apărea conectat pe ecran. Apoi putem continua cu tabloul de bord.
Faceți clic pe orice buton dintre „Acasă” și „Depărtare”, așa cum se arată în aplicație. Dacă butonul Acasă este selectat, scorul Acasă va fi mărit pe afișajul P10. În mod similar, dacă butonul Îndepărtat este selectat, scorul Îndepărtat va fi incrementat. Imaginea de mai jos arată cum arată ecranul final.
Sper că ți-a plăcut proiectul și ai învățat ceva nou, dacă ai alte întrebări cu privire la proiect, nu ezita să comentezi mai jos sau îți poți pune întrebarea în forumul nostru.