- A P10 LED kijelzőmátrix
- Az Arduino eredménytáblájához szükséges elemek
- Áramkör az Arduino eredménytáblájához
- Arduino eredménytábla kód magyarázat
Az elektronikus eredménytábla az egyik legfontosabb eszköz, amelyet bárki használhat bármely sportverseny során. A hagyományos módszereket használó régi kézi eredménytábla nagyon időigényes és hibára hajlamos, ezért szükségessé válik egy számítógépes eredménytábla, ahol a kijelző egységet valós időben kell cserélni. Ezért ebben a projektben egy Bluetooth vezérlésű vezeték nélküli eredménytáblát építünk, amelyben csak egy android alkalmazás segítségével változtathatjuk meg a táblán lévő pontszámot. Ennek a projektnek az agya egy Arduino Nano, és a kijelző részében egy P10 LED-es mátrixot fogunk használni, hogy valós időben, távolról jelenítsük meg a pontszámokat.
A P10 LED kijelzőmátrix
A P10 LED-es mátrix kijelző a legjobb módja annak, hogy kültéri vagy beltéri LED-táblát készítsen. Ezen a panelen összesen 512 nagy fényerejű LED található, amelyek a legjobb kijelzőeredmény érdekében műanyag házra vannak felszerelve. IP65 besorolású vízszigeteléssel is rendelkezik, így tökéletes kültéri használatra. Ezzel nagy LED jelzőtáblát készíthet, ha tetszőleges számú ilyen panelt egyesít bármely sor- és oszlopstruktúrában.
Modulunk mérete 32 * 16, ami azt jelenti, hogy minden sorban 32 LED és minden oszlopban 16 LED található. Tehát minden led jelzőtáblán összesen 512 LED található. Ezen kívül IP65 besorolású vízszigeteléssel rendelkezik, egyetlen 5 V-os áramforrásról táplálható, nagyon széles látószöggel rendelkezik, és a fényerő akár 4500 nit is elérhet. Tehát tisztán láthatja majd napfényben. Korábban ezt a P10 kijelzőt is használtuk Arduino-val egy egyszerű LED-tábla felépítéséhez.
A P10 LED-mátrix tű leírása :
Ez a LED kijelző tábla 10 tűs leveles fejlécet használ a bemeneti és kimeneti csatlakozáshoz, ebben a szakaszban leírtuk ennek a modulnak az összes szükséges lábát. Láthatja, hogy a modul közepén van egy külső 5 V-os csatlakozó, amelyet a külső áramellátás a táblához történő csatlakoztatására használnak.
- Engedélyezés: Ezt a csapot a LED panel fényerejének szabályozására használják, PWM impulzust adva neki.
- A, B: Ezeket multiplex select csapoknak nevezzük. Digitális bemenetet választanak a multiplex sorok kiválasztásához.
- Váltás óra (CLK), Tárolás óra (SCLK) és Adatok: Ezek a normál váltás regiszter vezérlő csapok. Itt egy 74HC595 váltóregisztert használunk.
Interfacing P10 LED Display Module to Arduino:
Csatlakoztatása a P10 mátrix kijelző modult, hogy Arduino egy nagyon egyszerű folyamat, a mi áramkörbe, konfigurált 9 csap a Arduino mint engedélyezése pin, pin 6 PIN A, Pin 7. pin B, 13 csap a CLK, Pin 8 az SCLK, a Pin 11 a DATA, végül a Pin GND a modul és az Arduino GND csapja, az alábbi teljes táblázat világosan elmagyarázza a pin konfigurációját.
P10 LED modul |
Arduino UNO |
ENGEDÉLYEZZE |
9. |
A |
6. |
B |
7 |
CLK |
13. |
SCLK |
8. |
ADAT |
11. |
GND |
GND |
Megjegyzés: Csatlakoztassa a P10 modul tápcsatlakozóját egy külső 5 V-os áramforráshoz, mert 512 LED sok energiát fogyaszt. Javasoljuk, hogy 5 V, 3 Amperes egyenáramú tápegységet csatlakoztasson a P10 LED modul egyetlen egységéhez. Ha több számmodult kíván csatlakoztatni, akkor ennek megfelelően növelje az SMPS kapacitását.
Az Arduino eredménytáblájához szükséges elemek
Mivel ez egy nagyon egyszerű projekt, az alkatrészekre vonatkozó követelmények nagyon általánosak, a szükséges alkatrészek listája az alábbiakban látható, ezért a felsorolt anyagokat meg kell találnia a helyi hobbiboltban.
- Arduino Nano
- P10 LED mátrix kijelző
- Kenyérlemez
- 5 V, 3 AMP SMPS
- HC-05 Bluetooth modul
- Vezetékek csatlakoztatása
Áramkör az Arduino eredménytáblájához
Az Arduino LED eredménytáblájának vázlata az alábbiakban látható, mivel ez a projekt nagyon egyszerű, a séma kidolgozásához a népszerű szoftverfritzist használtam.
Az áramkör működése nagyon egyszerű, van egy Android alkalmazásunk és egy Bluetooth modulunk, a Bluetooth modullal való sikeres kommunikációhoz párosítani kell a HC-05 modult az android alkalmazással. Miután csatlakoztunk, elküldhetjük a megjeleníteni kívánt karakterláncot, miután a karakterláncot elküldtük, az Arduino feldolgozza a karakterláncot, és átalakítja jellé, amelyet a belső 74HC595 váltóellenállás megérthet, miután az adatokat elküldték a váltónak ellenállás, készen áll a megjelenítésre.
Arduino eredménytábla kód magyarázat
A hardver telepítésének sikeres befejezése után itt az ideje az Arduino Nano programozásának. A kód lépésenkénti leírása az alábbiakban található. Ezenkívül megkapja a teljes Arduino eredménytábla kódot a bemutató alján.
Először is be kell vonnunk az összes könyvtárat. A P10 led kijelző vezérléséhez a DMD.h könyvtárat használtuk. A megadott GitHub linkről letöltheti és felveheti. Ezt követően be kell illesztenie a TimerOne.h könyvtárat, amelyet a programozás megszakításához használunk kódunkba.
Ebben a könyvtárban sok front elérhető, ehhez a projekthez az „ Arial_black_16 ” szót használtuk.
#include
A következő lépésben meghatározzuk a sorok és oszlopok számát a LED mátrix táblánk számára. Ebben a projektben csak egy modult használtunk, így a ROW és a COLUMN érték egyaránt 1-ként határozható meg.
#define ROW 1 #define 1 OSZLOP #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
Ezt követően meghatározzuk a kódban használt összes változót. Egy karakterváltozóval soros adatokat fogadnak az Android App-ból, két egész értéket használnak a pontszámok tárolására, és meghatároz egy tömböt, amely a Matrixon megjelenítendő végső adatokat tárolja.
char bemenet; int a = 0, b = 0; int zászló = 0; char cstr1;
Meghatározunk egy Function scan_module () függvényt, amely folyamatosan ellenőrzi az Arduino Nano-ból érkező adatokat az SPI- n keresztül. Ha igen, akkor ez megszakítást indít bizonyos események végrehajtásához, a felhasználó által a programban meghatározottak szerint.
void scan_module () { led_module.scanDisplayBySPI (); }
A setup () belsejében inicializálják az időzítőt, és a megszakítást a scan_module függvényhez csatolják, amiről korábban tárgyaltunk. Kezdetben a képernyőt a Clear screen (true) funkcióval törölte , ami azt jelenti , hogy az összes képpont OFF értékű.
A beállítás során a soros kommunikációt a Serial.begin (9600) funkcióval is engedélyezték, ahol 9600 a Bluetooth kommunikáció átviteli sebessége.
void setup () { Soros.kezdés (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (true); }
Itt ellenőrizzük a soros adatok elérhetőségét, ha vannak érvényes adatok az Arduinótól, vagy sem. Az App-tól kapott adatokat egy változó tárolja.
if (Soros.elérhető ()> 0) { flag = 0; input = Soros.olvasott ();
Ezután a kapott értéket összehasonlítottuk az előre definiált változóval. Itt, az Android alkalmazásban, két gombra kattintva kiválaszthatja mindkét csapat pontszámait. Az 1-es gomb megnyomásakor az 'a' karakter az Arduino-ra, a 2-es gomb megnyomásakor pedig a 'b' karakter az Arduino-ra kerül. Ennélfogva ebben a szakaszban ezek az adatok egyeznek, és ha egyeznek, akkor a megfelelő pontszámértékek növekednek a kódban látható módon.
if (input == 'a' && flag == 0) { flag = 1; a ++; } else if (input == 'b' && flag == 0) { flag = 1; b ++; } else;
Ezután a kapott adatokat karaktertömbökké konvertáljuk, mivel a P10 mátrixfüggvény csak karakteradattípusok megjelenítésére képes. Ezért minden változót átalakítunk és összefűzünk karaktertömbökké.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). ToCharArray (cstr1, 50);
Ezután az információk megjelenítéséhez a modulban a betűtípust a select () funkció segítségével választják ki. Ezután a drawMarquee () függvényt használja a kívánt információk megjelenítésére a P10 táblán.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
Végül, mivel egy görgető üzenet megjelenítésére van szükségünk, írtam egy kódot, amellyel az egész üzenetünket egy bizonyos periódus használatával jobbról balra tolhatjuk.
hosszú rajt = millis (); hosszú timmelés = kezdet; logikai zászló = hamis; while (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); timming = millis (); } }
Ez a kódolási folyamatunk végét jelenti. Most pedig készen áll a feltöltésre.
Okostelefon által vezérelt eredménytábla - tesztelés
Miután feltöltötte a kódot az Arduino-ba, ideje tesztelni a projektet. Előtte az android alkalmazást telepíteni kell okostelefonunkra. A megadott linkről letöltheti a P10 Score Board alkalmazást . A telepítés után nyissa meg az alkalmazást, és a kezdőképernyőnek úgy kell kinéznie, mint az alábbi kép.
Kattintson a SCAN gombra a Bluetooth modul hozzáadásához az App. Ez megjeleníti a telefon párosított Bluetooth-eszközeinek listáját. Ha korábban még nem párosította a HC-05 Bluetooth modult, akkor párosítsa a modult a telefon Bluetooth beállításával, majd hajtsa végre ezt a lépést. A képernyő az alábbiak szerint fog kinézni:
Ezután kattintson a listáról a „HC-05” gombra, mivel ez a neve itt használt Bluetooth modulunknak. Miután rákattint, a képernyőn megjelenik a csatlakozás. Ezután folytathatjuk az eredménytáblát.
Kattintson a „Home” és az „Away” bármelyik gombjára, amint az az alkalmazásban látható. Ha a Home gombot választja, akkor a Home pontszám növekszik a P10 kijelzőn. Hasonlóképpen, ha az Away gombot választja, akkor az Away pontszáma növekszik. Az alábbi kép megmutatja, hogyan néz ki a végső képernyő.
Remélem, tetszett a projekt, és valami újat tanult. Ha bármilyen további kérdése van a projekttel kapcsolatban, nyugodtan tegye meg észrevételeit lentebb, vagy teheti fel kérdését fórumunkban.