În această sesiune vom proiecta un afișaj LED 8x8 cu matrice LED 8x8 și microcontroler ATmega8, care poate afișa alfabete sau nume. O matrice tipică de leduri 8x8 este prezentată mai jos:
O matrice LED 8x8 conține 64 LED (diode emițătoare de lumină) care sunt aranjate sub forma unei matrice, de unde și denumirea de matrice LED. Aceste matrice pot fi realizate prin circuitul a 64 de LED-uri; totuși acest proces consumă mult timp. Acum, pe zi, acestea sunt disponibile în forme compacte, așa cum se arată în figură. Aceste module compacte sunt disponibile în diferite dimensiuni și multe culori. Le puteți alege în funcție de comoditate.
Costul modulului este același cu costul a 64 de LED-uri, deci pentru un pasionat acest lucru este cel mai ușor de lucrat. Configurația PIN a modulului este așa cum se arată în figură. Codurile PIN trebuie să fie numerice exact așa cum se arată în imagine pentru a evita erorile. Vom discuta despre configurația circuitului intern al modulului în detaliu în descriere.
Componente
Hardware: ATMEGA8, sursă de alimentare (5v), PROGRAMATOR AVR-ISP, condensator 100 uF (conectat la sursa de alimentare), rezistor 1KΩ (8 bucăți).
Software: Atmel studio 6.1, progisp sau flash magic.
Diagrama circuitului și funcționarea
Conexiunile care se fac între ATMEGA8 și modulul cu matrice LED sunt prezentate în figura de mai jos.
PORTD, PIN0 ------------------ PIN13 al modulului LED
PORTD, PIN1 ------------------ PIN03 al modulului LED
PORTD, PIN2 ------------------ PIN04 al modulului LED
PORTD, PIN3 ------------------ PIN10 al modulului LED
PORTD, PIN4 ------------------ PIN06 al modulului LED
PORTD, PIN5 ------------------ PIN11 al modulului LED
PORTD, PIN6 ------------------ PIN15 al modulului LED
PORTD, PIN7 ------------------ PIN16 al modulului LED
PORTB, PIN0 ------------------ PIN09 al modulului LED
PORTB, PIN1 ------------------ PIN14 al modulului LED
PORTB, PIN2 ------------------ PIN08 al modulului LED
PORTB, PIN3 ------------------ PIN12 al modulului LED
PORTC, PIN0 ------------------ PIN01 al modulului LED
PORTC, PIN1 ------------------ PIN07 al modulului LED
PORTC, PIN2 ------------------ PIN02 al modulului LED
PORTC, PIN3 ------------------ PIN05de modul LED
Schema circuitului afișajului matricial LED 8x8 este prezentată în figura de mai jos.
Există 64 de LED-uri dispuse într-o formă matricială. Deci avem 8 coloane și 8 rânduri așa cum se arată în figură. Peste acele rânduri și coloane, toate terminalele pozitive dintr-un rând sunt reunite. Pentru fiecare rând, există un terminal pozitiv comun pentru toate cele 8 LED-uri din acel rând. Este prezentat în figura de mai jos,
Deci, pentru 8 rânduri avem 8 terminale pozitive comune, luați în considerare primul rând. După cum se vede în imagine, LED-urile de la D1 la D8 au un terminal pozitiv comun și sunt scoase din MODULUL LED ca PIN9.
Ar trebui să se vadă că toate pozitivele comune ale rândurilor nu sunt scoase din modulul LED în mod ordonat. Există foarte multe nereguli la terminalele comune în fiecare caz. Trebuie avut în vedere acest lucru în timp ce conectați terminalul.
Spuneți dacă dorim ca unul sau toate LED-urile din primul RÂND al matricei să fie aprinse, atunci ar trebui să alimentăm PIN9 al MODULULUI MATRIX LED, nu PIN0.
Spuneți dacă dorim ca unul sau toate LED-urile din cel de-al treilea rând al matricei să fie aprins, atunci ar trebui să alimentăm PIN8 al MODULULUI MATRIX LED nu PIN2.
Deci, ori de câte ori dorim ca unul sau toate LED-urile dintr-un rând să fie aprinse, pinul corespunzător al MODULULUI LED să fie alimentat.
Acest lucru nu s-a terminat încă, doar lăsând puterea ROWS nu produce nimic. Trebuie să punem la sol celălalt capăt. O vom discuta mai jos.
Acum, pentru acest caz, ignorăm rândurile pozitive comune și ne concentrăm pe coloanele negative comune.
Deci, în acel modul, toate terminalele negative ale primei coloane sunt reunite la PIN13. Acest lucru este prezentat în figura de mai jos.
Aici există, de asemenea, o neregulă în PIN UUTAGE al modulului. Primele LED-uri ale coloanei negative negative sunt afișate la PIN13. Cea de-a doua coloană negativă comună este afișată la PIN3.
Ar trebui să acordați atenție pinilor în timp ce vă conectați. Acum, dacă vreunul sau toate LED-urile din prima coloană trebuie să fie împământate, PIN13 al MODULULUI MATRIX trebuie să fie împământat. În acest fel merge toate la celelalte șapte coloane negative comune. Când ambele cazuri sunt puse împreună, întâlnim un circuit așa cum se arată mai jos,
Circuitul de mai sus este schema internă completă a MODULULUI LED. Spuneți dacă dorim să aprindem LED-ul D10 în matrice, trebuie să alimentăm PIN14-ul modulului și să punem la masă PIN3-ul pe modul. Cu aceasta, D10 va porni. Acest lucru este prezentat în figura de mai jos. Ar trebui să verificați mai întâi ca MATRIX să știe totul în ordine.
Spuneți dacă dorim să pornim D1, trebuie să alimentăm PIN9 al matricei și să punem la sol PIN13. Cu acel LED D1 va străluci. Direcția curentă pentru acest caz este prezentată în figura de mai jos.
Acum, pentru partea dificilă, considerați că dorim să pornim atât D1, cât și D10 la un moment dat. Așadar, alimentăm atât PIN9, PIN14, cât și împământarea ambelor PIN13, PIN3. Cu aceasta vom avea D2 și D9 ON împreună cu D1 și D10. Este pentru că împărtășesc terminale comune. Deci, dacă dorim să rotim LED-uri de-a lungul diagonalei, vom fi obligați să aprindem toate LED-urile de-a lungul drumului. Acest lucru este prezentat în figura de mai jos.
Deci, pentru a elimina această problemă, vom porni un singur led pe rând. Spuneți la t = 0m SEC, LED-ul D1 este acordat. La t = 1m SEC, LED-ul D1 este deconectat și LED-ul D2 este aprins. Din nou la t = 2 m SEC, LED-ul D2 este stins și LED-ul D1 este aprins. Acest lucru continuă.
Acum trucul este că ochiul uman nu poate capta o frecvență mai mare de 30 HZ. Asta dacă un LED se aprinde și se stinge continuu la o rată de 30HZ sau mai mult. Ochiul vede LED-ul continuu aprins. Cu toate acestea, acest lucru nu este cazul. LED-ul se aprinde și se stinge constant. Această tehnică se numește multiplexare.
Folosind multiplexarea, vom întoarce doar un rând la rând și vom circula continuu în jurul celor 8 rânduri. Aceasta este vizualizată ca o matrice pornită complet cu ochiul liber.
Acum spuneți că vrem să afișăm „A” pe matrice.
După cum am spus, vom porni un rând într-o clipă, La t = 0m SEC, PIN09 este setat HIGH (alți pini ROW sunt LOW în acest moment) în acest moment, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 sunt împământați (alți pini COLUMN sunt HIGH la acest moment)
La t = 1m SEC, PIN14 este setat HIGH (alți pini ROW sunt LOW în acest moment) în acest moment, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 sunt împământați (alți pini COLUMN sunt HIGH la acest moment)
La t = 2m SEC, PIN08 este setat HIGH (alți pini ROW sunt LOW în acest moment) în acest moment, PIN13, PIN3, PIN15, PIN16 sunt împământați (alți pini COLUMN sunt HIGH la acest moment)
La t = 3m SEC, PIN12 este setat HIGH (alți pini ROW sunt LOW în acest moment) în acest moment, PIN13, PIN3, PIN15, PIN16 sunt împământați (alți pini COLUMN sunt HIGH la acest moment)
La t = 4m SEC, PIN01 este setat HIGH (alte pini ROW sunt LOW în acest moment) în acest moment, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 sunt împământate (alte pini COLUMN sunt HIGH la acest moment)
La t = 5m SEC, PIN07 este setat HIGH (alți pini ROW sunt LOW în acest moment) în acest moment, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 sunt conectați la pământ (alți pini COLUMN sunt HIGH la acest moment)
La t = 6m SEC, PIN02 este setat HIGH (alți pini ROW sunt LOW în acest moment) în acest moment, PIN13, PIN3, PIN15, PIN16 sunt împământați (alți pini COLUMN sunt HIGH la acest moment)
La t = 7m SEC, PIN05 este setat HIGH (alți pini ROW sunt LOW în acest moment) în acest moment, PIN13, PIN3, PIN15, PIN16 sunt împământați (alți pini COLUMN sunt HIGH la acest moment)
La această viteză, afișajul va fi văzut ca afișând continuu caracterul „A”. Este prezentat în figură.
Acesta este modul în care sunt afișate toate caracterele. După conectarea corectă a circuitului, așa cum se arată în schema circuitului. Putem da directorului instrucțiuni pentru a efectua multiplexarea în mod ordonat pentru ca numele să fie afișat.