Šajā sesijā mēs izstrādāsim 8x8 LED displeju ar 8x8 LED matricu un ATmega8 mikrokontrolleru, kas var parādīt alfabētus vai nosaukumus. Zemāk parādīta tipiska 8x8 LED matrica:
8x8 LED matricā ir 64 LED (gaismu izstarojošās diodes), kas ir sakārtotas matricas formā, līdz ar to arī nosaukums LED matrica. Šīs matricas var izgatavot, ieslēdzot 64 gaismas diodes; tomēr šis process ir laikietilpīgs. Tagad dienā tie ir pieejami kompaktās formās, kā parādīts attēlā. Šie kompaktie moduļi ir pieejami dažādos izmēros un daudzās krāsās. Tos var izvēlēties pēc ērtības.
Moduļa izmaksas ir vienādas ar 64 LED izmaksām, tāpēc hobijam pie tā ir visvieglāk strādāt. Moduļa PIN konfigurācija ir parādīta attēlā. PIN kodu numuram jābūt tieši tādam, kā parādīts attēlā, lai izvairītos no kļūdām. Aprakstā detalizēti apspriedīsim moduļa iekšējās ķēdes konfigurāciju.
Komponenti
Aparatūra: ATMEGA8, barošanas avots (5v), AVR-ISP PROGRAMMER, 100 uF kondensators (savienots pāri strāvas padevei), 1KΩ rezistors (8 gab.).
Programmatūra: Atmel studio 6.1, progisp vai flash magic.
Shēmas shēma un darbība
Savienojumi, kas tiek veikti starp ATMEGA8 un LED matricas moduli, parādīti zemāk redzamajā attēlā.
LED moduļa PORTD, PIN0 ------------------ PIN13
LED moduļa PORTD, PIN1 ------------------ PIN03
LED moduļa PORTD, PIN2 ------------------ PIN04
LED moduļa PORTD, PIN3 ------------------ PIN10
LED moduļa PORTD, PIN4 ------------------ PIN06
LED moduļa PORTD, PIN5 ------------------ PIN11
PORTD, PIN6 ------------------ LED moduļa PIN15
LED moduļa PORTD, PIN7 ------------------ PIN16
PORTB, LED0 ------------------ LED moduļa PIN09
PORTB, PIN1 ------------------ LED moduļa PIN14
PORTB, PIN2 ------------------ LED moduļa PIN08
PORTB, PIN3 ------------------ LED moduļa PIN12
LED moduļa PORTC, PIN0 ------------------ PIN01
PORTC, PIN1 ------------------ LED moduļa PIN07
PORTC, PIN2 ------------------ LED moduļa PIN02
PORTC, PIN3 ------------------ LED moduļa PIN05
Circuit diagramma 8x8 LED matricas displejs ir parādīts zemāk attēlā.
Ir 64 gaismas diodes, kas sakārtotas matricas formā. Tātad mums ir 8 kolonnas un 8 rindas, kā parādīts attēlā. Šajās rindās un kolonnās visi pozitīvie spailes pēc kārtas tiek apvienoti. Katrai rindai ir viens kopīgs pozitīvs termināls visiem 8 šajā rindā esošajiem LED. Tas parādīts zemāk redzamajā attēlā,
Tātad 8 rindās mums ir 8 kopīgi pozitīvi termināli, apsveriet pirmo rindu. Kā redzams attēlā, gaismas diodēm no D1 līdz D8 ir kopīgs pozitīvs spailes, un tās tiek izgaismotas no LED MODUĻA kā PIN9.
Jāskatās, ka visi kopējie rindu pozitīvie elementi netiek kārtīgi izcelti no LED MODUĻA. Katrā gadījumā kopējie termināļi ir ļoti neatbilstoši. Pievienojot termināli, tas jāpatur prātā.
Sakiet, ja mēs vēlamies, lai kāds no matricas pirmajiem ROW būtu ieslēgts vai visi gaismas diodes, tad mums vajadzētu ieslēgt LED MATRIX MODULE PIN9, nevis PIN0.
Pieņemsim, ka mēs gribam, lai kāds no matricas trešās rindas gaismas diodēm vai visām tām iedegtos, tad mums vajadzētu ieslēgt LED matricas moduļa PIN8, nevis PIN2.
Tātad, kad mēs vēlamies, lai viena vai visas LED rindā būtu ieslēgtas, attiecīgā LED MODUĻA tapa ir jāiedarbina.
Tas vēl nav beidzies, vienkārši atstājot spēku ROWS neko nedod. Mums jāsamazina otrs gals. Mēs to apspriedīsim tālāk.
Tagad šajā gadījumā mēs ignorējam kopējās pozitīvās rindas un koncentrējamies uz kopīgām negatīvām kolonnām.
Tātad šajā modulī visi pirmās kolonnas negatīvie spailes tiek apvienoti PIN13. Tas parādīts zemāk redzamajā attēlā.
Šeit ir arī moduļa PIN OUTAGE pārkāpumi. Pirmās kolonnas gaismas diožu kopējais negatīvais tiek parādīts PIN13. Otrās kolonnas gaismas diožu kopējais negatīvais tiek parādīts PIN3.
Savienojot, jāpievērš uzmanība tapām. Ja kāds vai visi pirmajā kolonnā esošie gaismas diodes ir jāzemē, iezemējas MATRIX MODULE PIN13. Tādā veidā pāriet uz visām septiņām citām kopīgajām negatīvajām slejām. Kad abi gadījumi ir salikti kopā, mēs sastopamies ar ķēdi, kā parādīts zemāk,
Iepriekš minētā shēma ir pilnīga LED MODUĻA iekšējā shēma. Sakiet, ja mēs vēlamies matricā ieslēgt LED D10, mums ir jāiedarbina moduļa PIN14 un jāmaina modulis PIN3. Ar šo D10 ieslēgsies. Tas parādīts zemāk redzamajā attēlā. Vispirms vajadzētu pārbaudīt, vai MATRIX zina visu kārtībā.
Pieņemsim, ka mēs vēlamies ieslēgt D1, mums jāaktivizē matricas PIN9 un jāmaina PIN13. Ar šo gaismas diode D1 mirgos. Pašreizējais virziens šajā gadījumā ir parādīts zemāk redzamajā attēlā.
Apsveriet, ka tagad mēs vēlamies ieslēgt gan D1, gan D10. Tātad mēs darbinām gan PIN9, PIN14, gan iezemējam gan PIN13, PIN3. Līdz ar to mums būs D2 un D9 ON kopā ar D1 un D10. Tas ir tāpēc, ka viņiem ir kopīgi termināļi. Tātad, ja mēs vēlamies ieslēgt gaismas diodes pa diagonāli, mēs būsim spiesti ieslēgt visus gaismas diodes pa ceļam. Tas parādīts zemāk redzamajā attēlā.
Tātad, lai novērstu šo problēmu, mēs vienlaikus ieslēgsim tikai vienu vadīto. Sakiet pie t = 0m SEC, gaismas diode D1 ir ieslēgta. Ja t = 1m SEC, LED D1 tiek noregulēts un LED D2 tiek ieslēgts. Atkal pie t = 2 m SEC gaismas diode D2 tiek izslēgta un LED D1 ir ieslēgta. Tas turpinās.
Tagad triks ir tāds, ka cilvēka acs nevar uztvert frekvenci, kas lielāka par 30 HZ. Tas ir, ja gaismas diode nepārtraukti ieslēdzas un izslēdzas ar ātrumu 30 Hz vai vairāk. Acs redz gaismas diode kā nepārtraukti ieslēgta. Tomēr tas tā nav. Gaismas diode nepārtraukti ieslēgsies un izslēgsies. Šo tehniku sauc par multipleksēšanu.
Izmantojot multipleksēšanu, mēs vienlaikus pagriezīsim tikai vienu rindu, un ap 8 rindām nepārtraukti pārvietosies ar velosipēdu. Tas tika vizualizēts kā pilnīgi ieslēgta matrica ar neapbruņotu aci.
Tagad sakiet, ka mēs vēlamies matricā parādīt “A”.
Kā teicām, vienā mirklī ieslēgsim vienu rindu, Kad t = 0m SEC, PIN09 iestatījums ir HIGH (citi ROW tapas šajā laikā ir LOW), PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 ir iezemēti (citi COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 1m SEC, PIN14 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS))
Kad t = 2m SEC, PIN08 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 3m SEC, PIN12 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 4m SEC, PIN01 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS))
Kad t = 5m SEC, PIN07 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šajā laikā ir AUGSTAS))
Kad t = 6m SEC, PIN02 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 7m SEC, PIN05 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Ar šo ātrumu displejs tiks uzskatīts par nepārtrauktu “A” rakstzīmi. Tas parādīts attēlā.
Šādi displejā tiek parādītas visas rakstzīmes. Pēc ķēdes pieslēgšanas pareizi, kā parādīts ķēdes shēmā. Mēs varam tieši dot kontrolierim norādījumus veikt multipleksēšanu, lai nosaukums tiktu parādīts pareizi.