Šioje sesijoje mes suprojektuosime 8x8 LED ekraną su 8x8 LED matrica ir ATmega8 mikrovaldikliu, kuris gali rodyti abėcėles ar pavadinimus. Tipinė 8x8 LED matrica yra parodyta žemiau:
8x8 LED matricoje yra 64 LED (šviesos diodai), kurie yra išdėstyti matricos pavidalu, taigi ir pavadinimas LED matrica. Šias matricas galima padaryti apjungiant 64 šviesos diodus; tačiau šis procesas užima daug laiko. Dabar kiekvieną dieną jie yra kompaktiški, kaip parodyta paveiksle. Šie kompaktiški moduliai yra skirtingų dydžių ir įvairių spalvų. Galima juos pasirinkti patogumui.
Modulio kaina yra tokia pati kaip 64 LED, taigi mėgėjams tai lengviausia dirbti. Modulio PIN konfigūracija yra tokia, kaip parodyta paveiksle. PIN kodai turi būti tiksliai nurodyti taip, kaip parodyta paveikslėlyje, kad būtų išvengta klaidų. Aprašyme išsamiai aptarsime modulio vidinės grandinės konfigūraciją.
Komponentai
Aparatūra: ATMEGA8, maitinimo šaltinis (5v), AVR-ISP PROGRAMMERIS, 100 uF kondensatorius (sujungtas per maitinimo šaltinį), 1KΩ rezistorius (8 vnt.).
Programinė įranga: „ Atmel studio 6.1“, „progisp“ arba „flash magic“.
Grandinės schema ir darbas
Jungtys, atliekamos tarp ATMEGA8 ir LED matricos modulio, parodytos žemiau esančiame paveiksle.
LED modulio PORTD, PIN0 ------------------ PIN13
LED modulio PORTD, PIN1 ------------------ PIN03
LED modulio PORTD, PIN2 ------------------ PIN04
LED modulio PORTD, PIN3 ------------------ PIN10
LED modulio PORTD, PIN4 ------------------ PIN06
LED modulio PORTD, PIN5 ------------------ PIN11
LED modulio PORTD, PIN6 ------------------ PIN15
LED modulio PORTD, PIN7 ------------------ PIN16
PORTB, PIN0 ------------------ LED modulio PIN09
LED modulio PORTB, PIN1 ------------------ PIN14
PORTB, PIN2 ------------------ LED modulio PIN08
PORTB, PIN3 ------------------ LED modulio PIN12
LED modulio PORTC, PIN0 ------------------ PIN01
PORTC, PIN1 ------------------ LED modulio PIN07
PORTC, PIN2 ------------------ LED modulio PIN02
PORTC, PIN3 ------------------ LED modulio PIN05
Grandinės schema 8x8 LED matricos ekrane yra parodyta žemiau paveiksle.
Yra 64 šviesos diodai, išdėstyti matricos forma. Taigi mes turime 8 stulpelius ir 8 eilutes, kaip parodyta paveiksle. Per tas eilutes ir stulpelius visi teigiami terminalai iš eilės yra sujungti. Kiekvienoje eilutėje yra vienas bendras teigiamas gnybtas visiems 8 tos eilutės šviesos diodams. Tai parodyta žemiau esančiame paveiksle,
Taigi 8 eilutėse turime 8 bendrus teigiamus terminalus, apsvarstykite pirmąją eilutę. Kaip matyti iš paveikslėlio, šviesos diodai nuo D1 iki D8 turi bendrą teigiamą gnybtą ir yra išvedami iš LED modulio kaip PIN9.
Reikėtų pastebėti, kad visi įprasti eilučių teigiami elementai nėra išvedami iš LED modulio tvarkingai. Visais atvejais yra labai netaisyklingi bendri terminalai. Reikėtų to nepamiršti jungiant terminalą.
Tarkime, jei norime, kad vienas ar visi šviesos diodai pirmoje matricos eilutėje būtų įjungti, tada turėtume įjungti LED MATRIX MODULE PIN9, o ne PIN0.
Tarkime, jei norime, kad būtų įjungtas vienas ar visi šviesos diodai trečioje matricos eilutėje, tada turėtume įjungti LED MATRIX MODULE PIN8, o ne PIN2.
Taigi, kai norime, kad vienas ar visi EILUTĖS šviesos diodai būtų įjungti, atitinkamas LED modulio kaištis bus maitinamas.
Tai dar nesibaigė, tiesiog palikę galią ROWS nieko neduoda. Mes turime įžeminti kitą galą. Aptarsime toliau.
Šiuo atveju mes ignoruojame bendras teigiamas eilutes ir sutelkiame dėmesį į bendrus neigiamus stulpelius.
Taigi tame modulyje visi neigiami pirmojo stulpelio gnybtai sujungiami į PIN13. Tai parodyta žemiau esančiame paveikslėlyje.
Čia taip pat yra modulio PIN OUTAGE pažeidimų. Pirmojo stulpelio šviesos diodų neigiamas rodomas PIN13. Antrojo stulpelio šviesos diodai, neigiami, rodomi PIN3.
Reikėtų atkreipti dėmesį į kaiščius jungiantis. Dabar, jei kuris nors vienas ar visi pirmojo stulpelio šviesos diodai turi būti įžeminti, įžeminti MATRIX MODULE PIN13. Tokiu būdu pereinama prie visų kitų septynių bendrų neigiamų stulpelių. Sudėjus abu atvejus, susiduriame su grandine, kaip parodyta žemiau,
Aukščiau esanti grandinė yra visa LED modulio vidinė schema. Tarkime, jei norime įjungti šviesos diodą D10 matricoje, turime įjungti modulio PIN14 ir įžeminti modulio PIN3. Tokiu būdu D10 įsijungs. Tai parodyta paveikslėlyje žemiau. Tai turėtų būti pirmasis patikrinimas, ar MATRIX žino viską tvarkingai.
Tarkime, jei norime įjungti D1, turime įjungti matricos PIN9 ir įžeminti PIN13. Su tuo LED D1 šviečia. Dabartinė šio atvejo kryptis parodyta žemiau esančiame paveikslėlyje.
Dabar kalbėkime apie keblią dalį: norime vienu metu įjungti ir D1, ir D10. Taigi mes įjungiame tiek PIN9, tiek PIN14, tiek įžeminame PIN13, PIN3. Su tuo mes turėsime įjungtus D2 ir D9, taip pat D1 ir D10. Taip yra todėl, kad jie naudojasi bendrais terminalais. Taigi, jei norime pasukti šviesos diodus išilgai įstrižainės, būsime priversti įjungti visus šviesos diodus. Tai parodyta žemiau esančiame paveikslėlyje.
Taigi, norėdami pašalinti šią problemą, vienu metu įjungsime tik vieną. Pasakykite, kai t = 0m SEC, LED D1 yra įjungtas. Kai t = 1m SEC, šviesos diodas D1 sureguliuojamas ir LED D2 įjungiamas. Vėlgi, kai t = 2 m SEC, LED D2 išsijungia ir LED D1 įjungiamas. Tai tęsiasi.
Dabar apgaulė yra ta, kad žmogaus akis negali užfiksuoti didesnio nei 30 HZ dažnio. Tai yra, jei šviesos diodas nuolat įsijungia ir išsijungia 30 Hz ar didesniu greičiu. Akis mato šviesos diodą nuolat įjungtą. Tačiau taip nėra. Šviesos diodas nuolat įsijungs ir išsijungs. Ši technika vadinama multipleksavimu.
Naudodami multipleksavimą, vienu metu pasuksime tik vieną eilę, o aplink 8 eiles nuolat važiuosime dviračiu. Tai vizualizuota kaip visiškai įjungta matrica plika akimi.
Dabar sakykite, kad matricoje norime rodyti „A“.
Kaip sakyta, mes įjungsime vieną eilutę akimirksniu, Kai t = 0m SEC, PIN09 nustatomas HIGH (kiti ROW kaiščiai šiuo metu yra LOW), PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra aukšti)
Kai t = 1m SEC, PIN14 nustatomas HIGH (kiti ROW kaiščiai šiuo metu yra LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra AUKŠTI)
Kai t = 2m SEC, PIN08 nustatoma HIGH (kiti ROW kaiščiai šiuo metu yra LOW), PIN13, PIN3, PIN15, PIN16 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra aukšti)
Kai t = 3m SEC, PIN12 nustatomas HIGH (kiti ROW kaiščiai šiuo metu yra LOW), PIN13, PIN3, PIN15, PIN16 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra aukšti)
Kai t = 4m SEC, PIN01 šiuo metu nustatomas HIGH (kiti ROW kaiščiai šiuo metu yra LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra AUKŠTI)
Kai t = 5m SEC, PIN07 šiuo metu nustatomas HIGH (kiti ROW kaiščiai šiuo metu yra LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra AUKŠTI)
Kai t = 6m SEC, PIN02 nustatomas HIGH (šiuo metu kiti ROW kaiščiai yra LOW), PIN13, PIN3, PIN15, PIN16 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra AUKŠTI)
Kai t = 7m SEC, PIN05 nustatoma HIGH (kiti ROW kaiščiai šiuo metu yra LOW), PIN13, PIN3, PIN15, PIN16 yra įžeminti (kiti COLUMN kaiščiai šiuo metu yra aukšti)
Tokiu greičiu ekranas bus matomas kaip „A“ simbolis. Tai parodyta paveiksle.
Taip ekrane rodomi visi simboliai. Tinkamai prijungus grandinę, kaip parodyta schemoje. Mes galime tiesiogiai duoti valdikliui nurodymus, kaip atlikti tankinimą tvarkingai, kad vardas būtų rodomas.