Sisällysluettelo:
- Tavoitteet
- Kokemusta ja taitoja
- Vastuuvapauslauseke ja luotto
- Vaihe 1: Osat
- Osaluettelo
- Yleiset osat
- Tässä käytetyt erityiset osat
- Osia koskevia huomautuksia
- Vaihe 2: Matriisi
- Rakentamiseen liittyvät näkökohdat
- Matriisin rakentaminen
- Tärkeä
- Vaihe 3: Ohjauslaitteisto
- Ohjauslaitteiston rakentaminen
- Vaihe 4: Ohjelmisto
- Temppu
- Vaihtorekisterit: miten
- Näytön osoittaminen
- Ohjelmointi
- Toiminnassa
- Vaihe 5: Modulaariset käsitteet
- Matematiikka
- CSS -siirtorekisterit
- Useiden rivien ohjaimet
- Esimerkiksi
- Vaihe 6: Johtopäätös
- Mahdolliset lisäykset
- Vaihe 7: Seuranta
- Piirilevyn ominaisuudet
- Kokoonpano
Video: LED -matriisi siirtorekisterien avulla: 7 vaihetta (kuvien kanssa)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:04
Tämän ohjeen on tarkoitus olla täydellisempi selitys kuin muut verkossa saatavilla olevat. Erityisesti tämä antaa enemmän laitteistoselityksiä kuin mitä on saatavilla LED -teltassa, jonka led555 voi ohjata.
Tavoitteet
Tässä ohjeessa esitetään vuororekisterien ja korkean sivun kuljettajien käsitteet. Havainnollistamalla näitä käsitteitä 8x8 LED -matriisilla toivon voivani tarjota sinulle työkalut, joita tarvitaan mukautumaan ja laajentumaan projektisi vaatimaan kokoon ja ulkoasuun.
Kokemusta ja taitoja
Arvioisin tämän hankkeen olevan keskivaikea:
- Jos sinulla on jo kokemusta mikro -ohjaimien ohjelmoinnista ja LED -valojen kanssa työskentelystä, tämän projektin pitäisi olla melko helppo suorittaa ja skaalata suurempiin valosarjoihin.
- Jos olet vasta aloittamassa mikro -ohjaimia ja olet välähtänyt LED -valon tai kaksi, sinun pitäisi pystyä suorittamaan tämä projekti loppuun ystävämme googlen avulla.
- Jos sinulla on vähän tai ei lainkaan kokemusta mikrokontrollereista tai ohjelmoinnista, tämä on todennäköisesti sitä, mitä sinun pitäisi saada. Kokeile muutamia muita aloittelevia projekteja ja palaa takaisin, kun sinulla on enemmän kokemusta ohjelmien kirjoittamisesta mikro -ohjaimille.
Vastuuvapauslauseke ja luotto
Ensinnäkin, en ole sähköinsinööri. Jos huomaat jotain väärää tai se ei ole paras käytäntö, ilmoita siitä minulle ja teen korjauksen. Tee tämä omalla vastuullasi! Sinun pitäisi tietää, mitä olet tekemässä, tai voit vahingoittaa tietokonettasi, mikrokontrolleriasi ja jopa itseäsi. Olen oppinut paljon Internetistä, erityisesti foorumeilta osoitteessa: https://www.avrfreaks.net kirjasinjoukko, joka tuli ks0108 universaalin C -kirjaston mukana. Tarkista se täältä:
Vaihe 1: Osat
Osaluettelo
Yleiset osat
Tarvitset 8x8 LED -ruudukon ja hallitset niitä:
- 64 valintasi LEDiä
- 8 LEDien vastukset
- 1 Sarakkeiden siirtorekisteri
- 1 Rivien ohjainryhmä
- 8 Vastukset ohjainryhmän vaihtamiseksi
- 1 mikro -ohjain
- 1 kellon lähde mikrokontrollerille
- 1 prototyyppikortti
- 1 virtalähde
- Liitäntäjohto
Tässä käytetyt erityiset osat
Tätä ohjeistusta varten käytin seuraavaa:
- 64 vihreää LEDiä (hiiren osa #604-WP7113GD)
- 8 220 ohmin 1/4 watin vastukset LEDeille (Mouser-osa #660-CFS1/4CT52R221J)
- 1 HEF4794-LED-ohjain, jossa on siirtorekisteri (hiiren osa #771-HEF4794BPN)
- 1 mic2981 Suurjännitteinen suurvirtainen lähdeohjain (Digikey-osa #576-1158-ND)
- 8 3,3 kΩ: n 1/4 watin vastukset ohjainryhmän vaihtamiseen (Radio Shack -osa #271-1328)
- 1 Atmel ATmega8 -mikro-ohjain (hiiren osa #556-ATMEGA8-16PU)
- 1 12 MHz: n kide mikrokontrollerin kellolähteelle (hiiren osa #815-AB-12-B2)
- 1 2200-reikäinen prototyyppikortti (Radio Shack -osa #276-147)
- Muunnettu ATX -virtalähde: katso tämä ohje
- Kiinteä ydin 22-awg kytkentäjohto (Radio Shack osa #278-1221)
- Juoton leipälauta (Radio Shack -osa #276-169 (ei enää saatavilla, kokeile: 276-002)
- AVR Dragon (Hiiren osa #556-ATAVRDRAGON)
- Ecros Technologiesin Dragon Rider 500: Katso tämä opas
Osia koskevia huomautuksia
Rivi- ja sarakeohjaimet: Todennäköisesti hankkeen vaikein osa on rivi- ja sarakeohjainten valitseminen. Ensinnäkin, mielestäni tavallinen 74HC595 -siirtorekisteri ei ole hyvä idea täällä, koska ne eivät pysty käsittelemään sellaista virtaa, jonka haluamme lähettää LEDien kautta. Siksi valitsin HEF4794 -ohjaimen, koska se voi helposti upottaa nykyisen läsnäolon, kun kaikki 8 lediä ovat samassa rivissä, kun ne on kytketty päälle. Tarvitsemme rivinohjaimen, joka voi saada tarpeeksi virtaa useiden sarakkeiden yhdistämiseen. Mic2981 voi syöttää jopa 500 mA. Ainoa muu osa, jonka olen havainnut suorittavan tämän tehtävän, on UDN2981 (digikey-osa #620-1120-ND), joka on eri valmistajan sama osa. Lähetä minulle viesti, jos tiedät muita korkean tason ohjaimia, jotka toimisivat hyvin tässä sovelluksessa. Suurempi LED -ryhmä voidaan rakentaa kytkemällä useita matriiseja yhteen, ja siitä keskustellaan "modulaariset käsitteet" -vaiheessa. Jos haluat suuren valikoiman, tilaa kaikki tarvittavat osat kerralla. 8x8, 5x7 ja 5x8 LED -matriiseja on saatavana yhdessä kätevässä paketissa. Näiden pitäisi olla helppo korvata diy -matriisilla. Ebay on hyvä lähde näille. Mouserilla on saatavana noin 5x7 yksikköä, kuten osa #604-TA12-11GWA. Käytin halpoja vihreitä LED -valoja, koska leikin vain ja pidin hauskaa. Jos käytät enemmän korkean kirkkauden ja tehokkaan LED-valon avulla, voit tuottaa paljon näyttävämmän näköisen näytön … tämä on kuitenkin tarpeeksi hyvä minulle! Tätä varten tarvitset ohjelmoijan. Koska teen prototyyppejä, käytän Dragon Rider 500 -laitetta, jolle olen kirjoittanut sekä asennus- että käyttöohjeet. Tämä on helppo työkalu prototyyppien laatimiseen ja suosittelen sitä lämpimästi.
Vaihe 2: Matriisi
Rakennan omaa LED -matriisia tälle projektille käyttämällä 5 mm: n ledejä ja Radio Shackin prototyyppikorttia. On huomattava, että voit ostaa 8x8 pistematriisimoduuleja useista lähteistä, mukaan lukien ebay. Heidän pitäisi toimia hienosti tämän ohjeen kanssa.
Rakentamiseen liittyvät näkökohdat
Kohdistus LEDit on kohdistettava siten, että ne osoittavat samaan suuntaan samassa kulmassa. Minusta helpoin vaihtoehto oli laittaa LED -runko tasolle levylle ja pitää sitä siellä pienellä pleksilasilla ja puristimella. Laitoin muutaman LEDin paikalleen muutaman tuuman päähän rivistä, jolla työskentelin varmistaakseni, että pleksilasi oli yhdensuuntainen prototyyppikortin kanssa. Rivi- ja sarakeohjainvalintamme vuoksi meidän on liitettävä anodi (LEDin positiivinen johto) riviin ja katodi (LEDin negatiivinen johto) sarakkeeseen. Tässä prototyypissä käytän yksijohtimista (yksijohtimista) kytkentäjohtoa. Tämä on erittäin helppo liittää juotottomaan leipälevyyn. Voit vapaasti käyttää eri liitäntätyyppiä projektisi mukaan.
Matriisin rakentaminen
1. Aseta LED -valojen ensimmäinen sarake prototyyppikortille. Tarkista, että napaisuutesi kullekin LED -valolle on oikein, tätä on erittäin vaikea korjata, jos huomaat sen myöhemmin. Juotos LEDin molemmat johdot piirilevyyn. Tarkista, että ne on kohdistettu oikein (ei outoihin kulmiin) ja katkaise katodijohdot. Varmista, ettet leikkaa anodijohtoa, tarvitsemme sitä myöhemmin, joten jätä se vain ylöspäin. Irrota eristys johdinpalasta. Juotos tämä lankakappale jokaiseen katodiin aivan levyn tasolla.
- Naputin tämän kummassakin päässä ja palasin sitten takaisin ja lisäsin hiukan juotosta jokaiseen risteykseen.
- Tämän johdon pitäisi kulkea viimeisen LED -valon ohi, jotta käyttöliittymä olisi helppo, kun lisäämme ohjausjohtoja.
5. Toista osia 1-4, kunnes kaikki LED-valot ovat paikallaan ja kaikki pylväsväylät on juotettu. Luo riviväylä taivuttamalla useita anodijohtimia 90 asteen kulmassa niin, että ne koskettavat saman rivin muita anodijohtoja.
- Tästä on yksityiskohtaisia kuvia alla.
- Varo, etteivät nämä joudu kosketuksiin pylväsväylien kanssa, mikä aiheuttaa oikosulun.
7. Juotosjohdot kussakin risteyksessä ja leikkaa ylimääräiset anodijohdot pois.
Jätä viimeinen anodi kiinni viimeisen LED -valon ohi. Tätä käytetään riviohjaimen ohjausjohtojen liittämiseen
8. Toista osia 6 ja 7, kunnes kaikki rivirivit on juotettu. Kiinnitä ohjausjohdot.
- Käytin punaista kiinteää ydinlankaa riveille ja mustaa sarakkeille.
- Kytke yksi johdin kullekin sarakkeelle ja yksi jokaiselle riville. Tämä voidaan tehdä helposti jokaisen väylän lopussa.
Tärkeä
Tässä LED -matriisissa ei ole virtaa rajoittavia vastuksia. Jos testaat tämän ilman vastuksia, poltat todennäköisesti LEDit ja kaikki tämä työ on turhaa.
Vaihe 3: Ohjauslaitteisto
Meidän on hallittava LED -matriisin sarakkeita ja rivejä. Matriisi on rakennettu niin, että anodit (LEDin jännitepuoli) muodostavat rivit ja katodit (LEDin maanpuoli) muodostavat sarakkeet. Tämä tarkoittaa, että riviohjaimemme on hankittava virta ja sarakkeen ohjaimemme on upotettava se. Säästääksesi nastoissa käytän siirtorekisteriä sarakkeiden hallintaan. Tällä tavalla voin hallita lähes rajoittamatonta määrää sarakkeita vain neljällä mikro -ohjaimen tapilla. On mahdollista käyttää vain kolmea, jos Enable Output -nasta on kytketty suoraan jännitteeseen. Olen valinnut HEF4794 LED -ohjaimen, jossa on siirtorekisteri. Tämä on parempi vaihtoehto kuin tavallinen 74HC595, koska se voi helposti upottaa nykyisen virran, kun kaikki 8 LEDiä palavat kerrallaan. Kaaviossa on UDN2981, uskon, että nämä kaksi ovat vaihdettavissa. Tämä ohjain voi tuottaa jopa 500 mA virran. Koska ajamme vain 1 rivi kerrallaan, tämä antaa paljon laajennusmahdollisuuksia, jopa 33 saraketta tälle sirulle (lisää tästä "modulaariset käsitteet" -vaiheessa).
Ohjauslaitteiston rakentaminen
Tämän ohjeen vuoksi olen juuri leipännyt tämän piirin. Pysyvämmäksi ratkaisuksi haluat joko syövyttää oman piirilevyn tai käyttää prototyyppikorttia. Rivin kuljettaja
- Aseta mic2981 (tai UDN2981) leipälevylle
- Liitä nasta 9 jännitteeseen (tämä on hämmentävä kaaviossa)
- Liitä nasta 10 maahan (tämä on hämmentävä kaaviossa)
- aseta 3k3 vastukset, jotka liitetään nastoihin 1-8
- Liitä ATmega8: n (PD0-PD8) portista D 8 vastukseen
- Liitä LED-matriisin 8 rivin ohjausjohdot nastoihin 11-18 (huomaa, että olen liittänyt alimman LED-rivin nastaan 18 ja korkeimman rivin nastaan 11).
2. Sarakkeen kuljettaja
- Aseta hef4794 leipälautaan
- Liitä nasta 16 jännitteeseen
- Liitä nasta 8 maahan
- Liitä 220 ohmin vastukset nastoihin 4-7 ja 11-14.
- Liitä LED -matriisin 8 sarakkeen ohjausjohtoa juuri liittämiisi 8 vastukseen.
- Liitä nasta 1 (salpa) ATmega8: n PC0: een
- Liitä Pin2 (Data) ATmega8: n PC1: een
- Liitä Pin3 (kello) ATmega8: n PC2: een
- Liitä nasta15 (Ota lähtö käyttöön) ATmega8: n PC3: een
3. Kellokristalli
Liitä 12 MHz: n kide ja kuormituskondensaattorit kaavion mukaisesti
4. Internet -palveluntarjoaja
Liitä ohjelmointiotsikko kaavion mukaisesti
5. Suodatuskondensaattori ja vetovastus
- On parasta suodattaa ATmega8: lle syötetty jännite. Käytä 0.1uf -kondensaattoria ATmega8: n nastan 7 ja 8 välissä
- Nollaustappia ei saa jättää kellumaan, koska se voi aiheuttaa satunnaisia nollauksia. Käytä vastusta kytkeäksesi sen jännitteeseen, kaiken 1k: n pitäisi olla hyvää. Olen käyttänyt 10k vastusta kaaviossa.
6. Varmista, että käytät +5v säädettyä virtaa. Sinun on suunniteltava säädin.
Vaihe 4: Ohjelmisto
Temppu
Kyllä, kuten kaikessa, on temppu. Temppu on, että koskaan ei ole enempää kuin 8 LEDiä valaistuna kerrallaan. Jotta tämä toimisi hyvin, tarvitaan hieman taitavaa ohjelmointia. Valitsimani ajatus on käyttää ajastinta. Näytön keskeytys toimii englanniksi seuraavasti:
- Ajastin laskee tiettyyn pisteeseen asti, kun keskeytyshuolto suoritetaan.
- Tämä rutiini päättää, mikä rivi on seuraava näytettävä.
- Seuraavan rivin tiedot etsitään puskurista ja siirretään sarakkeen ohjaimeen (nämä tiedot eivät ole "lukittuja", joten niitä ei vielä näytetä).
- Rivinohjain on sammutettu, mikään LED ei pala tällä hetkellä.
- Sarakkeen ohjain on "lukittu" tehdä tiedot, jotka olemme siirtäneet kaksi vaihetta sitten nykyiset tiedot näytettäväksi.
- Rivinohjain antaa sitten virran näyttämämme uudelle riville.
- Keskeytyspalvelurutiini päättyy ja ohjelma palaa normaaliin kulkuun seuraavaan keskeytykseen saakka.
Tämä tapahtuu hyvin nopeasti. Keskeytys heitetään 1 sekunnin välein. Tämä tarkoittaa, että päivitämme koko näytön noin kerran 8 sekunnissa. Tämä tarkoittaa noin 125 Hz: n näyttötaajuutta. Kirkkaus on huolestuttavaa, koska käytämme pääasiassa LED -valoja 1/8 käyttöjaksolla (ne ovat pois päältä 7/8 ajasta). Minun tapauksessani saan riittävän kirkkaan näytön, jossa ei näy vilkkuvaa. Koko LED -näyttö on kartoitettu taulukkona. Keskeytysten välissä matriisia voidaan muuttaa (huomioi atomisuus) ja se tulee näyttöön seuraavan keskeytyksen aikana. AVR -mikrokontrollerin koodin kirjoittamisen ja koodin kirjoittamisen vuorovaikutusrekisteriin puuttuminen tästä opettavaista. Olen sisällyttänyt lähdekoodin (kirjoitettu C-muodossa ja koottu AVR-GCC: llä) sekä heksatiedoston suoraan ohjelmoitavaksi. Olen kommentoinut koko koodin, joten sinun pitäisi pystyä käyttämään tätä selvittämään kaikki kysymykset siitä, miten tietoja siirretään vuororekisteriin ja miten rivin päivitys toimii. Huomaa, että käytän ks0108 universaali C -kirjasto. Kirjasto löytyy täältä:
Vaihtorekisterit: miten
Olen päättänyt lisätä hieman siitä, kuinka ohjelmoida vuororekistereillä. Toivon, että tämä selventää asioita niille, jotka eivät ole aiemmin työskennelleet heidän kanssaan. Tässä tapauksessa on yksi datakaapeli, joka ottaa tiedot ja 8 nastaa, joita ohjataan riippuen siitä, mitä tietoja on vastaanotettu. Asioiden parantamiseksi jokaiselle vuororekisterille on ulostulo, joka voidaan liittää toisen siirtorekisterin tulonastaan. Tätä kutsutaan kaskadiksi ja se tekee laajentumismahdollisuuksista lähes rajattomat mahdollisuudet.
- Salpa - Tämä tappi kertoo vuororekisterille, milloin on aika siirtyä uusiin tietoihin
- Tiedot - 1 ja 0 kertovat siirtorekisterille, mitkä nastat aktivoidaan, vastaanotetaan tälle tapille.
- Kello - Tämä on mikrokontrollerista lähetetty pulssi, joka käskee vuororekisterin ottamaan tiedot ja siirtymään seuraavaan vaiheeseen viestintäprosessissa
- Ota lähtö käyttöön - Tämä on on/off -kytkin, High = On, Low = Off
Hintatarjousten tekeminen: Tässä on ylläolevien ohjaustappien toiminnan kurssi: Vaihe 1: Aseta salpa, data ja kello alhaiseksi
Kun salpa asetetaan alhaiseksi, se ilmoittaa vuororekisterille, että aiomme kirjoittaa sille
Vaihe 2: Aseta datanappi siihen logiikka -arvoon, jonka haluat lähettää siirtorekisteriin Vaihe 3: Aseta kellotappi korkeaksi ja käski siirtorekisterin lukemaan nykyisen datanastan arvon
Kaikki muut tällä hetkellä siirtorekisterissä olevat arvot siirtyvät yhden paikan verran, jolloin data -nastan nykyiselle loogiselle arvolle on tilaa
Vaihe 4: Aseta kellotappi matalalle ja toista vaiheet 2 ja 3, kunnes kaikki tiedot on lähetetty vuororekisteriin.
Kellotappi on asetettava matalalle, ennen kuin vaihdat seuraavaan Data -arvoon. Tämän nastan vaihtaminen korkean ja matalan välillä luo "kellopulssin", jonka siirtorekisterin on tiedettävä, milloin siirtyä prosessin seuraavaan vaiheeseen
Vaihe 5: Aseta salpa korkealle
Tämä käskee siirtorekisterin ottamaan kaikki siirretyt tiedot ja käyttämään niitä lähtönastan aktivoimiseen. Tämä tarkoittaa, että et näe tietoja, kun ne siirtyvät sisään; lähtötappeihin ei tapahdu muutoksia ennen kuin salpa on asetettu korkealle
Vaihe 6: Aseta Enable Output -asetus korkeaksi
- Pin -lähtöä ei tule, ennen kuin Enable Output -asetus on asetettu korkealle, riippumatta siitä, mitä tapahtuu muiden kolmen ohjaustapin kanssa.
- Tämä tappi voidaan aina haluttaessa jättää korkealle
Kaskadissa on kaksi nastaa, joita voit käyttää porrastamiseen, Os ja Os1. Os on nopeasti nouseville kelloille ja Os1 on hitaasti nouseville kelloille. Kiinnitä tämä nasta seuraavan siirtorekisterin datatappiin, ja tämän sirun ylivuoto syötetään seuraavaan.
Näytön osoittaminen
Esimerkkiohjelmassa olen luonut 8 tavun taulukon nimeltä row_buffer . Jokainen tavu vastaa yhtä 8x8 -näytön riviä, rivi 0 on alaosa ja rivi 7 on ylhäällä. Kunkin rivin vähiten merkitsevä bitti on oikealla ja merkittävin bitti vasemmalla. Näytön vaihtaminen on yhtä helppoa kuin uuden arvon kirjoittaminen kyseiselle tietojoukolle, keskeytyspalvelurutiini huolehtii näytön päivittämisestä.
Ohjelmointi
Ohjelmointia ei käsitellä tässä yksityiskohtaisesti. Varoitan sinua, ettet käytä DAPA -ohjelmointikaapelia, koska uskon, ettet pysty ohjelmoimaan sirua, kun se toimii 12 MHz: n taajuudella. Kaikkien muiden vakio -ohjelmoijien pitäisi toimia (STK500, MKII, Dragon, rinnakkais-/sarjaohjelmoijat jne.). Sulakkeet: Muista ohjelmoida sulakkeet käyttämään 12 MHz: n kristallisulaketta: 0xC9lfuse: 0xEF
Toiminnassa
Kun olet ohjelmoinut sirun, näytön pitäisi vierittää "Hello World!". Tässä on video LED -matriisista toiminnassa. Videon laatu on melko heikko, koska tein tämän digitaalikamerani videotoiminnolla eikä oikealla videolla tai verkkokameralla.
Vaihe 5: Modulaariset käsitteet
Tämä projekti on skaalautuva. Ainoa todellinen rajoittava tekijä on se, kuinka paljon virtaa virtalähteesi voi tarjota. (Toinen todellisuus on, kuinka monta LEDiä ja rekisterivaihdetta sinulla on käytettävissä).
Matematiikka
Ajan LED-valoja noin 15mA (5V-1,8vDrop/220ohms = 14,5mA). Tämä tarkoittaa, että voin ajaa jopa 33 saraketta mic2981 -ohjaimella (500mA/15mA = 33,3). Jaettuna kahdeksalla voimme nähdä, että tämän avulla voimme yhdistää 4 vuororekisteriä. Ota myös huomioon, että sinun ei tarvitse ulottaa kaikkia 32 saraketta vasemmalta oikealle. Voit sen sijaan luoda 16x16 -taulukon, joka on kytketty samalla tavalla kuin 8x32 -taulukko. Tämä ratkaistaan siirtämällä 4 tavua…. kaksi ensimmäistä siirtyisivät yhdeksännen rivin ledeihin, kaksi muuta tavua siirtyisivät ensimmäiselle riville. Molemmat rivit hankittaisiin yhdellä rivin ohjaimen tapilla.
CSS -siirtorekisterit
Käytetyt vuororekisterit ovat porrastettuja vuororekistereitä. Tämä tarkoittaa, että kun siirrät tietoja, ylivuoto näkyy Os -nastassa. Siitä tulee erittäin hyödyllinen, koska joukko siirtorekistereitä voidaan yhdistää toisiinsa, Os -nasta datatappiin, lisäämällä 8 saraketta jokaisen uuden sirun kanssa. mikrokontrolleri. "CSS" -vaikutus syntyy, kun ensimmäisen siirtorekisterin Os: t on kytketty toisen datatappiin. Ohjelmointia on muutettava vastaamaan lisääntynyttä sarakkeiden määrää. Sekä tiedot tallentava puskuri että toiminto, joka siirtää tiedot jokaiselle sarakkeelle, on päivitettävä vastaamaan sarakkeiden todellista lukumäärää.
Useiden rivien ohjaimet
Riviohjain (mic2981) voi saada tarpeeksi virtaa 32 sarakkeen ajamiseen. Entä jos haluat enemmän kuin 32 saraketta? Pitäisi olla mahdollista käyttää useita rivi -ohjaimia käyttämättä enemmän mikro -ohjaimen nastoja. Jos käytät enemmän sarakkeita kuin on mahdollista sytyttää kerralla, lisäriviohjaimet voivat syöttää tarvittavan virran. Käytetään samoja mikro -ohjaimen tulonappeja, joten rivien skannausta ei tarvitse muuttaa. Toisin sanoen jokainen kuljettaja ohjaa 8x32 -lohkon rivejä. Vaikka 64 sarakkeella voi olla sama FYSIKAALINEN rivin sijoittelu, jaamme riviväylät kahteen osaan käyttämällä yhtä ohjainta ensimmäisen 32 sarakkeen 8 riville ja toista ohjainta toisen 32 sarakkeen 8 riville ja niin edelleen. Kaavio tästä on alla esimerkkinä. Mahdolliset virheet: 1. Älä käytä useita riviajureita, joilla on sama määrä sarakkeita. Tämä tarkoittaisi, että jokainen siirtorekisterin tappi ajaisi useampaa kuin yhtä LEDiä kerrallaan. Sinulla on oltava 8 vastuksen sarja (3k3) kullekin riviohjaimelle, yksi sarja useille rivinohjaimille ei toimi, koska se ei tarjoa tarvittavaa virtaa porttien vaihtamiseen.
Esimerkiksi
Päätin laajentaa aiemmin rakentamaani matriisia. Olen lisännyt vielä seitsemän riviä yhteensä 15: een, koska en voi mahtua tähän protoboardiin. Sain myös juuri tietää kilpailusta, jonka Instructables tekee "Let it Glow". Tässä video minun näkemyksestäni asiaan. Jälleen kerran, digitaalikamera, jolla otin videon, ei tee sitä oikeudenmukaisesti. Tämä näyttää hyvältä ihmissilmälle, varsinkin jos kaikki LED -valot vilkkuvat, mutta ei näytä läheskään yhtä hyvältä videossa. Nauti: Tämän suuremman näytön lähdekoodi on alla.
Vaihe 6: Johtopäätös
Mahdolliset lisäykset
I2CI on jättänyt Two Wire Interface (I2C) -nastat käyttämättä tässä mallissa. Näitä kahta nastaa voidaan käyttää useita mielenkiintoisia mahdollisuuksia. I2C EEPROM -laitteen lisääminen mahdollistaa paljon suurempien viestien tallentamisen. On myös mahdollista suunnitella ohjelmointi, jolla mega8 muutetaan I2C -yhteensopivaksi näytönohjaimeksi. Tämä avaa mahdollisuuden saada USB -laite näyttämään tietoja LED -ryhmästäsi siirtämällä se I2C -väylän yli. Tämä sallii viestien ohjelmoinnin valikkojärjestelmän kautta. Toinen kirjoittaa vain merkkejä näyttöön, toinen vierii merkkejä näyttöön. Tärkeä asia on muistaa, että se, mitä näet valoissa, esitetään dataryhmässä. Jos keksit tapoja muuttaa tietojoukkoa, valot muuttuvat samalla tavalla. Jotkut houkuttelevat mahdollisuudet sisältävät graafisen mittarin luomisen sarakkeista. Tätä voitaisiin käyttää signaalin analysaattorina, jossa on stereo. Vierittäminen voidaan toteuttaa ylhäältä alas tai alhaalta ylöspäin, jopa vasemmalta oikealle. Onnea pidä hauskaa!
Vaihe 7: Seuranta
Kun olin antanut ohjainpiirin istua leipälevyllä kuukausia, suunnittelin ja etsasin muutamia piirilevyjä tämän prototyypin yhdistämiseksi. Kaikki sujui loistavasti, en usko, että olisin tehnyt mitään toisin.
Piirilevyn ominaisuudet
- Siirtorekisterit ovat erillisillä taulukoilla, jotka voidaan ketjuttaa yhteen ja lisätä näytön kokoa.
- Ohjainkortilla on oma tehonsäädin, joten sitä voidaan käyttää millä tahansa virtalähteellä, joka tarjoaa 7v-30v (9v akku tai 12v penkki, molemmat toimivat minulle hyvin).
- Mukana 6 -nastainen ISP -otsikko, joten mikro -ohjain voidaan ohjelmoida uudelleen poistamatta sitä kortilta.
- 4-nastainen otsikko saatavilla I2C-väylän tulevaa käyttöä varten. Tätä voitaisiin käyttää eepromissa useiden viestien tallentamiseen tai jopa tehdä tästä orjalaitteesta, jota toinen mikro -ohjain (RSS -merkki kuka tahansa?) Ohjaa
- Sisältää 3 hetkellistä painonappia. Voin säätää laiteohjelmistoa tulevaisuudessa sisällyttämään näiden painikkeiden käytön.
Kokoonpano
Anna minulle pleksilasi, kulmakiinnikkeet, 6x32 koneruuvia, muttereita ja aluslevyjä sekä hanasarja kierrereikiin ja voin luoda mitä tahansa.
Toinen palkinto Let It Glow!
Suositeltava:
RGB LED Adaptive Camouflage (kameleontti) Ebot / Arduino -toiminnon avulla: 5 vaihetta (kuvien kanssa)
RGB LED Adaptive Camouflage (kameleontti) Ebotin / Arduinon avulla: Tämä on todella hieno ja yksinkertainen projekti. Se käyttää värisensoria taustan värin tunnistamiseen ja näyttää sen RGB -LED -nauhalla. Käytin Ebot -mikrokontrolleria, mutta voit käyttää myös mitä tahansa muuta mikro -ohjainta, kuten arduino uno
7-segmenttisen LED-näytön ohjaaminen ESP8266-verkkopalvelimen avulla: 8 vaihetta (kuvien kanssa)
7-segmenttisen LED-näytön ohjaaminen ESP8266-verkkopalvelimen avulla: Projektissani on Nodemcu ESP8266, joka ohjaa 7-segmenttistä näyttöä http-palvelimen kautta html-lomakkeella
48 X 8 vierittävä LED -matriisinäyttö Arduinon ja Shift -rekisterien avulla .: 6 vaihetta (kuvien kanssa)
48 X 8 vieritys -LED -matriisinäyttö Arduino- ja Shift -rekisterien avulla: Hei kaikki! Tämä on ensimmäinen Instructableni, ja kyse on 48 x 8 ohjelmoitavan vieritys -LED -matriisin tekemisestä Arduino Uno- ja 74HC595 -siirtorekisterien avulla. Tämä oli ensimmäinen projektini Arduinon kehityskortilla. Se oli haaste m
Ohjelmoitava RGB -LED -sekvensseri (Arduinon ja Adafruit -ristikkojen avulla): 7 vaihetta (kuvien kanssa)
Ohjelmoitava RGB -LED -sekvensseri (käyttäen Arduinoa ja Adafruit Trellisiä): Poikani halusivat värillisiä LED -nauhoja valaisemaan työpöydänsä, enkä halunnut käyttää purkitettua RGB -nauhaohjainta, koska tiesin, että he kyllästyisivät kiinteisiin kuvioihin näillä ohjaimilla on. Ajattelin myös, että se olisi loistava tilaisuus luoda
Näytön lämpötila P10 -LED -näyttömoduulissa Arduinon avulla: 3 vaihetta (kuvien kanssa)
Näytön lämpötila P10 -LED -näyttömoduulissa Arduinon avulla: Edellisessä opetusohjelmassa on kerrottu, kuinka teksti näytetään Dot Matrix LED Display P10 -moduulissa Arduinon ja DMD -liittimen avulla, jonka voit tarkistaa täältä. Tässä opetusohjelmassa annamme yksinkertaisen projektin opetusohjelman käyttämällä P10 -moduulia näyttövälineenä