- Potrebni materijali:
- Kružni dijagram:
- Izrada Android aplikacije pomoću obrade:
- Razumijevanje koda za obradu:
- Programiranje vašeg Arduina:
- Dizajn sklopova i PCB-a pomoću EasyEDA-e:
- Izračun i naručivanje uzoraka putem interneta:
- Rad zaslona Bluetooth table:
Bilo da su to dugačke autoceste ili ulazna vrata vaših liječnika, posvuda imamo postavljene table s informacijama. Ali ove su reklamne ploče često dosadne i s vremena na vrijeme ih se ne može konfigurirati prema našem interesu. Dakle, u ovom ćemo projektu izraditi Bluetooth tablu kojom upravlja Bluetooth pomoću 8 * 8 Matrix zaslona. Jedinstvena značajka ovog projekta je njegova android aplikacija koja omogućava korisniku da kontrolira svih 64 LED-a pojedinačno s mobitela. To omogućuje korisniku da s lakoćom kreira prilagođene dizajne i prikaže ih na LED zaslonu, zvuči zanimljivo zar ne? !! Pa krenimo…
Potrebni materijali:
- Arduino Pro mini
- MAX7219
- HC-05 Bluetooth modul
- 8 * 8 LED matrični zaslon
- Otpornik 20k
- DC bačva Jack
Kružni dijagram:
Dijagram sklopa ove LED ploče upravljane Bluetoothom napravljene pomoću aplikacije EasyEDA. Iste ćemo sheme koristiti za razvoj PCB-a od njega i izradu pomoću EasyEDA-e.

Krug je prilično ravan naprijed. Čitav projekt pokreće adapter od 12 V koji se izravno daje na Raw pin Arduino ploče. Taj se sirovi napon tada regulira na + 5V koji se napaja na Bluetooth modul i MAX7219 IC. Pribadače Tx i Rx Bluetooth modula spojene su na D11 i D10 Arduina kako bi se omogućila serijska veza.
Digitalni pinovi D5 do D7 povezani su s MAX7219 IC za slanje i primanje podataka putem SPI komunikacije. ISET-ov pin MAX7219 izvučen je visoko kroz 20k otpornik.
Za ovaj sam projekt izradio PCB, možete dobiti datoteku dizajna PCB-a i koristiti istu ili napraviti sklop na ploči. Međutim, zbog njegove složenosti preporuča se ili kupiti modul zaslona 8x8 ili koristiti PCB
Matrica 8x8 vrlo je koristan modul za prikaz i može se koristiti u mnogim cool projektima:
- Upravljanje 8x8 LED matricom s Raspberry Pi
- Pomicanje prikaza teksta na 8x8 LED matrici pomoću Arduina
- 8x8 LED matrica koja koristi Arduino
- 8x8 LED matrično povezivanje s AVR mikrokontrolerom

Izrada Android aplikacije pomoću obrade:
Prije nego što započnemo s programiranjem našeg Arduina, trebali bismo znati koju ćemo vrstu podataka dobiti s mobilnog telefona da bismo na njih odgovorili. Pa pogledajmo kako se stvara Android aplikacija i kako je možete koristiti na svom pametnom telefonu za upravljanje 8x8 LED matricom.
Android aplikacija za ovaj projekt izrađena je pomoću softvera Processing. To je aplikacija za razvoj otvorenog koda i može se lako preuzeti i koristiti za razvoj zanimljivih projekata pomoću Arduina ili drugih mikrokontrolera, jer može razvijati android aplikacije i sistemske programe. Već smo izveli nekoliko projekata koristeći Processing i možete ih provjeriti klikom na donje poveznice.
- Uradi sam FM radio pomoću obrade
- Kontrola virtualne stvarnosti / gesta pomoću Arduina
- Privatna soba za razgovor pomoću Arduina.
- Arduino radarski sustav koji koristi APP za obradu i ultrazvučni senzor
- Otkrivanje i praćenje lica u stvarnom vremenu pomoću Arduina
- Uradi sam brzinomjer pomoću Arduina i obrade
- Ping Pong igra pomoću Arduino akcelerometra
- Dvonožni robot koji koristi Arduino
- Uradi sam Arduino termalna kamera
Vraćajući se na temu, nemoguće mi je objasniti kompletan kôd android aplikacije, tako da biste morali sami naučiti obradu, a zatim pogledati kôd da biste razumjeli kako to funkcionira. Stoga ljudi koji su spremni preskočiti proces učenja Obrada može preuzeti android aplikaciju s donje poveznice
- Preuzmite Android aplikaciju
Ispod je sučelje naše aplikacije za Android:

APK datoteka se može izravno instalirati na bilo koji android program i pokrenuti kao i bilo koja druga aplikacija. No, pobrinite se da vaš Bluetooth uređaj HC-05 nosi naziv "HC-05", jer će samo tada raditi.
Razumijevanje koda za obradu:
Ljudi koje zanima što se događa iza zaslona mogu čitati dalje, a drugi mogu prijeći na sljedeći naslov. U osnovi se aplikacija Android povezuje s Bluetooth uređajem nazvanim "HC-05" tijekom pokretanja i prikazuje skup od 64 LED diode u obliku krugova. Zatim, kada korisnik pritisne krug, krug postaje crven i broj kruga šalje se Arduinu putem Bluetootha, po primanju broja kruga Arduino uključuje LED. Pogledajmo važne redove programa Processing da bismo ih bolje razumjeli. Kompletni kod Android aplikacije možete preuzeti s donje poveznice.
- Obrada koda za Android aplikaciju
Klase i objekte koristimo za prikaz 64 LED dioda, tako da možemo lako adresirati svaku od njih. Kao što možete vidjeti u donjem kodu, koristimo petlju for za iteraciju od 1 do 64 pomoću niza. Ovo je bilo da će svaka LED dioda imati vlastitu vrijednost X položaja, Y položaja i boje te ih možemo lako promijeniti.
// dipslay sve LED za (int i = 1; i <= 64, i ++) led_array.display (); // Svi diode prikazuju klasu Led { float X_Pos; plutaju Y_Pos; boja u boji; // KONSTRUKTOR Vodio (plutajući tempx, plutajući tempi, tempc u boji) { X_Pos = tempx; Y_Pos = privremeni; boja = tempc; } void display () { fill (color); elipsa (X_Pos, Y_Pos, led_dia, led_dia); } }
LED se učitavaju na zaslon istim redoslijedom kao i zaslon. Svaka LED dioda odvojena je udaljenost jednakom promjeru LED diode, na taj način možemo lako razlikovati koju LED trenutno korisnik odabire. Kao što je prikazano u donjem programu, kreiramo niz u kojem svaki element sadrži informacije o položaju X, Y i boji LED diode.
void load_leds () { led_array = novo Led; int a = 1; za (int j = 0; j <= 7; j ++) { plutajuće y = visina / 6 + j * (led_dia * 1,5); za (int i = 0; i <= 7; i ++) { float x = (širina / 6) + i * (led_dia * 1,5); // ispuniti (255); // elipsa (x, y, led_dia, led_dia); led_array = novo Led (x, y, boja (255,255,255)); a ++; } } }
Glavni korak u programu je provjeriti je li korisnik pritisnuo bilo koju LED diodu i ako da, moramo promijeniti boju LED diode i poslati LED broj putem Bluetootha. Budući da se sada lako možemo obratiti mjestu i boji svake LED diode, to možemo učiniti samo usporedbom vrijednosti X, Y mjesta na kojem je korisnik pritisnuo s vrijednošću X, Y LED-a. Ako se vrijednosti stope jedna u drugu, promijenimo stanje LED diode i također pošaljemo broj putem Bluetootha kako je prikazano u nastavku.
// provjeravamo je li miš prešao // Ako je odgovor da, pošaljite broj vodioca za (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = novo Led (led_array.X_Pos, led_array. Y_Pos, led_boja); bajtni podaci = {bajt (i)}; bt. Broadcast (podaci); } }
Osim toga, program također može resetirati kompletnu LED diodu tako što će ih sve isključiti, a također možete LED diodu pretvoriti u crvenu (UKLJUČENO) ili bijelu (ISKLJUČENO), tako da za to imamo i preklopni gumb. Prikazan je preklopni gumb i čeka ulaz. Ako se pritisne, poduzet će se odgovarajuća radnja. Kôd koji čini isto prikazan je u nastavku kao funkcija koja se poziva unutar petlje izvlačenja.
void load_buttons () { rectMode (CENTAR); textAlign (CENTAR, CENTAR); noStroke (); ispuniti (# 1BF2D4); pravokutni (širina / 2-širina / 4, visina / 1,3, širina / 4, visina / 12); ispuniti (0); tekst ("Resetiraj", širina / 2-širina / 4, visina / 1,3); // gumb 1 if (crvena == true) {fill (# 080F89); rect (širina / 2 + širina / 4, visina / 1,3, širina / 4, visina / 12); ispuna (255,0,0); tekst ("CRVENO", širina / 2 + širina / 4, visina / 1.3);} // gumb 2 if (crvena == lažna) {fill (# 080F89); pravokutni (širina / 2 + širina / 4, visina / 1,3, širina / 4, visina / 12); ispuna (255); tekst ("BIJELO", širina / 2 + širina / 4, visina / 1.3);} // gumb 2 } void read_buttons () { if (mišPress && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (boja_val == - 14945580) { bajtni podaci = {0}; bt. Broadcast (podaci); println ("RESET"); load_leds (); // učitavanje svih olova u položaju i boji } if (color_val == - 16248951) { byte data = {100}; bt. Broadcast (podaci); if (crvena == istinita) crvena = netačna; inače if (crvena == lažno) crvena = istinito; println ("TOGGLE"); } boja_val = 0; } }
Programiranje vašeg Arduina:
Kompletan Arduino Program za ovaj Bluetooth kontrolira bežični projekt odbor je dao na dnu ovog zaslona; možete ga koristiti izravno i prenijeti na ploču. Važne crte u programu objašnjene su u nastavku.
Bluetooth modul je spojen na pin 10 i 11, pa moramo koristiti softver serijski omogućiti serijski komunikacija na tim pinovima i onda možemo slušati podataka iz tih pinova. Dobivamo podatke primljene od Bluetooth modula i spremamo ih u varijablu koja se naziva dolazna . Ako je vrijednost dolaznog signala "0", isključit ćemo sve LED diode pomoću donjeg koda
if (BT.available ()) { incoming = BT.read (); Serial.println (dolazno); if (dolazno == 0) m.clear (); // Briše zaslon
Korištenjem dolaznih vrijednosti moramo odrediti koju LED diodu je korisnik pritisnuo na mobitelu i vremensku prognozu kako bi se uključio ili isključio taj LED. Dakle, provjeravamo je li vrijednost jednaka 100. Ako je vrijednost 10, to znači da je korisnik zatražio promjenu boje LED-a. Tako prebacujemo varijablu u crveno da bismo znali treba li uključiti ili isključiti LED.
else if (dolazno == 100) // Provjerite trebamo li uključiti ili isključiti LED { if (red == true) red = false; inače if (crvena == lažno) crvena = istinito; Serial.print ("CRVENO:"); Serial.println (crvena); }
Napokon, ako je vrijednost veća od 65, to znači da je korisnik pritisnuo LED. Na temelju broja od 1 do 64 moramo odrediti koju LED je korisnik pritisnuo. Da bismo prebacili tu LED diodu, trebat će nam vrijednost reda i stupca te LED diode koja se izračunava i pohranjuje na varijable X odnosno Y i prikazuje na donjem kodu. Konačno, na osnovu vrijednosti varijable crvene, uključujemo ili isključujemo LED prema korisničkom zahtjevu
else if (dolazno <= 64) {// Izračunajte gdje UKLJUČITI ro ISKLJUČITI prekidač LED = true; Y = dolazno / 8; X = dolazni - (Y * 8); ako (dolazni% 8 == 0) {X = 8; Y - = 1;} Serijski.println (X - 1); Serial.println (Y); if (crvena == true) m.setDot ((X - 1), (Y), true); // LED LED UKLJUČENO if (crveno == false) m.setDot ((X - 1), (Y), false); // LED ISKLJUČEN }
Dizajn sklopova i PCB-a pomoću EasyEDA-e:
Da bismo dizajnirali ovaj zaslon s kontroliranom matricom Bluetooth, odabrali smo mrežni EDA alat nazvan EasyEDA. Već sam puno puta koristio EasyEDA i smatrao sam da je vrlo prikladan za upotrebu, jer ima dobru kolekciju otisaka stopala i otvoren je izvor. Nakon dizajniranja PCB-a, uzorke PCB-a možemo naručiti putem njihovih jeftinih usluga izrade PCB-a. Oni također nude uslugu nabave komponenata gdje imaju veliku zalihu elektroničkih komponenata, a korisnici mogu naručiti njihove potrebne komponente zajedno s narudžbom PCB-a.
Dok dizajnirate svoje sklopove i PCB-ove, također možete učiniti svoj dizajn kruga i PCB-a javnim, tako da ih drugi korisnici mogu kopirati ili uređivati i imati koristi od vašeg rada, također smo za ovaj sklop učinili javnim cijeli raspored krugova i PCB-a, provjerite donja poveznica:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Možete pregledati bilo koji sloj (gornji, donji, gornji dio dna, dno itd.) PCB-a odabirom sloja iz prozora "Slojevi".
PCB možete pogledati i kako će izgledati nakon izrade pomoću gumba Photo View u EasyEDA-i:

Izračun i naručivanje uzoraka putem interneta:
Nakon dovršetka dizajna ove PCB-a kontrolirane matricom Bluetooth, PCB možete naručiti putem JLCPCB.com. Da biste PCB naručili od JLCPCB, potrebna vam je datoteka Gerber. Da biste preuzeli Gerber datoteke sa svoje PCB-a, samo kliknite gumb Fabrication Output (Izlaz za proizvodnju) na stranici EasyEDA editor, a zatim preuzmite sa stranice EasyEDA PCB order.
Sada idite na JLCPCB.com i kliknite na Quote Now ili gumb, a zatim možete odabrati broj PCB-a koji želite naručiti, koliko slojeva bakra trebate, debljinu PCB-a, težinu bakra, pa čak i boju PCB-a, poput snimke prikazano ispod:


Nakon što odaberete sve opcije, kliknite "Spremi u košaricu", a zatim ćete biti preusmjereni na stranicu na koju možete učitati svoju Gerber datoteku koju smo preuzeli s EasyEDA-e. Prenesite svoju Gerber datoteku i kliknite "Spremi u košaricu". I na kraju kliknite Sigurno plaćanje da biste dovršili narudžbu, a zatim ćete dobiti svoje PCB-ove nekoliko dana kasnije. Oni izrađuju PCB po vrlo niskoj stopi koja iznosi 2 USD. Njihovo vrijeme izrade također je vrlo manje, što je 48 sati s DHL-ovom isporukom od 3-5 dana, u osnovi ćete dobiti svoje PCB-ove u roku od tjedan dana od narudžbe.

Nakon nekoliko dana naručivanja PCB-a, dobio sam uzorke PCB-a u lijepom pakiranju kao što je prikazano na slikama ispod.


A nakon što sam nabavio ove dijelove, zalemio sam sve potrebne komponente preko PCB-a.


U svojoj PCB-u pogriješio sam odabirom pogrešnog otiska za modul zaslona 8 * 8, stoga sam morao koristiti Perf ploču za postavljanje zaslona kao što je prikazano na slici. Ali sada se otisak ažurira na PCB-u i možete naručiti ispravljeni PCB i s lakoćom montirati modul zaslona.
Rad zaslona Bluetooth table:
Kad ste spremni s hardverom bilo putem nabave PCB-a ili uspostavljanjem veze na ploči, upotrijebite program Arduino naveden na kraju stranice i prenesite ga na svoju ploču Arduino. Datoteka APK za android aplikaciju također je navedena gore, upotrijebite je i instalirajte aplikaciju na željeni Android uređaj.
Uključite hardver i potražite naziv uređaja HC-05 na telefonu da biste ga uparili. Ključ za prolaz prema zadanim postavkama bit će 1234. Nakon toga otvorite aplikaciju koju smo upravo instalirali. Aplikacija bi trebala prikazati “ spojeno na HC-05 ” na vrhu zaslona, tada ćete moći dodirnuti LED na zaslonu i primijetiti da se ista LED uključuje i na ploči.

Također možete isključiti sve LED diode pritiskom na tipku za poništavanje i odlučiti uključiti ili isključiti određeni LED pritiskom na tipku za prebacivanje. Prema zadanim postavkama koja ikada LED lampica koju pritisnete bit će uključena. Kompletni rad projekta nalazi se u video zapisu ispod. Ako imate bilo kakvih problema s radom, upotrijebite donji okvir za komentare ili pišite na našim forumima za dodatnu tehničku pomoć. Nadam se da ste razumjeli tutorial i uživali u njegovoj izradi.
