- P10 LED-skærmmatrix
- Komponenter, der kræves til Arduino resultattavle
- Kredsløbsdiagram til Arduino resultattavle
- Arduino resultattavle kode forklaring
En elektronisk resultattavle er en af de vigtigste gadgets, som nogen kan have under enhver sports turnering. Gammel manuel resultattavle ved hjælp af konventionelle metoder er meget tidskrævende og fejlbehæftet, og derfor bliver en edb-resultattavle nødvendig, hvor displayenheden skal ændres i realtid. Derfor bygger vi i dette projekt en Bluetooth-styret trådløs resultattavle, hvor vi kan ændre scoren på tavlen bare ved hjælp af en Android-applikation. Hjernen i dette projekt er en Arduino Nano, og til displaydelen bruger vi en P10 LED-matrix til at vise scoren eksternt i realtid.
P10 LED-skærmmatrix
En P10 LED-matrixskærm er den bedste tilgængelige måde at fremstille et LED-kort til udendørs eller indendørs brug. Dette panel har i alt 512 LED'er med høj lysstyrke monteret på et plastikhus designet til de bedste displayresultater. Den leveres også med en IP65-klassificering til vandtætning, hvilket gør den perfekt til udendørs brug. Med dette kan du oprette et stort LED-skilt ved at kombinere et vilkårligt antal af sådanne paneler i enhver række- og søjlestruktur.
Vores modul har en størrelse på 32 * 16, hvilket betyder, at der er 32 lysdioder i hver række og 16 lysdioder i hver søjle. Så der er i alt 512 LED'er til stede i hvert ledet skilt. Bortset fra det har den en IP65-klassifikation til vandtætning, den kan drives af en enkelt 5V strømkilde, den har en meget bred betragtningsvinkel, og lysstyrken kan gå op til 4500 nit. Så du vil være i stand til at se det tydeligt i bragt dagslys. Tidligere har vi også brugt denne P10-skærm med Arduino til at opbygge et simpelt LED-kort.
Stiftbeskrivelse af P10 LED-matrix:
Dette LED-skærmkort bruger et 10-polet mail-header til input- og outputforbindelse. I dette afsnit har vi beskrevet alle de nødvendige pins i dette modul. Du kan også se, at der er et eksternt 5V-stik i midten af modulet, der bruges til at forbinde den eksterne strøm til kortet.
- Enable: Denne pin bruges til at kontrollere lysstyrken på LED-panelet ved at give en PWM-puls til det.
- A, B: Disse kaldes multiplex select pins. De tager digitalt input til at vælge eventuelle multiplex-rækker.
- Skiftur (CLK), Store ur (SCLK) og data: Dette er de normale skifteregistreringsstifter. Her bruges et skiftregister 74HC595.
Interfacing P10 LED-skærmmodul til Arduino:
Tilslutning af P10 matrix display modul til Arduino er en meget enkel proces, i vores kredsløb konfigurerede vi pin 9 i Arduino som Enable pin, Pin 6 som Pin A, Pin 7 som pin B, Pin 13 er CLK, Pin 8 er SCLK, Pin 11 er DATA, og endelig er Pin GND GND-pin til modulet og Arduino, en komplet tabel nedenfor forklarer pin-konfigurationen tydeligt.
P10 LED-modul |
Arduino UNO |
AKTIVER |
9 |
EN |
6 |
B |
7 |
CLK |
13 |
SCLK |
8 |
DATA |
11 |
GND |
GND |
Bemærk: Tilslut strømterminalen til P10-modulet til en ekstern 5V strømkilde, fordi 512 lysdioder bruger meget strøm. Det anbefales at tilslutte en 5V, 3 Amp DC strømforsyning til en enkelt enhed af P10 LED-modulet. Hvis du planlægger at tilslutte flere numre-modul, skal du øge din SMPS-kapacitet i overensstemmelse hermed.
Komponenter, der kræves til Arduino resultattavle
Da dette er et meget simpelt projekt, er kravene til komponenter meget generiske, en liste over nødvendige komponenter vises nedenfor, du skal kunne finde alt det anførte materiale i din lokale hobbybutik.
- Arduino Nano
- P10 LED matrix display
- Brødbræt
- 5V, 3 AMP SMPS
- HC-05 Bluetooth-modul
- Tilslutning af ledninger
Kredsløbsdiagram til Arduino resultattavle
Skematisk for Arduino LED-resultattavlen vises nedenfor, da dette projekt er meget simpelt, jeg har brugt den populære softwarefriturering til at udvikle skematisk.
Arbejdet med kredsløbet er meget simpelt, vi har en Android-applikation og et Bluetooth-modul for at kunne kommunikere med Bluetooth-modulet skal du parre HC-05-modulet med Android-applikationen. Når vi er tilsluttet, kan vi sende den streng, som vi vil vise, når strengen er sendt, behandler Arduino strengen og konverterer den til et signal, som den interne 74HC595 skiftmodstand kan forstå, efter at dataene er sendt til skiftet modstand, den er klar til visning.
Arduino resultattavle kode forklaring
Efter den vellykkede afslutning af hardwareopsætningen er det nu tid til programmering af Arduino Nano. Den trinvise beskrivelse af koden er givet nedenfor. Du kan også få den komplette Arduino resultattavlekode i bunden af denne vejledning.
Først og fremmest skal vi inkludere alle bibliotekerne. Vi har brugt DMD.h- biblioteket til at styre P10-ledet display. Du kan downloade og inkludere det fra det givne GitHub-link. Derefter skal du medtage TimerOne.h- biblioteket, som vil blive brugt til at afbryde programmering i vores kode.
Der er mange fronter tilgængelige i dette bibliotek, vi har brugt “ Arial_black_16 ” til dette projekt.
#omfatte
I det næste trin defineres antallet af rækker og kolonner for vores LED-matrixkort. Vi har kun brugt et modul i dette projekt, så både ROW-værdi og COLUMN-værdi kan defineres som 1.
#define ROW 1 #define COLUMN 1 #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
Derefter defineres alle de variabler, der bruges i koden. En tegnvariabel bruges til at modtage serielle data fra Android App, to heltalsværdier bruges til at gemme scoringer, og der defineres et array, der gemmer de endelige data, der skal vises i Matrix.
char input; int a = 0, b = 0; int flag = 0; char cstr1;
Der defineres en funktion scan_module (), som løbende kontrollerer for indgående data fra Arduino Nano gennem SPI. Hvis ja, vil det udløse en afbrydelse for at udføre bestemte begivenheder som defineret af brugeren i programmet.
ugyldigt scan_module () { led_module.scanDisplayBySPI (); }
Inde i opsætning () initialiseres timeren, og afbrydelsen er knyttet til funktionen scan_module, som blev diskuteret tidligere. Oprindeligt blev skærmen ryddet ved hjælp af funktionen clear screen (true), hvilket betyder, at alle pixels er defineret som OFF.
I opsætningen blev seriel kommunikation også aktiveret ved hjælp af funktionen Serial.begin (9600), hvor 9600 er baudhastigheden for Bluetooth-kommunikation.
ugyldig opsætning () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (sand); }
Her kontrolleres tilgængeligheden af serielle data, hvis der er gyldige data, der kommer fra Arduino eller ej. De modtagne data fra appen gemmes i en variabel.
hvis (Serial.available ()> 0) { flag = 0; input = Serial.read ();
Derefter blev den modtagne værdi sammenlignet med den foruddefinerede variabel. Her i Android-applikationen tages to knapper til at vælge scoringerne for begge hold. Når der trykkes på knap 1, overføres karakter 'a' til Arduino, og når der trykkes på knap 2, overføres karakter 'b' til Arduino. Derfor, i dette afsnit, matches disse data, og hvis de matches, øges de respektive score-værdier som vist i koden.
hvis (input == 'a' && flag == 0) { flag = 1; a ++; } ellers hvis (input == 'b' && flag == 0) { flag = 1; b ++; } andet;
Derefter konverteres de modtagne data til et tegnarray, da P10-matrixfunktionen kun er i stand til at vise karakterdatatype. Dette er grunden til, at alle variabler konverteres og sammenkædes til et tegnarray.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). ToCharArray (cstr1, 50);
Derefter vælges skrifttypen for at vise oplysninger i modulet ved hjælp af valgfunktionen (). Derefter bruges drawMarquee () -funktionen til at vise den ønskede information på P10-kortet.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
Endelig, da vi har brug for en rullende meddelelsesvisning, har jeg skrevet en kode for at skifte hele vores besked fra højre til venstre retning ved hjælp af en bestemt periode.
lang start = millis (); lang timing = start; boolesk flag = falsk; mens (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); timing = millis (); } }
Dette markerer afslutningen på vores kodningsproces. Og nu er det klar til upload.
Smartphone-styret resultattavle - Test
Efter upload af kode til Arduino er det tid til at teste projektet. Før det skal Android-applikationen installeres på vores smartphone. Du kan downloade P10 Score Board-applikationen fra det givne link. Når den er installeret, skal du åbne appen, og startskærmen skal se ud som nedenstående billede.
Klik på knappen SCAN for at tilføje Bluetooth-modulet med appen. Dette viser listen over parrede Bluetooth-enheder på telefonen. Hvis du ikke har parret HC-05 Bluetooth-modulet før, skal du parre modulet ved hjælp af telefonens Bluetooth-indstilling og derefter udføre dette trin. Skærmen ser ud som vist:
Klik derefter på "HC-05" fra listen, da dette er navnet på vores Bluetooth-modul, der bruges her. Når du har klikket på det, vises det forbundet på skærmen. Så kan vi fortsætte med resultattavlen.
Klik på en vilkårlig knap mellem "Hjemme" og "væk" som vist i appen. Hvis der er valgt Hjem-knap, øges scoringen af Hjem i P10-displayet. Tilsvarende, hvis knappen Bort er valgt, vil scoren på Borte blive forøget. Billedet nedenfor viser, hvordan den endelige skærm ser ud.
Jeg håber, du kunne lide projektet og lærte noget nyt, hvis du har andre spørgsmål vedrørende projektet, er du velkommen til at kommentere nedenfor eller du kan stille dit spørgsmål i vores forum.