Satura rādītājs:

LED matrica, izmantojot maiņu reģistrus: 7 soļi (ar attēliem)
LED matrica, izmantojot maiņu reģistrus: 7 soļi (ar attēliem)

Video: LED matrica, izmantojot maiņu reģistrus: 7 soļi (ar attēliem)

Video: LED matrica, izmantojot maiņu reģistrus: 7 soļi (ar attēliem)
Video: 🔥 Всё-всё-всё про лямбда-зонды! Зачем нужен этот хитрый кислородный датчик? 2024, Novembris
Anonim
LED matrica, izmantojot maiņu reģistrus
LED matrica, izmantojot maiņu reģistrus
LED matrica, izmantojot maiņu reģistrus
LED matrica, izmantojot maiņu reģistrus
LED matrica, izmantojot maiņu reģistrus
LED matrica, izmantojot maiņu reģistrus

Šis pamācība ir domāts kā pilnīgāks skaidrojums nekā citi tiešsaistē pieejamie. Proti, tas sniegs vairāk aparatūras skaidrojumu, nekā tas ir pieejams LED marķējumā, ko norāda led555.

Mērķi

Šajā pamācībā ir izklāstīti jēdzieni, kas saistīti ar maiņu reģistriem un augsta līmeņa vadītājiem. Ilustrējot šos jēdzienus ar 8x8 LED matricu, es ceru sniegt jums rīkus, kas vajadzīgi, lai pielāgotos un izvērstos atbilstoši projekta prasībām.

Pieredze un prasmes

Es šo projektu vērtētu kā vidējas grūtības pakāpi:

  • Ja jums jau ir pieredze mikrokontrolleru programmēšanā un darbā ar gaismas diodēm, šo projektu jums vajadzētu būt diezgan viegli pabeigt un pielāgot lielākiem gaismas blokiem.
  • Ja jūs tikko sākat darbu ar mikrokontrolleriem un mirgo viena vai divas gaismas diodes, jums vajadzētu būt iespējai pabeigt šo projektu, izmantojot mūsu drauga google palīdzību.
  • Ja jums ir neliela pieredze mikrokontrolleru vai programmēšanas jomā vai tās nav, tad tas, visticamāk, pārsniedz jūsu vajadzību. Izmēģiniet dažus citus iesācēju projektus un atgriezieties, kad iegūsit vairāk pieredzes mikrokontrolleru programmu rakstīšanā.

Atruna un kredīts

Pirmkārt, es neesmu elektroinženieris. Ja redzat kaut ko nepareizu vai nav labākā prakse, lūdzu, dariet man to zināmu, un es labošu. Dariet to uz savu risku! Jums vajadzētu zināt, ko jūs darāt, vai arī jūs varat sabojāt datoru, savu mikrokontrolleri un pat sevi. Es esmu daudz iemācījies no interneta, jo īpaši no forumiem, kas atrodas šeit: https://www.avrfreaks.net fontu kopa, kas tika piegādāta kopā ar universālo bibliotēku ks0108. Pārbaudiet to šeit:

1. darbība: detaļas

Detaļu saraksts

Vispārīgās daļas

Lai izveidotu 8x8 gaismas diodes režģi un tos kontrolētu, jums būs nepieciešams:

  • 64 gaismas diodes pēc jūsu izvēles
  • 8 rezistori gaismas diodēm
  • 1 Kolonnu maiņu reģistrs
  • 1 Vadītāju masīvs rindām
  • 8 Rezistori draivera masīva pārslēgšanai
  • 1 mikrokontrolleris
  • 1 pulksteņa avots mikrokontrolleram
  • 1 prototipēšanas dēlis
  • 1 barošanas avots
  • Savienojuma vads

Šeit tiek izmantotas īpašas detaļas

Šajā pamācībā es izmantoju sekojošo:

  • 64 zaļas gaismas diodes (peles daļa #604-WP7113GD)
  • 8 220 omi 1/4 vatu rezistori gaismas diodēm (Mouser daļa #660-CFS1/4CT52R221J)
  • 1 HEF4794 LED draiveris ar maiņu reģistru (peles daļa #771-HEF4794BPN)
  • 1 mic2981 Augstsprieguma augstsprieguma avota draivera bloks (Digikey daļa #576-1158-ND)
  • 8 3,3 kΩ 1/4 vatu rezistori vadītāja masīva pārslēgšanai (Radio Shack daļa #271-1328)
  • 1 Atmel ATmega8 mikrokontrolleris (Mouser daļa #556-ATMEGA8-16PU)
  • 1 12MHz kristāls mikrokontrollera pulksteņa avotam (Mouser daļa #815-AB-12-B2)
  • 1 2200 bedrīšu prototipēšanas dēlis (Radio Shack daļa #276-147)
  • Pārveidots ATX barošanas avots: skatiet šo pamācību
  • Cietā kodola 22-awg savienojuma vads (Radio Shack daļa #278-1221)
  • Maize bez lodēšanas (Radio Shack daļa #276-169 (vairs nav pieejama, izmēģiniet: 276-002)
  • AVR Dragon (peles daļa #556-ATAVRDRAGON)
  • Ecros Technologies Dragon Rider 500: skatiet šo pamācību

Piezīmes par detaļām

Rindu un kolonnu draiveri: iespējams, šī projekta vissarežģītākā daļa ir rindu un kolonnu draiveru izvēle. Pirmkārt, es nedomāju, ka standarta 74HC595 maiņu reģistrs šeit ir laba ideja, jo tie nevar apstrādāt tādu strāvu, kādu mēs vēlamies nosūtīt caur gaismas diodēm. Tāpēc es izvēlējos HEF4794 draiveri, jo tas var viegli nogremdēt pašreizējo strāvu, kad ir ieslēgti visi 8 gaismas diodes vienā rindā. Pārmaiņu reģistrs atrodas zemā pusē (gaismas diožu zemējuma tapa). Mums būs nepieciešams rindas draiveris, kas var iegūt pietiekami daudz strāvas, lai kopā savienotu vairākas kolonnas. Mic2981 var piegādāt līdz 500 mA. Vienīgā cita daļa, ko esmu atradusi un kas veic šo uzdevumu, ir UDN2981 (ciparu detaļa #620-1120-ND), kas ir viena un tā paša cita ražotāja daļa. Lūdzu, sūtiet man ziņu, ja zināt citus augstas klases draiverus, kas šajā lietojumprogrammā labi darbotos. LED matrica: šī matrica ir 8x8, jo rindu un kolonnu draiveriem ir 8 tapas. Lielāku LED bloku var izveidot, sasaistot vairākas matricas kopā, un tas tiks apspriests "moduļu koncepciju" solī. Ja vēlaties lielu masīvu, pasūtiet visas nepieciešamās detaļas vienlaikus. Vienā ērtā iepakojumā ir pieejamas 8x8, 5x7 un 5x8 LED matricas. Tos vajadzētu viegli aizstāt ar diy matricu. Ebay ir labs avots tiem. Mouser ir pieejamas 5x7 vienības, piemēram, detaļa #604-TA12-11GWA. Es izmantoju lētas zaļas gaismas diodes, jo es vienkārši spēlēju un izklaidējos. Vairāk tērējot augstas spilgtuma un augstas efektivitātes gaismas diodēm, jūs varat izveidot daudz iespaidīgāku displeju … tomēr tas man ir pietiekami labi! Aparatūra: Matricu kontrolē Atmel AVR mikrokontrolleris. Šim nolūkam jums būs nepieciešams programmētājs. Tā kā es prototipēju, es izmantoju Dragon Rider 500, kuram esmu uzrakstījis gan montāžas, gan lietošanas instrukcijas. Šis ir vienkāršs prototipu veidošanas rīks, un es to ļoti iesaku.

2. solis: Matrica

Matrica
Matrica
Matrica
Matrica
Matrica
Matrica

Šim projektam es būvēšu savu LED matricu, izmantojot 5 mm gaismas diodes un Radio Shack prototipa plāksni. Jāatzīmē, ka 8x8 punktu matricas LED moduļus varat iegādāties no vairākiem avotiem, tostarp ebay. Viņiem vajadzētu strādāt lieliski ar šo pamācību.

Būvniecības apsvērumi

Gaismas diodes ir jāsaskaņo tā, lai tās būtu vērstas vienā virzienā vienā leņķī. Es atklāju, ka man visvienkāršākais variants bija pielikt LED flush korpusu pie tāfeles un turēt to tur ar nelielu plexiglass gabalu un skavu. Es ievietoju dažas gaismas diodes pāris collu attālumā no rindas, pie kuras strādāju, lai pārliecinātos, ka plexiglass ir paralēls prototipēšanas plāksnei. Rindas un kolonnas Mums ir jābūt kopējam savienojumam katrai rindai, kā arī katrai kolonnai. Tā kā mēs izvēlējāmies rindu un kolonnu draiveri, mums ir jābūt anodam (gaismas diodes pozitīvajam vadam), kas savienots ar rindu, un katodam (gaismas diodes negatīvajam vadam), kas savienots ar kolonnu. Šim prototipam es izmantoju cietā serdeņa (viena vadītāja) savienojuma vadu. To būs ļoti viegli savienot ar bezlodēšanas maizes dēli. Jūtieties brīvi izmantot cita veida savienotāju, kas atbilst jūsu projektam.

Matricas veidošana

1. Ievietojiet pirmo gaismas diožu kolonnu prototipēšanas plāksnē.2. Vēlreiz pārbaudiet, vai jūsu polaritāte katrai gaismas diodei ir pareiza, to būs ļoti grūti novērst, ja to sapratīsit vēlāk. Lodējiet abus gaismas diodes vadus pie tāfeles. Pārbaudiet, vai tie ir pareizi izlīdzināti (nevis dīvainos leņķos), un noņemiet katoda vadus. Pārliecinieties, ka nesaspiežat anoda vadu, mums tas būs vajadzīgs vēlāk, tāpēc vienkārši atstājiet to vērstu uz augšu. Noņemiet izolāciju no cieta stieples gabala. Lodējiet šo stieples gabalu pie katra katoda tieši plāksnes līmenī.

  • Es to tacked katrā galā, tad atgriezos un pievienoju mazliet lodēt katrā krustojumā.
  • Šim vadam vajadzētu iet garām jūsu pēdējam gaismas diodei, lai, pievienojot vadības vadus, būtu ērts interfeiss.

5. Atkārtojiet 1. līdz 4. daļu, līdz visas gaismas diodes ir savās vietās un visas kolonnas kopnes ir pielodētas.6. Lai izveidotu rindu kopni, salieciet vairākus anoda vadus 90 grādu leņķī, lai tie pieskaras citiem anoda vadiem tajā pašā rindā.

  • Zemāk ir detalizēti attēli par to.
  • Uzmanieties, lai tie nesaskartos ar kolonnu kopnēm, radot īssavienojumu.

7. Lodējiet vadus katrā krustojumā un noņemiet liekos anoda vadus.

Atstājiet pēdējo anodu pie gala LED. Tas tiks izmantots, lai savienotu rindas draivera vadības vadus

8. Atkārtojiet 6. un 7. daļu, līdz visas rindas kopnes ir pielodētas. Pievienojiet vadības vadus.

  • Rindām es izmantoju sarkanu cietu vadu, bet kolonnām - melnu.
  • Pievienojiet vienu vadu katrai kolonnai un vienu katrai rindai. To var viegli izdarīt katra autobusa beigās.

Svarīgs

Šai LED matricai nav strāvas ierobežojošu rezistoru. Ja jūs to pārbaudīsit bez rezistoriem, jūs, iespējams, izdegīsiet savas gaismas diodes, un viss šis darbs būs veltīgs.

3. darbība: vadības aparatūra

Kontroles aparatūra
Kontroles aparatūra
Kontroles aparatūra
Kontroles aparatūra

Mums ir jākontrolē mūsu LED matricas kolonnas un rindas. Matrica ir veidota tā, lai rindas veidotu anodi (gaismas diodes sprieguma puse), bet kolonnas - katodi (gaismas diodes zemes puse). Tas nozīmē, ka mūsu rindas draiverim ir jāiegūst strāva, un mūsu kolonnu vadītājam tas ir jāiegremdē. Lai ietaupītu uz tapām, es izmantoju maiņu reģistru, lai kontrolētu kolonnas. Tādā veidā es varu kontrolēt gandrīz neierobežotu skaitu kolonnu tikai ar četriem mikrokontrolleru tapām. Ir iespējams izmantot tikai trīs, ja iespējošanas izejas tapa ir piesieta tieši pie sprieguma. Esmu izvēlējies HEF4794 LED draiveri ar maiņu reģistru. Šī ir labāka iespēja nekā standarta 74HC595, jo tā var viegli nogremdēt pašreizējo strāvu, kad visas 8 gaismas diodes ir ieslēgtas vienlaikus. Augstākajā pusē (pašreizējais avots rindām) es izmantoju mikrofonu2981. Shēmā parādīts UDN2981, es uzskatu, ka šie divi ir savstarpēji aizvietojami. Šis draiveris var iegūt līdz 500 mA strāvu. Tā kā mēs braucam tikai 1 rindu vienlaikus, tas dod daudz iespēju paplašināties, līdz pat 33 kolonnām šai mikroshēmai (vairāk par to "moduļu koncepciju" solī).

Kontroles aparatūras izveide

Par šo pamācību es tikko ieleju šo shēmu. Lai iegūtu pastāvīgāku risinājumu, jūs vēlaties iegravēt savu shēmas plati vai izmantot prototipēšanas plati. Rindas vadītājs

  • Ievietojiet mic2981 (vai UDN2981) maizes plāksnē
  • Pievienojiet tapu 9 spriegumam (shēmā tas ir mulsinoši)
  • Savienojiet tapu 10 ar zemi (shematiski tas ir mulsinoši)
  • ievietojiet 3k3 rezistorus, kas savienojas ar tapām 1-8
  • Savienojiet no ATmega8 (PD0-PD8) D porta ar 8 rezistoriem
  • Pievienojiet LED matricas 8 rindu vadības vadus tapām 11-18 (ņemiet vērā, ka zemāko LED rindu esmu pievienojis 18. tapai un augstāko rindu-11. tapai).

2. Kolonnas vadītājs

  • Ievietojiet hef4794 maizes dēļā
  • Pievienojiet tapu 16 spriegumam
  • Pievienojiet tapu 8 zemei
  • Pievienojiet 220 omu rezistorus tapām 4-7 un 11-14.
  • Pievienojiet 8 kolonnu vadības vadus no LED matricas 8 tikko pievienotajiem rezistoriem.
  • Savienojiet Pin1 (aizbīdni) ar ATmega8 PC0
  • Savienojiet Pin2 (dati) ar ATmega8 PC1
  • Savienojiet Pin3 (pulksteni) ar ATmega8 PC2
  • Pievienojiet Pin15 (iespējot izvadi) ar ATmega8 PC3

3. Pulksteņa kristāls

Pievienojiet 12MHz kristālu un slodzes kondensatorus, kā parādīts shēmā

4. ISP

Pievienojiet programmēšanas galveni, kā parādīts shēmā

5. Filtrēšanas kondensators un uzvilkšanas rezistors

  • Vislabāk ir filtrēt spriegumu, kas tiek piegādāts ATmega8. Izmantojiet 0.1uf kondensatoru starp ATmega8 7. un 8. tapu
  • Atiestatīšanas tapu nedrīkst atstāt peldošu, jo tas var izraisīt nejaušu atiestatīšanu. Izmantojiet rezistoru, lai to savienotu ar spriegumu, jebkuram apmēram 1k vajadzētu būt labam. Shēmā esmu izmantojis 10k rezistoru.

6. Pārliecinieties, vai izmantojat +5 V regulētu jaudu. Regulatora dizains ir atkarīgs no jums.

4. solis: programmatūra

Triks

Jā, tāpat kā viss, ir kāds triks. Viltība ir tāda, ka nekad vienlaicīgi nedeg vairāk par 8 gaismas diodēm. Lai tas darbotos labi, ir nepieciešama nedaudz viltīga programmēšana. Manis izvēlētais jēdziens ir izmantot taimera pārtraukšanu. Lūk, kā displeja pārtraukšana darbojas vienkāršā angļu valodā:

  • Taimeris tiek skaitīts līdz noteiktam brīdim, kad tiek sasniegta pārtraukšanas pakalpojuma rutīna.
  • Šī kārtība izlemj, kura rinda ir nākamā parādāmā.
  • Informācija par nākamo rindu tiek meklēta no bufera un pārvietota uz kolonnas draiveri (šī informācija nav "fiksēta", tāpēc tā vēl netiek parādīta).
  • Rindas vadītājs ir izslēgts, pašlaik nedeg neviena gaismas diode.
  • Kolonnas draiveris ir “fiksēts”, lai informācija, kuru pirms divām darbībām mainījām, parādītu pašreizējo informāciju.
  • Rindas draiveris pēc tam nodrošina strāvu jaunajai mūsu parādītajai rindai.
  • Pārtraukšanas pakalpojumu rutīna beidzas un programma atgriežas normālā plūsmā līdz nākamajam pārtraukumam.

Tas notiek ļoti ļoti ātri. Pārtraukums tiek izmests ik pēc 1 mSec. Tas nozīmē, ka mēs visu displeju atsvaidzinām apmēram reizi 8 msek. Tas nozīmē displeja ātrumu aptuveni 125 Hz. Pastāv zināmas bažas par spilgtumu, jo būtībā mēs darbinām gaismas diodes 1/8 darba ciklā (tās ir izslēgtas 7/8 reizes). Manā gadījumā es saņemu pietiekami spilgtu displeju bez redzama mirgošanas. Pilns LED displejs ir kartēts masīvā. Starp pārtraukumiem masīvu var mainīt (ievērojiet atomu) un tas tiks parādīts displejā nākamā pārtraukuma laikā. AVR mikrokontrollera koda rakstīšanas specifika un tas, kā rakstīt kodu, lai sarunātos ar maiņu reģistriem, nav pieejams no šī pamācāmā. Es esmu iekļāvis avota kodu (rakstīts C un apkopots ar AVR-GCC), kā arī hex failu, lai to tieši programmētu. Esmu komentējis visu kodu, tāpēc jums vajadzētu būt iespējai to izmantot, lai noskaidrotu visus jautājumus par to, kā iegūt datus maiņu reģistrā un kā darbojas rindu atsvaidzināšana. Lūdzu, ņemiet vērā, ka es izmantoju fonta failu, kas pievienots ks0108 universālā C bibliotēka. Šo bibliotēku var atrast šeit:

Maiņu reģistri: kā to izdarīt

Esmu nolēmis mazliet pievienot, kā programmēt ar maiņu reģistriem. Es ceru, ka tas izskaidro tos, kas iepriekš ar viņiem nav strādājuši. Ko viņi dara Šajā gadījumā ir viens datu vads, kas uzņem datus, un 8 tapas, kuras tiek kontrolētas atkarībā no tā, kādi dati ir saņemti. Lai padarītu lietas labākas, katram maiņu reģistram ir izeja, ko var savienot ar cita maiņu reģistra ievades tapu. To sauc par kaskādi, un paplašināšanas potenciāls ir gandrīz neierobežots. Control PinsShift reģistros ir 4 vadības tapas:

  • Aizbīdnis - šī tapa norāda maiņu reģistram, kad ir pienācis laiks pārslēgties uz tikko ievadītajiem datiem
  • Dati - 1 un 0 norāda maiņu reģistram, kuras tapas jāaktivizē, tiek saņemtas šajā tapā.
  • Pulkstenis - tas ir impulss, kas tiek sūtīts no mikrokontrollera un kas norāda maiņu reģistram veikt datu nolasīšanu un pāriet uz nākamo saziņas procesa posmu
  • Iespējot izvadi - tas ir ieslēgšanas/izslēgšanas slēdzis, augsts = ieslēgts, zems = izslēgts

Cenu noteikšana: šeit ir avārijas kurss iepriekš minēto vadības tapu darbībā: 1. darbība: iestatiet zemu fiksatoru, datus un pulksteni

Noslēdzot zemo fiksatoru, maiņu reģistrs norāda, ka mēs tam gatavojamies rakstīt

2. darbība. Iestatiet datu tapu uz loģisko vērtību, kuru vēlaties nosūtīt uz maiņu reģistru 3. solis: iestatiet pulksteņa tapu augstu, norādot maiņu reģistram, lai tas nolasītu pašreizējo datu tapas vērtību

Visas pārējās maiņu reģistrā esošās vērtības pārvietosies par 1 vietu, atstājot vietu pašreizējai datu tapas loģiskajai vērtībai

4. solis: iestatiet pulksteņa tapu zemu un atkārtojiet 2. un 3. darbību, līdz visi dati ir nosūtīti uz maiņu reģistru.

Pirms nākamās datu vērtības pārslēgšanas pulksteņa tapa ir jāiestata zema. Pārslēdzot šo tapu starp augstu un zemu, tiek izveidots pulksteņa impulss, kas maiņu reģistram jāzina, kad pāriet uz nākamo procesa posmu

5. darbība: iestatiet fiksatoru augstu

Tas norāda, ka maiņu reģistrs ņem visus pārvietotos datus un izmanto to, lai aktivizētu izejas tapas. Tas nozīmē, ka jūs neredzēsit datus, jo tie tiek pārvietoti; izvades tapas nemainīsies, kamēr fiksators nav iestatīts augstu

6. darbība: iestatiet Iespējot izvadi augstu

  • Nebūs tapas izvades, kamēr Enable Output nebūs iestatīts uz augstu, neatkarīgi no tā, kas notiek ar pārējām trim vadības tapām.
  • Šo tapu vienmēr var atstāt augstu, ja vēlaties

Kaskādēšanai var izmantot divas tapas - Os un Os1. Os ir paredzēts strauji augošiem pulksteņiem, bet Os1 - lēni augošiem pulksteņiem. Pievienojiet šo tapu nākamās maiņas reģistra datu tapai, un pārpalikums no šīs mikroshēmas tiks ievadīts nākamajā.

Displeja adresēšana

Programmas paraugā esmu izveidojis 8 baitu masīvu ar nosaukumu row_buffer . Katrs baits atbilst vienai 8x8 displeja rindai, 0. rinda ir apakšējā un 7. rinda ir augšējā. Katras rindas vismazākais bits ir labajā pusē, bet nozīmīgākais - kreisajā pusē. Displeja nomaiņa ir tikpat vienkārša kā jaunas vērtības ierakstīšana šim datu masīvam, pārtraukuma pakalpojumu rutīna rūpējas par displeja atsvaidzināšanu.

Programmēšana

Programmēšana šeit netiks detalizēti apskatīta. Es brīdinu jūs neizmantot DAPA programmēšanas kabeli, jo es uzskatu, ka jūs nevarēsit ieprogrammēt mikroshēmu, kad tā darbosies 12 MHz. Visiem citiem standarta programmētājiem vajadzētu strādāt (STK500, MKII, Dragon, Parallel/Serial programmētāji utt.). Drošinātāji: noteikti ieprogrammējiet drošinātājus, lai izmantotu 12MHz kristāla drošinātāju: 0xC9lfuse: 0xEF

Darbībā

Kad esat ieprogrammējis mikroshēmu, displejam vajadzētu ritināt "Hello World!". Šeit ir video par LED matricu darbībās. Video kvalitāte ir diezgan zema, jo es to izdarīju ar savas digitālās kameras video funkciju, nevis ar pareizu video vai tīmekļa kameru.

5. solis: moduļu koncepcijas

Moduļu jēdzieni
Moduļu jēdzieni
Moduļu jēdzieni
Moduļu jēdzieni
Moduļu jēdzieni
Moduļu jēdzieni
Moduļu jēdzieni
Moduļu jēdzieni

Šis projekts ir mērogojams. Vienīgais patiesais ierobežojošais faktors būs tas, cik lielu strāvu var nodrošināt jūsu barošanas avots. (Otra realitāte ir tas, cik gaismas diodes un reģistra pārslēdzēji jums ir pieejami).

Matemātika

Es vadu gaismas diodes pie aptuveni 15mA (5V-1.8vDrop/220ohms = 14.5mA). Tas nozīmē, ka es varu vadīt līdz 33 kolonnām ar mic2981 draiveri (500mA/15mA = 33,3). Sadalot ar 8, mēs redzam, ka tas ļauj mums sasaistīt 4 maiņu reģistrus. Ņemiet vērā arī to, ka nav nepieciešams, lai visas 32 kolonnas stiepjas no kreisās uz labo pusi. Tā vietā jūs varat izveidot 16x16 masīvu, kas ir pieslēgts tāpat kā 8x32 masīvs. To varētu atrisināt, pārvietojot 4 baitus … pirmie divi pārvietotos līdz 9. rindas līderiem, otrie divi baiti pārvietotos pirmajā rindā. Abas rindas tiktu iegūtas ar vienu tapu uz rindas draivera.

Kaskādes maiņu reģistri

Izmantotie maiņu reģistri ir kaskādes maiņu reģistrs. Tas nozīmē, ka, pārslēdzot datus, pārplūde parādās uz Os pin. Tas kļūst ļoti noderīgs, jo maiņu reģistru kopu var savienot viens ar otru, Os pin ar datu tapu, pievienojot 8 kolonnas ar katru jaunu mikroshēmu. Visi maiņu reģistri izveidos savienojumu ar tiem pašiem slēdzenes, pulksteņa un iespējošanas izejas tapām mikrokontrolleru. "Kaskādes" efekts tiek radīts, kad pirmās maiņas reģistra Os ir savienots ar otrā datu tapu. Programmēšana būs jāmaina, lai atspoguļotu palielināto kolonnu skaitu. Gan buferis, kurā tiek glabāta informācija, gan funkcija, kas pārvieto informāciju par katru kolonnu, ir jāatjaunina, lai atspoguļotu faktisko kolonnu skaitu. Tālāk kā piemērs ir sniegta shematiska informācija.

Vairāku rindu draiveri

Rindas draiveris (mic2981) var iegūt pietiekami daudz strāvas, lai vadītu 32 kolonnas. Ko darīt, ja vēlaties vairāk nekā 32 slejas? Jābūt iespējai izmantot vairāku rindu draiverus, neizmantojot vairāk mikrokontrolleru tapas. Mums ir nepieciešami rindu draiveri, lai iegūtu pietiekami daudz strāvas, lai iedegtu gaismas diodes. Ja vienlaikus izmantojat vairāk kolonnu, nekā iespējams izgaismot, papildu rindu draiveri var piegādāt nepieciešamo strāvu. Tiek izmantotas vienas un tās pašas mikrokontrollera ievades tapas, tāpēc nav jāmaina rindu skenēšana. Citiem vārdiem sakot, katrs vadītājs kontrolē 8x32 bloka rindas. Lai gan 64 kolonnām var būt vienāds FIZISKAIS rindu izvietojums, mēs sadalām rindu kopnes divās daļās, izmantojot vienu draiveri pirmo 32 kolonnu 8 rindām un otru draiveri 8 32 otrās kolonnas rindām un tā tālāk. Zemāk kā piemērs ir sniegta shematiska shēma. Iespējamās kļūdas: Neizmantojiet vairāku rindu draiverus ar vienādu kolonnu skaitu. Tas nozīmētu, ka katra maiņas reģistra tapa vienlaikus vadītu vairāk nekā vienu gaismas diodi. Jums ir jābūt 8 rezistoru komplektam (3k3) katram rindas vadītājam, viens komplekts vairāku rindu draiveriem nedarbosies, jo tas nenodrošinās vajadzīgo strāvu vārtu pārslēgšanai.

Piemēram

Es nolēmu paplašināt iepriekš izveidoto matricu. Esmu pievienojis vēl 7 rindas kopā 15, jo tas ir viss, ko es varu ievietot šajā protoboard. Es arī tikko uzzināju par konkursu, ko Instructables dara, ar nosaukumu "Ļaujiet tai mirdzēt". Šeit ir video no mana viedokļa par to. Vēlreiz sakot, digitālā kamera, ko izmantoju, lai uzņemtu video, to nedara taisnīgi. Cilvēka acīm tas izskatās lieliski, it īpaši, ja mirgo visas gaismas diodes, taču videoklipā tas neizskatās gandrīz tikpat labi. Izbaudiet: šī lielāka displeja avota kods ir iekļauts zemāk.

6. darbība. Secinājums

Iespējamie papildinājumi

I2CI ir atstājuši divu vadu interfeisa (I2C) tapas neizmantotas šajā dizainā. Ir vairākas interesantas izredzes, kuras var izmantot šīs divas tapas. I2C EEPROM pievienošana ļaus saglabāt daudz lielākus ziņojumus. Pastāv arī izredzes izstrādāt programmēšanu, lai pārvērstu mega8 par I2C saderīgu displeja draiveri. Tas pavērtu iespēju, ka USB iespējošanas ierīce parādīs datus jūsu LED blokā, pārnesot tos pāri I2C kopnei. Tas ļautu ziņojumus ieprogrammēt, izmantojot izvēlņu sistēmu. Viens vienkārši raksta rakstzīmes displejā, otrs ritina rakstzīmes displejā. Svarīgi atcerēties, ka tas, ko redzat gaismās, ir attēlots datu masīvā. Ja jūs izdomājat šķelšanas veidus, kā mainīt datu masīvu, gaismas mainīsies tādā pašā veidā. Dažas vilinošas iespējas ietver grafisko skaitītāju izveidi no kolonnām. To var izmantot kā signāla analizatoru ar stereo. Ritināšanu var īstenot no augšas uz leju vai no apakšas uz augšu, pat no kreisās uz labo. Veiksmi, izklaidējies!

7. darbība. Sekojiet līdzi

Sekot līdzi
Sekot līdzi
Sekot līdzi
Sekot līdzi
Sekot līdzi
Sekot līdzi
Sekot līdzi
Sekot līdzi

Ļaujot kontroliera shēmai vairākus mēnešus sēdēt maizes plāksnē, es beidzot izveidoju un iegravēju dažas shēmas plates, lai saliktu šo prototipu. Viss izdevās lieliski, es nedomāju, ka būtu kaut kas, ko es būtu darījis citādi.

Shēmas plates īpašības

  • Maiņu reģistri atrodas atsevišķos dēļos, kurus var sasaistīt kopā, lai palielinātu displeja izmēru.
  • Vadības panelim ir savs jaudas regulators, tāpēc to var darbināt jebkurš barošanas avots, kas nodrošina 7v-30v (9v akumulators vai 12v stenda barošana man abas darbojas lieliski).
  • Iekļauta 6 kontaktu ISP galvene, lai mikrokontrolleru varētu pārprogrammēt, nenoņemot to no tāfeles.
  • Pieejama 4 kontaktu galvene turpmākai I2C kopnes izmantošanai. To varētu izmantot eeprom, lai saglabātu vairāk ziņojumu vai pat padarītu to par vergu ierīci, ko kontrolē cits mikrokontrolleris (RSS atzīme ikviens?)
  • Dizainā ir iekļautas 3 īslaicīgas spiedpogas. Nākotnē es varu pielāgot programmaparatūru, lai iekļautu šo pogu izmantošanu.

Montāža

Dodiet man organisko stiklu, leņķa kronšteinus, 6x32 mašīnas skrūves, uzgriežņus un paplāksnes, kā arī krānu komplektu caurumu vītņošanai, un es varu izveidot jebko.

Otrā balva - Ļaujiet tai mirdzēt!

Ieteicams: