I denne opplæringen skal vi designe en 8x8 LED Matrix Scrolling Display med Arduino Uno, som vil vise rullealfabet.
8x8 LED-matrise inneholder 64 lysdioder (lysemitterende dioder) som er ordnet i form av en matrise, derav navnet LED-matrise. Vi skal lage denne matrisen ved å lodde disse 64 lysdiodene på perfboard eller DOT PCB. LED-lampene kan ha hvilken som helst farge, velg de som er tilgjengelige hos deg. Deretter vil vi skrive et program for Arduino for å kontrollere disse 64 LED-matriser. I henhold til programmet driver UNO passende lysdioder for å vise tegn på rullende måte.
Nødvendige komponenter:
- Arduino Uno
- 64 lysdioder
- Perfboard med andre loddeverktøy
- 1KΩ motstand (8 deler)
- Strømforsyning (5v)
Krets og arbeidsforklaring:
Det er 64 lysdioder ordnet i matriseform. Så vi har 8 kolonner og 8 rader. Over disse radene og kolonnene blir alle de positive terminalene på rad samlet. For hver rad er det en felles positiv terminal for alle 8 lysdioder i den raden. Det er vist i figuren nedenfor,
Så for 8 rader har vi 8 vanlige positive terminaler. Tenk på den første raden, som vist i figuren, 8 lysdioder fra D57 til D64 har en felles positiv terminal og er betegnet med 'POSITIVE0'. Nå hvis vi vil gløde en eller alle lysdioder i den første raden av matrisen, så bør vi drive PIN0-en til LED-matrisen. På samme måte, hvis vi ønsker å gløde en hvilken som helst LED (eller alle) i en hvilken som helst RAD, må vi strømme den tilsvarende Common Positive Terminal Pin for den respektive raden.
Dette er ikke over ennå, og bare å la MATRIX ROWS med positiv forsyning vil ikke gi noe. Vi må jorde LED-negativene for å gløde dem. Så i 8x8 LED-matrise samles alle negative terminaler på LED-ene i en hvilken som helst kolonne for å danne åtte vanlige negative terminaler, som alle de negative terminalene i første kolonne er koblet sammen til PIN-A1 (NEGATIVE7). Dette er vist i figuren nedenfor:
Man bør være oppmerksom på disse pinnene mens man lodder lysdiodene på Perfboard.
Nå hvis vi trenger å jorde noen LED i den første kolonnen, vil vi jorde PIN-A1 (NEGATIVE7) i MATRIX, og den vil jorde alle LEDene i første kolonne. Den samme prosessen gjelder for alle de andre syv vanlige negative kolonnene.
Siden nå vet du hvordan Common Positive og Common Negative fungerer. La oss sette dem sammen for å se hvordan de fungerer sammen, og den endelige Circuit for Scrolling 8x8 LED Matrix-skjermen vil se slik ut:
Kjører 8x8 LED-matrise ved bruk av multipleksing:
La oss si at vi vil slå på LED57, så må vi slå PIN0 på UNO og jorde PIN-8 til UNO. Nå for å slå på både LED57 og LED50, må vi slå på PIN0, PIN1 og jorde PIN8, PIN9. Men å gjøre det vil ikke bare slå på D57, D50, men også D49, D58. For å unngå at vi bruker en teknikk som kalles Multiplexing. Vi har allerede diskutert denne Multiplex Technique i 8x8 LED Matrix i detalj; gå gjennom den artikkelen for detaljert forklaring. Her forklarer vi Multiplexing kort.
Det menneskelige øye kan ikke fange en frekvens på mer enn 30 Hz. Det vil si hvis en LED lyser kontinuerlig PÅ og AV med en hastighet på 30 Hz eller mer. Øyet ser på LED-lampen som kontinuerlig PÅ. Dette er imidlertid ikke tilfelle, og LED vil faktisk slå seg på og av konstant. Denne teknikken kalles Multiplexing.
La oss for eksempel si at vi bare vil slå på LED57 og LED50 uten å slå på D49 og D58. Trikset er at vi først vil gi strøm til første rad for å slå på LED57 og vente på 1mSEC, og deretter vil vi slå den AV. Deretter vil vi gi strøm til andre rad for å slå på LED50 og vente på 1mSEC og deretter slå den AV. Syklusen går kontinuerlig med høy frekvens, og LED57 og LED50 vil slå seg av og på raskt, og begge lysdiodene ser ut til å være kontinuerlig PÅ for øyet. Betyr at vi bare gir strøm til den ene raden om gangen, og eliminerer sjansene for å slå på andre lysdioder i andre rader. Vi vil bruke denne teknikken til å vise alle tegn.
Det er også et bibliotek som heter LedControlMS.h for å ta vare på all denne kompleksiteten av multiplexing, der du bare trenger å skrive inn tegnet eller nummeret du vil skrive ut på LED-matrise, sjekk denne Arduino LED-matrisen med MAX7219-prosjektet for mer detaljer.
Programmeringsforklaring:
I koden vår har vi skrevet desimalverdi for hvert tegn og programmert disse verdiene i Arduino. Programmet har skrevet for å flytte disse verdiene til neste rad for hvert 0,2 sekund, dette vil bli sett på som å rulle tegn oppover, det er veldig enkelt.
For å endre tegnene som skal vises, er det bare å erstatte verdien i Char-ALPHA- arrayet i henhold til tegnverdiene gitt nedenfor, 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, 12108,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,99107,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
Som om du vil vise DAD på LED-matrisen, bytt først ut tegnverdiene i ALPHA- arrayet med char ved å sette verdier for tegn D, A og D fra listen ovenfor:
røye 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};
Totale verdier er nå 5 * 10 = 50 verdier, altså
Erstatt, for (int x = 0; x <142; x ++) // 150-8 (for å stoppe overløp) {…….. Med, for (int x = 0; x <42; x ++) // 50-8 (for å stoppe overløp) {……..
Så du trenger bare å endre nummeret.
Med denne har du gjort programmering og nå kan du Bla enhver tekst på 8x8 LED Matrix, sjekk Full koden nedenfor med en demonstrasjon video.