U ovom uputstvu dizajnirat ćemo 8x8 LED matrični zaslon za pomicanje pomoću Arduino Uno, koji će prikazati abecede za pomicanje.
8x8 LED matrica sadrži 64 LED diode (diode koje emitiraju svjetlost) koje su raspoređene u obliku matrice, pa je stoga naziv LED matrica. Napravit ćemo ovu Matricu lemljenjem ovih 64 LED na perfboard ili DOT PCB. LED diode mogu biti u bilo kojoj boji, odaberite one koje su vam dostupne. Tada ćemo napisati program za Arduino za kontrolu ovih 64 LED matrice. UNO, prema programu, napaja odgovarajuće LED diode za prikaz likova na pomicanje.
Potrebne komponente:
- Arduino Uno
- 64 LED diode
- Perfboard s drugim alatima za lemljenje
- Otpor 1KΩ (8 komada)
- Napajanje (5v)
Objašnjenje sklopa i rada:
Postoje 64 LED diode raspoređene u matrični oblik. Tako imamo 8 stupaca i 8 redaka. Preko tih redaka i stupaca zbrajaju se svi pozitivni terminali u nizu. Za svaki redak postoji jedan zajednički pozitivni terminal za svih 8 LED u tom redu. To je prikazano na donjoj slici,

Dakle, za 8 redaka imamo 8 zajedničkih pozitivnih terminala. Uzmimo u obzir prvi red, kao što se vidi na slici, 8 LED-a od D57 do D64 imaju zajednički pozitivni priključak i označene su s 'POZITIV0'. Sada ako želimo svijetliti jednu ili sve LED diode u prvom REDU matrice, tada bismo trebali napajati PIN0 LED matrice. Isto tako, ako želimo svijetliti bilo koju LED (ili sve) u bilo kojem REDU, tada moramo napajati odgovarajući zajednički pozitivni priključni pin tog odgovarajućeg retka.
To još nije gotovo i samo ostavljanje MATRIX ROWS-a s pozitivnom opskrbom neće donijeti ništa. Moramo uzemljiti negative LED-a da bi ih zasvijetlili. Dakle, u 8x8 LED matrici, svi negativni terminali LED-a u bilo kojem stupcu okupljeni su u osam zajedničkih negativnih terminala, kao što su svi negativni terminali u prvom stupcu povezani zajedno s PIN-A1 (NEGATIVE7). To je prikazano na donjoj slici:

Treba obratiti pažnju na ove igle dok lemite LED na Perfboard.
Ako trebamo uzemljiti bilo koju LED diodu u prvom stupcu, uzemljit ćemo PIN-A1 (NEGATIVNI7) MATRICE, a on će uzemljiti sve LED diode u prvom stupcu. Isti postupak vrijedi za svih ostalih sedam uobičajenih negativnih stupaca.
Od sada znate kako djeluju pozitivni i uobičajeni negativni. Sastavimo ih kako bismo vidjeli kako rade zajedno i konačni zaslon kruga za pomicanje 8x8 LED matrice izgledat će ovako:

Vožnja 8x8 LED matricom pomoću multipleksiranja:
Recimo sada da želimo uključiti LED57, onda moramo napajati PIN0 UNO-a i uzemljiti PIN-8 UNO-a. Sada da bismo uključili i LED57 i LED50, trebamo napajati PIN0, PIN1 i uzemljiti PIN8, PIN9. Ali to neće uključiti samo D57, D50, već i D49, D58. Da bismo to izbjegli, koristimo tehniku zvanu Multiplexing. Već smo detaljno razgovarali o ovoj Multiplex tehnici u 8x8 LED matrici; prođite kroz taj članak za detaljno objašnjenje. Ovdje ukratko objašnjavamo Multipleksiranje.
Ljudsko oko ne može uhvatiti frekvenciju veću od 30 HZ. To jest ako se LED neprekidno UKLJUČUJE I ISKLJUČUJE brzinom od 30 HZ ili više. Oko vidi LED kao neprekidno UKLJUČENU. Međutim, to nije slučaj i LED će se zapravo neprestano paliti i gasiti. Ova se tehnika naziva Multiplexing.
Recimo, na primjer, želimo uključiti samo LED57 i LED50 bez uključivanja D49 i D58. Trik je u tome što ćemo prvo napajati prvi red kako bi se uključio LED57 i pričekao 1mSEC, a zatim ćemo ga isključiti. Tada ćemo osigurati napajanje drugog reda za uključivanje LED50 i pričekati 1mSEC, a zatim ćemo ga isključiti. Ciklus kontinuirano prolazi s visokim frekvencijama i LED57 i LED50 će se brzo paliti i gasiti, a čini se da će obje LED diode neprestano biti UKLJUČENE za naše oko. Znači da napajamo samo jedan po jedan red, uklanjajući šanse za uključivanje drugih LED dioda u drugim redovima. Ovom tehnikom ćemo prikazati sve likove.
Postoji i biblioteka LedControlMS.h da se pobrine za svu ovu složenost multipleksiranja, gdje trebate samo unijeti znak ili broj koji želite ispisati na LED matricu, za više detalja provjerite ovu Arduino LED matricu s projektom MAX7219.
Objašnjenje programiranja:
U našem Kodeksu napisali smo decimalnu vrijednost za svaki znak i programirali te vrijednosti u Arduino. Program je napisao da te vrijednosti pomiče u sljedeći redak svakih 0,2 sekunde, to će se smatrati pomicanjem znakova prema gore, vrlo je jednostavno.
Da biste promijenili znakove koji će se prikazati, samo zamijenite vrijednost u polju char ALPHA prema vrijednostima znakova danim u nastavku, 24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
Kao ako želite prikazati DAD-a na LED matrici, prvo zamijenite vrijednosti znakova u polju char ALPHA stavljanjem vrijednosti za znakove D, A i D s gornjeg popisa:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
Ukupne vrijednosti su sada 5 * 10 = 50 vrijednosti, dakle
Zamijeni, za (int x = 0; x <142; x ++) // 150-8 (za zaustavljanje prelijevanja) {…….. Sa, za (int x = 0; x <42; x ++) // 50-8 (da se zaustavi prelijevanje) {……..
Dakle, samo trebate promijeniti broj.
Ovime ste završili programiranje i sada možete pomicati bilo koji tekst na LED matrici 8x8, provjeriti puni kod dolje s demonstracijskim videom.
