- Matryca wyświetlacza LED P10
- Składniki wymagane dla tablicy wyników Arduino
- Schemat obwodu tablicy wyników Arduino
- Objaśnienie kodu tablicy wyników Arduino
Elektroniczna tablica wyników to jeden z najważniejszych gadżetów, jakie można mieć podczas każdego turnieju sportowego. Stara ręczna tablica wyników wykorzystująca konwencjonalne metody jest bardzo czasochłonna i podatna na błędy, dlatego też skomputeryzowana tablica wyników staje się niezbędna, gdy wyświetlacz wymaga wymiany w czasie rzeczywistym. Dlatego w tym projekcie będziemy budować bezprzewodową tablicę wyników sterowaną przez Bluetooth, w której będziemy mogli zmieniać wynik na tablicy za pomocą aplikacji na Androida. Mózgiem tego projektu jest Arduino Nano, a do części wyświetlającej będziemy używać matrycy LED P10, aby zdalnie wyświetlać wynik w czasie rzeczywistym.
Matryca wyświetlacza LED P10
P10 LED Matryca Wyświetlacz jest najlepszym sposobem, aby ustalić płytę LED do użytku na zewnątrz lub wewnątrz budynku. Panel ten posiada łącznie 512 diod LED o wysokiej jasności zamontowanych na plastikowej obudowie, która zapewnia najlepsze wyniki wyświetlania. Posiada również klasę wodoodporności IP65, dzięki czemu idealnie nadaje się do użytku na zewnątrz. Dzięki temu można wykonać duży szyld LED, łącząc dowolną liczbę takich paneli w dowolnej strukturze rzędowej i kolumnowej.
Nasz moduł ma rozmiar 32 * 16, co oznacza, że w każdym rzędzie znajdują się 32 diody, aw każdej kolumnie 16 diod. Tak więc w każdym szyldie LED znajduje się łącznie 512 diod LED. Poza tym ma klasę wodoodporności IP65, może być zasilany jednym źródłem zasilania 5 V, ma bardzo szeroki kąt widzenia, a jasność może dochodzić do 4500 nitów. Będziesz więc mógł zobaczyć to wyraźnie w świetle dziennym. Wcześniej używaliśmy również tego wyświetlacza P10 z Arduino do budowy prostej płytki LED.
Pin Opis z P10 LED Matrix:
Ta płytka z wyświetlaczem LED wykorzystuje 10-pinowy nagłówek poczty do podłączenia wejścia i wyjścia, w tej sekcji opisaliśmy wszystkie niezbędne styki tego modułu. Możesz również zobaczyć, że w środku modułu znajduje się zewnętrzne złącze 5 V, które służy do podłączenia zewnętrznego zasilania do płytki.
- Włącz: Ten pin jest używany do sterowania jasnością panelu LED, poprzez podanie mu impulsu PWM.
- A, B: Nazywane są one pinami wyboru multipleksu. Pobierają wejście cyfrowe do wyboru dowolnych rzędów multipleksów.
- Zegar przesuwny (CLK), zegar sklepowy (SCLK) i dane: Są to normalne piny sterujące rejestru przesuwnego. Tutaj używany jest rejestr przesuwny 74HC595.
Łączenie modułu wyświetlacza LED P10 z Arduino:
Podłączenie modułu wyświetlacza matrycy P10 do Arduino jest bardzo prostym procesem, w naszym obwodzie skonfigurowaliśmy pin 9 Arduino jako pin włączający, pin 6 jako pin A, pin 7 jako pin B, pin 13 to CLK, pin 8 to SCLK, Pin 11 to DANE, a na końcu Pin GND to pin GND dla modułu i Arduino, pełna tabela poniżej wyjaśnia wyraźnie konfigurację pinów.
Moduł LED P10 |
Arduino UNO |
WŁĄCZYĆ |
9 |
ZA |
6 |
b |
7 |
CLK |
13 |
SCLK |
8 |
DANE |
11 |
GND |
GND |
Uwaga: podłącz zacisk zasilania modułu P10 do zewnętrznego źródła zasilania 5 V, ponieważ 512 diod LED zużywa dużo energii. Zaleca się podłączenie zasilacza 5 V, 3 A DC do pojedynczego modułu modułu LED P10. Jeśli planujesz podłączyć moduł większej liczby numerów, odpowiednio zwiększ pojemność SMPS.
Składniki wymagane dla tablicy wyników Arduino
Ponieważ jest to bardzo prosty projekt, wymagania dotyczące komponentów są bardzo ogólne, lista wymaganych komponentów jest pokazana poniżej. Wszystkie wymienione materiały powinny być w stanie znaleźć w lokalnym sklepie hobbystycznym.
- Arduino Nano
- Wyświetlacz matrycowy LED P10
- Płytka prototypowa
- 5 V, 3 A SMPS
- Moduł Bluetooth HC-05
- Podłączanie przewodów
Schemat obwodu tablicy wyników Arduino
Schemat tablicy wyników Arduino LED jest pokazany poniżej, ponieważ ten projekt jest bardzo prosty, użyłem popularnego oprogramowania fritzing do opracowania schematu.
Działanie układu jest bardzo proste, mamy aplikację na Androida oraz moduł Bluetooth, aby z powodzeniem komunikować się z modułem Bluetooth należy sparować moduł HC-05 z aplikacją android. Po połączeniu możemy wysłać ciąg, który chcemy wyświetlić, po wysłaniu ciągu Arduino przetworzy ciąg i przekształci go w sygnał, który wewnętrzny rezystor przesuwny 74HC595 może zrozumieć, po przesłaniu danych do zmiany rezystor, gotowy do wyświetlenia.
Objaśnienie kodu tablicy wyników Arduino
Po pomyślnym zakończeniu konfiguracji sprzętu przyszedł czas na programowanie Arduino Nano. Szczegółowy opis kodu znajduje się poniżej. Możesz również uzyskać pełny kod tablicy wyników Arduino na dole tego samouczka.
Przede wszystkim musimy uwzględnić wszystkie biblioteki. Użyliśmy DMD.h Bibliotekę w celu sterowania wyświetlaniem P10 LED. Możesz go pobrać i dołączyć z podanego linku GitHub. Następnie musisz dołączyć bibliotekę TimerOne.h, która będzie używana do programowania przerwań w naszym kodzie.
W tej bibliotece dostępnych jest wiele frontów, w tym projekcie użyliśmy „ Arial_black_16 ”.
#zawierać
W następnym kroku liczba wierszy i kolumn jest zdefiniowana dla naszej płytki z matrycą LED. Użyliśmy tylko jednego modułu w tym projekcie, więc zarówno wartość WIERSZA, jak i KOLUMNA mogą być zdefiniowane jako 1.
# zdefiniować WIERSZ 1 # zdefiniować KOLUMNĘ 1 # zdefiniować CZCIONKĘ Arial_Black_16 DMD led_module (WIERSZ, KOLUMNA);
Następnie definiowane są wszystkie zmienne użyte w kodzie. Zmienna znakowa jest używana do odbierania danych szeregowych z aplikacji na Androida, dwie wartości całkowite są używane do przechowywania wyników i definiowana jest tablica, która przechowuje ostateczne dane do wyświetlenia w macierzy.
wejście char; int a = 0, b = 0; int flag = 0; char cstr1;
Zdefiniowano funkcję scan_module (), która stale sprawdza wszelkie dane przychodzące z Arduino Nano za pośrednictwem SPI. Jeśli tak, spowoduje to przerwanie wykonywania określonych zdarzeń zdefiniowanych przez użytkownika w programie.
void scan_module () { led_module.scanDisplayBySPI (); }
Wewnątrz setup () inicjowany jest licznik czasu, a przerwanie jest dołączane do funkcji scan_module, która została omówiona wcześniej. Początkowo ekran był czyszczony za pomocą funkcji clear screen (true), co oznacza , że wszystkie piksele są zdefiniowane jako wyłączone.
W konfiguracji, komunikacja szeregowa została również włączona za pomocą funkcji Serial.begin (9600), gdzie 9600 to prędkość transmisji dla komunikacji Bluetooth.
void setup () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (true); }
Tutaj sprawdzana jest dostępność danych szeregowych, czy są prawidłowe dane pochodzą z Arduino, czy nie. Otrzymane dane z aplikacji są przechowywane w zmiennej.
if (Serial.available ()> 0) { flag = 0; input = Serial.read ();
Następnie otrzymana wartość została porównana z predefiniowaną zmienną. Tutaj, w aplikacji na Androida, służą dwa przyciski do wyboru wyników dla obu drużyn. Po naciśnięciu przycisku 1 znak „a” jest przesyłany do Arduino, a po naciśnięciu przycisku 2 znak „b” jest przesyłany do Arduino. W związku z tym w tej sekcji dane te są dopasowywane, a jeśli są dopasowane, to odpowiednie wartości punktacji są zwiększane, jak pokazano w kodzie.
if (input == 'a' && flag == 0) { flag = 1; a ++; } else if (input == 'b' && flag == 0) { flag = 1; b ++; } else;
Następnie odebrane dane są konwertowane na tablicę znaków, ponieważ funkcja macierzy P10 może wyświetlać tylko dane typu znakowego. Dlatego wszystkie zmienne są konwertowane i łączone w tablicę znaków.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). ToCharArray (cstr1, 50);
Następnie, aby wyświetlić informacje w module, należy wybrać czcionkę za pomocą funkcji selection (). Następnie funkcja drawMarquee () służy do wyświetlania żądanych informacji na tablicy P10.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * WIERSZ), 0);
Wreszcie, ponieważ potrzebujemy przewijanego wyświetlacza komunikatów, napisałem kod, aby przesuwać całą naszą wiadomość z kierunku od prawej do lewej, używając określonego okresu.
długi start = millis (); długi czas = start; flaga logiczna = fałsz; while (! flaga) { if ((czas + 30) <millis ()) { flaga = led_module.stepMarquee (-1, 0); timming = millis (); } }
Oznacza to koniec naszego procesu kodowania. Teraz jest gotowy do przesłania.
Tablica wyników sterowana smartfonem - testowanie
Po wgraniu kodu do Arduino czas na przetestowanie projektu. Wcześniej aplikacja na Androida musi być zainstalowana na naszym smartfonie. Możesz pobrać aplikację P10 Score Board z podanego linku. Po zainstalowaniu otwórz aplikację, a ekran główny powinien wyglądać jak na poniższym obrazku.
Kliknij przycisk SKANUJ, aby dodać moduł Bluetooth z aplikacją. Spowoduje to wyświetlenie listy sparowanych urządzeń Bluetooth w telefonie. Jeśli wcześniej nie sparowałeś modułu HC-05 Bluetooth, sparuj moduł za pomocą ustawień Bluetooth w telefonie, a następnie wykonaj ten krok. Ekran będzie wyglądał jak pokazano:
Następnie z listy kliknij „HC-05”, ponieważ jest to nazwa naszego modułu Bluetooth, który został tutaj użyty. Po kliknięciu na niego pokaże się połączony na ekranie. Następnie możemy przejść do tablicy wyników.
Kliknij dowolny przycisk między „Dom” i „Poza domem”, jak pokazano w aplikacji. Jeśli wybrany jest przycisk Home, punktacja Home będzie zwiększana na ekranie P10. Podobnie, jeśli zostanie wybrany przycisk Poza domem, punktacja na wyjeździe zostanie zwiększona. Poniższy obrazek pokazuje, jak wygląda końcowy ekran.
Mam nadzieję, że spodobał Ci się projekt i nauczyłeś się czegoś nowego, jeśli masz inne pytania dotyczące projektu, możesz je skomentować poniżej lub zadać pytanie na naszym forum.