I denne økten skal vi designe en 8x8 LED-skjerm med 8x8 LED-matrise og ATmega8-mikrokontroller, som kan vise alfabeter eller navn. En typisk 8x8 ledet matrise vises nedenfor:
En 8x8 LED-matrise inneholder 64 LED (lysemitterende dioder) som er ordnet i form av en matrise, derav navnet LED-matrise. Disse matrisene kan lages ved å kretse 64 lysdioder; den prosessen er imidlertid tidkrevende. Nå om dagen er de tilgjengelige i kompakte former som vist på figuren. Disse kompakte modulene er tilgjengelige i forskjellige størrelser og mange farger. Man kan velge dem på bekvemmelighet.
Kostnaden for modul er den samme som kostnaden for 64 LED, så for en hobbyist er dette enklest å jobbe med. PIN-konfigurasjonen til modulen er som vist i figuren. PIN-kodene skal være nøyaktig som vist på bildet for å unngå feil. Vi vil diskutere modulens interne kretskonfigurasjon i detalj i beskrivelsen.
Komponenter
Maskinvare: ATMEGA8, strømforsyning (5v), AVR-ISP PROGRAMMER, 100 uF kondensator (koblet over strømforsyning), 1KΩ motstand (8 deler).
Programvare: Atmel studio 6.1, progisp eller flash magi.
Kretsdiagram og arbeid
Forbindelsene som er gjort mellom ATMEGA8 og LED-matrisemodulen er vist i figuren nedenfor.
PORTD, PIN0 ------------------ PIN13 for LED-modulen
PORTD, PIN1 ------------------ PIN03 til LED-modulen
PORTD, PIN2 ------------------ PIN04 på LED-modulen
PORTD, PIN3 ------------------ PIN10 på LED-modulen
PORTD, PIN4 ------------------ PIN06 til LED-modulen
PORTD, PIN5 ------------------ PIN11 på LED-modulen
PORTD, PIN6 ------------------ PIN15 på LED-modulen
PORTD, PIN7 ------------------ PIN16 på LED-modulen
PORTB, PIN0 ------------------ PIN09 til LED-modulen
PORTB, PIN1 ------------------ PIN14 på LED-modulen
PORTB, PIN2 ------------------ PIN08 til LED-modulen
PORTB, PIN3 ------------------ PIN12 på LED-modulen
PORTC, PIN0 ------------------ PIN01 på LED-modulen
PORTC, PIN1 ------------------ PIN07 til LED-modulen
PORTC, PIN2 ------------------ PIN02 på LED-modulen
PORTC, PIN3 ------------------ PIN05 av LED-modul
Den kretsdiagram av LED 8x8 matrise skjerm er vist i figuren nedenfor.
Det er 64 LED ordnet i matriseform. Så vi har 8 kolonner og 8 rader som vist på figuren. 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 LED-er i den raden. Det er vist i figuren nedenfor,
Så for 8 rader har vi 8 vanlige positive terminaler, vurder den første raden. Som vist på bildet har lysdiodene fra D1 til D8 en felles positiv terminal og blir ført ut av LED-MODULEN som PIN9.
Det skal sees at alle de vanlige positive resultatene til rader ikke blir ført ut av LED-MODUL på ordnet måte. Det er veldig uregelmessigheter på vanlige terminaler i alle tilfeller. Man bør huske på dette når man kobler terminalen.
Si at hvis vi vil at en eller alle lysdioder i den første RADEN for matrisen skal være PÅ, så bør vi slå PIN9-en på LED-MATRIKSMODULEN ikke PIN0.
Si at hvis vi vil at en eller alle lysdiodene i den tredje RADEN for matrisen skal være PÅ, så bør vi slå PIN8-en på LED-MATRIKSMODULEN ikke PIN2.
Så når vi vil at en eller alle lysdioder i en RAD skal være PÅ, skal den tilsvarende pinnen på LED-MODULEN få strøm.
Dette er ikke over ennå ved å bare la kraften ROWS gi ingenting. Vi trenger å jorde den andre enden. Vi vil diskutere det nedenfor.
Nå for dette tilfellet ignorerer vi de vanlige positive radene og fokuserer på vanlige negative kolonner.
Så i den modulen blir alle de negative terminalene i første kolonne samlet til PIN13. Dette er vist i figuren nedenfor.
Også her er det uregelmessigheter i PIN OUTAGE av modulen. De første kolonnelampene som er vanlige negative, blir vist på PIN13. Den andre kolonnens LED-er, som er negative, kommer frem ved PIN3.
Man bør ta hensyn til pinnene mens man kobler til. Nå hvis noen eller alle lysdiodene i første kolonne skal jordes, skal PIN13 til MATRIX MODULE jordes. Denne veien går helt til de andre syv vanlige negative kolonnene. Når begge sakene er satt sammen, kommer vi over en krets som vist nedenfor,
Kretsen over er det komplette interne diagrammet for LED MODUL. Si at hvis vi vil slå på LED D10 i matrisen, må vi slå på PIN14 på modulen og jorde PIN3 på modulen. Med dette vil D10 slå seg PÅ. Dette er vist i figuren nedenfor. Dette bør være første sjekk for MATRIX å vite alt i orden.
Si at hvis vi vil slå på D1, må vi slå på PIN9 i matrisen og jorde PIN13. Med den lyser LED D1. Den nåværende retningen for dette tilfellet er vist i figuren nedenfor.
Nå for den vanskelige delen, vurder at vi vil slå på både D1 og D10 om gangen. Så vi driver både PIN9, PIN14 og jorder begge PIN13, PIN3. Med det vil vi ha D2 og D9 PÅ sammen med D1 og D10. Det er fordi de deler vanlige terminaler. Så hvis vi vil skru lysdioder langs diagonalen, vil vi bli tvunget til å slå på alle lysdiodene underveis. Dette er vist i figuren nedenfor.
Så for å eliminere dette problemet, vil vi bare slå på en ledning om gangen. Si på t = 0m SEC, LED D1 er innstilt PÅ. Ved t = 1m SEC er LED D1 innstilt AV og LED D2 slås PÅ. Igjen ved t = 2 m SEC slås LED D2 AV og LED D1 slås PÅ. Dette fortsetter.
Nå er trikset, 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. LED-lampen vil kontinuerlig slås PÅ og AV. Denne teknikken kalles multiplexing.
Ved å bruke multiplexing vil vi bare snu en rad om gangen, og det blir sykling kontinuerlig rundt de 8 radene. Dette visualiseres som en helt slått PÅ matrise for det blotte øye.
Si nå at vi vil vise "A" på matrisen.
Som sagt vil vi slå på en rad på et øyeblikk, Ved t = 0m SEC er PIN09 satt HIGH (andre ROW-pinner er LAV på dette tidspunktet) på dette tidspunktet, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 er jordet (andre COLUMN-pinner er HØY på dette tidspunktet)
Ved t = 1m SEC er PIN14 satt HIGH (andre ROW-pinner er LAV på dette tidspunktet) på dette tidspunktet, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 er jordet (andre COLUMN-pinner er HØY på dette tidspunktet)
Ved t = 2m SEC er PIN08 satt HIGH (andre ROW-pinner er LAV på dette tidspunktet) på dette tidspunktet, PIN13, PIN3, PIN15, PIN16 er jordet (andre COLUMN-pinner er HØY på dette tidspunktet)
Ved t = 3m SEC er PIN12 satt HIGH (andre ROW-pins er LAV på dette tidspunktet) på dette tidspunktet, PIN13, PIN3, PIN15, PIN16 er jordet (andre COLUMN-pins er HIGH på dette tidspunktet)
Ved t = 4m SEC er PIN01 satt HIGH (andre ROW-pinner er LAV på dette tidspunktet) på dette tidspunktet, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 er jordet (andre COLUMN-pinner er HØY på dette tidspunktet)
Ved t = 5m SEC er PIN07 satt HIGH (andre ROW-pinner er LAV på dette tidspunktet) på dette tidspunktet, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 er jordet (andre COLUMN-pinner er HØY på dette tidspunktet)
Ved t = 6m SEC er PIN02 satt HIGH (andre ROW-pins er LAV på dette tidspunktet) på dette tidspunktet, PIN13, PIN3, PIN15, PIN16 er jordet (andre COLUMN-pins er HIGH på dette tidspunktet)
Ved t = 7m SEC er PIN05 satt HIGH (andre ROW-pins er LAV på dette tidspunktet) på dette tidspunktet, PIN13, PIN3, PIN15, PIN16 er jordet (andre COLUMN-pins er HIGH på dette tidspunktet)
I denne hastigheten vil displayet bli sett på som kontinuerlig å vise “A” -tegnet. Det er vist i figur.
Slik vises alle tegnene på skjermen. Etter tilkobling av krets på riktig måte, som vist i kretsskjemaet. Vi kan direkte gi kontrolleren instruksjoner om å utføre multiplexing på en ordnet måte for navnet å vises.