Orodha ya maudhui:

Matrix ya LED Kutumia Sajili za Shift: Hatua 7 (na Picha)
Matrix ya LED Kutumia Sajili za Shift: Hatua 7 (na Picha)

Video: Matrix ya LED Kutumia Sajili za Shift: Hatua 7 (na Picha)

Video: Matrix ya LED Kutumia Sajili za Shift: Hatua 7 (na Picha)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Novemba
Anonim
Matrix ya LED Kutumia Sajili za Shift
Matrix ya LED Kutumia Sajili za Shift
Matrix ya LED Kutumia Sajili za Shift
Matrix ya LED Kutumia Sajili za Shift
Matrix ya LED Kutumia Sajili za Shift
Matrix ya LED Kutumia Sajili za Shift

Hii inaweza kufundishwa kuwa maelezo kamili zaidi kuliko zingine zinazopatikana mkondoni. Hasa, hii itatoa maelezo zaidi ya vifaa kuliko inavyopatikana kwenye Marquee ya LED inayoweza kufundishwa na led555.

Malengo

Hii inaweza kufundisha dhana zinazohusika na rejista za mabadiliko na madereva ya upande wa juu. Kwa kuonyesha dhana hizi na tumbo la 8x8 la LED natumahi kukupa zana zinazohitajika kuzoea na kupanuka kwa saizi na mpangilio mradi wako unahitajika.

Uzoefu na Ujuzi

Ningepima mradi huu kuwa wa shida ya kati:

  • Ikiwa tayari una uzoefu wa programu ndogo za kudhibiti na kufanya kazi na LEDs mradi huu unapaswa kuwa rahisi kwako kukamilisha na kuongeza safu kubwa za taa.
  • Ikiwa unaanza tu na watawala wadogo na umeangaza LED au mbili unapaswa kuweza kukamilisha mradi huu kwa msaada kutoka kwa rafiki yetu google.
  • Ikiwa una uzoefu mdogo au hauna uzoefu na wadhibiti wadogo au programu hii labda ni zaidi ya kile unapaswa kujiingiza mwenyewe. Jaribu miradi mingine michache ya kuanza na urudi ukiwa na programu zingine za uandishi wa uzoefu kwa watawala wadogo.

Kanusho na Mikopo

Kwanza, mimi sio mhandisi wa umeme. Ikiwa utaona kitu kibaya, au sio mazoezi bora, tafadhali nijulishe na nitakurekebisha. Fanya hivi kwa hatari yako mwenyewe! Unapaswa kujua unachofanya au unaweza kusababisha uharibifu kwa kompyuta yako, mdhibiti wako mdogo, na hata wewe mwenyewe. Nimejifunza mengi kutoka kwa wavuti, haswa kutoka kwa vikao kwenye: https://www.avrfreaks.net ninatumia seti ya fonti ambayo ilikuja na maktaba ya ks0108 ya jumla C. Angalia hiyo hapa:

Hatua ya 1: Sehemu

Orodha ya Sehemu

Sehemu za Jumla

Ili kutengeneza gridi ya 8x8 ya LED na kuzidhibiti utahitaji:

  • LED za 64 za chaguo lako
  • 8 Resistors kwa LEDs
  • Sajili 1 ya Shift kwa safu
  • Safu 1 ya dereva kwa safu
  • Vipinga 8 vya kubadili safu ya dereva
  • Mdhibiti 1 mdogo
  • Chanzo cha saa 1 cha microcontroller
  • Bodi 1 ya kuiga
  • Ugavi 1 wa umeme
  • Waya ya kuunganisha

Sehemu Maalum Zinazotumiwa Hapa

Kwa hili kufundishwa nilitumia yafuatayo:

  • LED za kijani 64 (Sehemu ya Mouser # 604-WP7113GD)
  • Vipinzani vya 8 220ohm 1/4 watt kwa LEDs (Sehemu ya Mouser # 660-CFS1 / 4CT52R221J)
  • Dereva 1 wa HEF4794 na daftari la mabadiliko (Mouser sehemu # 771-HEF4794BPN)
  • 1 mic2981 High-Voltage High-Current Source Array Array (Sehemu ya Digikey # 576-1158-ND)
  • Vipinga vya 8 3.3kohm 1/4 watt kwa kubadilisha safu ya dereva (Sehemu ya Redio Shack # 271-1328)
  • Mdhibiti mdogo wa 1 Atmel ATmega8 (Sehemu ya Mouser # 556-ATMEGA8-16PU)
  • Kioo 1 12MHz kwa chanzo cha saa ya microcontroller (sehemu ya Mouser # 815-AB-12-B2)
  • Bodi ya prototyping ya shimo 1 2200 (Radio Shack sehemu # 276-147)
  • Ugavi wa umeme uliobadilishwa wa ATX: Tazama hii inayoweza kufundishwa
  • Waya thabiti wa waya wa 22-awg (Radio Shack sehemu # 278-1221)
  • Bodi ya mkate isiyo na waya (Redio Shack sehemu # 276-169 (haipatikani tena, jaribu: 276-002)
  • Joka la AVR (Sehemu ya Mouser # 556-ATAVRDRAGON)
  • Joka Rider 500 na Teknolojia za Ecros: Tazama Hii Inayoweza kufundishwa

Vidokezo Kuhusu Sehemu

Madereva wa safu na safu: Labda sehemu ngumu zaidi ya mradi huu ni kuokota safu na safu za safu. Kwanza, sidhani kama rejista ya kawaida ya 74HC595 ni wazo nzuri hapa kwa sababu hawawezi kushughulikia aina ya sasa tunayotaka kutuma kupitia LED. Hii ndio sababu nilichagua dereva wa HEF4794 kwani inaweza kuzama kwa urahisi sasa wakati vichwa vyote 8 viko katika safu moja vimewashwa. Rejista ya zamu iko upande wa chini (pini ya chini ya viongozo). Tutahitaji dereva wa safu ambayo inaweza kupata sasa ya kutosha kuunganisha safu nyingi pamoja. Mic2981 inaweza kusambaza hadi 500mA. Sehemu nyingine pekee ambayo nimepata ambayo hufanya kazi hii ni UDN2981 (sehemu ya digikey # 620-1120-ND) ambayo ni sehemu sawa na mtengenezaji tofauti. Tafadhali nitumie ujumbe ikiwa unajua juu ya madereva mengine ya upande wa juu ambayo yangefanya kazi vizuri katika programu hii. Matrix ya LED: Matrix hii ni 8x8 kwa sababu safu na safu za safu kila moja ina pini 8. Safu kubwa ya LED inaweza kujengwa kwa kuunganisha matrices kadhaa pamoja na itajadiliwa katika hatua ya "dhana za msimu". Ikiwa unataka safu kubwa, agiza sehemu zote zinazohitajika kwa wakati mmoja. Kuna matriki ya 8x8, 5x7 na 5x8 za LED zinazopatikana kwenye kifurushi kimoja rahisi. Hizi zinapaswa kuwa rahisi kuchukua nafasi ya matrix ya diy. Ebay ni chanzo kizuri kwa haya. Mouser ina vitengo 5x7 kama vile sehemu ya # 604-TA12-11GWA. Nilitumia LED za bei rahisi za kijani kibichi kwa sababu ninacheza tu na kufurahiya. Kutumia zaidi juu ya mwangaza wa hali ya juu, mwangaza wa hali ya juu LED zinaweza kukuruhusu utoe onyesho la kuvutia zaidi la kutazama … hii ni nzuri kwangu! Utahitaji programu kwa hili. Kwa sababu mimi nina prototyping ninatumia Dragon Rider 500 ambayo nimeandika mafundisho ya mkutano na matumizi. Hii ni zana rahisi ya kuiga na ninaipendekeza sana.

Hatua ya 2: Matrix

Matrix
Matrix
Matrix
Matrix
Matrix
Matrix

Nitaunda matrix yangu ya LED kwa mradi huu kwa kutumia vichwa vya 5mm na bodi ya prototyping kutoka Radio Shack. Ikumbukwe kwamba unaweza kununua moduli zilizoongozwa na matone 8x8 kutoka kwa vyanzo kadhaa, pamoja na ebay. Wanapaswa kufanya kazi vizuri tu na hii inayoweza kufundishwa.

Mawazo ya Ujenzi

Alignment: LEDS zinahitaji kuwekwa sawa ili zikabili mwelekeo huo kwa pembe moja. Niligundua chaguo rahisi kwangu ilikuwa kuweka mwili wa taa ya LED kwenye ubao na kuishikilia hapo na kipande kidogo cha plexiglass na clamp. Niliweka taa kadhaa za LED mahali pa inchi kadhaa kutoka kwa safu niliyokuwa nikifanya kazi ili kuhakikisha kuwa plexiglass ilikuwa sawa na bodi ya prototyping. Mistari na nguzo Tunahitaji kuwa na unganisho la kawaida kwa kila safu na kila safu. Kwa sababu ya uchaguzi wetu wa safu na safu ya dereva tunahitaji kuwa na anode (mwongozo mzuri wa LED) iliyounganishwa na safu na cathode (risasi hasi ya LED) iliyounganishwa na safu. Kudhibiti waya Kwa mfano huu ninatumia waya thabiti wa msingi (kondakta mmoja). Hii itakuwa rahisi sana kuunganishwa na ubao wa mkate usiouzwa. Jisikie huru kutumia aina tofauti ya kiunganishi ili kukidhi mradi wako.

Kujenga Matrix

1. Weka safu ya kwanza ya LED kwenye bodi ya prototyping.2. Angalia mara mbili kuwa polarity yako kwa kila LED ni sahihi, hii itakuwa ngumu sana kurekebisha ikiwa utagundua baadaye. Solder inaongoza kwa LED kwenye bodi. Angalia kuhakikisha kuwa zimepangiliwa kwa usahihi (sio kwa pembe za kushangaza) na bonyeza sehemu za cathode. Hakikisha haukukopi mwongozo wa anode, tutahitaji hiyo baadaye basi iache ikielekeza juu. Ondoa insulation kutoka kwa kipande cha waya msingi msingi. Solder kipande hiki cha waya kwa kila katoni moja kwa moja kwenye kiwango cha bodi.

  • Niliweka hii kila mwisho kisha nikarudi na kuongeza kidogo ya solder katika kila makutano.
  • Waya hii inapaswa kupitisha LED yako ya mwisho ili kutengeneza kiolesura rahisi tunapoongeza waya za kudhibiti.

5. Rudia sehemu 1-4 mpaka uwe na LED zote mahali na mabasi yote ya safu yameuzwa. Ili kuunda basi ya safu, pindisha anode kadhaa zinazoongoza kwa pembe ya digrii 90 ili waguse anode nyingine inayoongoza kwenye safu moja.

  • Kuna picha za kina za hii hapa chini.
  • Jihadharini usiruhusu hizi ziwasiliane na mabasi ya safu, na kuunda mzunguko mfupi.

7. Solder inaongoza katika kila makutano na klipu mbali anode inayozidi inaongoza.

Acha anode ya mwisho ikibaki nyuma ya LED ya mwisho. Hii itatumika kuunganisha waya za kudhibiti dereva

8. Rudia sehemu 6 na 7 mpaka mabasi yote ya safu yameuzwa. Ambatisha waya za kudhibiti.

  • Nilitumia waya wa msingi mwekundu kwa safu na nyeusi kwa safu.
  • Unganisha waya moja kwa kila safu na moja kwa kila safu. Hii inaweza kufanywa kwa urahisi mwishoni mwa kila basi.

Muhimu

Matrix hii ya LED haina vipinga vizuizi vya sasa. Ukijaribu hii bila vipinzani labda utachoma taa zako za LED na kazi hii yote itakuwa bure.

Hatua ya 3: Vifaa vya Kudhibiti

Vifaa vya Kudhibiti
Vifaa vya Kudhibiti
Vifaa vya Kudhibiti
Vifaa vya Kudhibiti

Tunahitaji kudhibiti nguzo na safu za matrix yetu ya LED. Matrix imejengwa ili Anode (upande wa voltage ya LED) iwe safu, na Cathode (upande wa chini wa LED) hufanya nguzo. Hii inamaanisha dereva wetu wa safu anahitaji kupata chanzo cha sasa na dereva wetu wa safu anahitaji kuzama. Ili kuokoa kwenye pini ninatumia rejista ya mabadiliko kudhibiti safu. Kwa njia hii naweza kudhibiti idadi isiyo na kikomo ya nguzo na pini nne tu za microcontroller. Inawezekana kutumia tatu tu ikiwa Wezesha pini ya Pato imefungwa moja kwa moja na voltage. Nimechagua dereva wa LED wa HEF4794 na rejista ya mabadiliko. Hii ni chaguo bora kuliko kiwango cha 74HC595 kwani inaweza kuzama kwa urahisi sasa wakati LED zote 8 ziko kwa wakati mmoja. Kwa upande wa juu (chanzo cha sasa cha safu) ninatumia mic2981. Mpangilio unaonyesha UDN2981, naamini hizi mbili zinabadilishana. Dereva huyu anaweza kupata hadi 500mA ya sasa. Kwa sababu tunaendesha safu 1 tu kwa wakati hii inatoa nafasi nyingi kwa upanuzi, hadi nguzo 33 za chip hii (zaidi juu ya hiyo katika hatua ya "dhana za kawaida").

Kujenga Vifaa vya Kudhibiti

Kwa hili linaweza kufundishwa kwa mkate huu tu. Kwa suluhisho la kudumu zaidi utataka kuweka bodi yako ya mzunguko au utumie bodi ya prototyping. Dereva wa Safu

  • Weka mic2981 (au UDN2981) kwenye ubao wa mkate
  • Unganisha Pin 9 kwa Voltage (Hii inachanganya katika skimu)
  • Unganisha Pin 10 kwa Ardhi (Hii inachanganya katika skimu)
  • ingiza vipinga 3k3 vinavyounganisha na pini 1-8
  • Unganisha kutoka Port D ya ATmega8 (PD0-PD8) hadi vipingamizi 8
  • Unganisha waya 8 za kudhibiti safu ya tumbo la LED kwenye pini 11-18 (kumbuka kuwa nimeunganisha safu ya chini kabisa ya LED kwa Pin 18 na safu ya Juu kabisa kwa Pin 11).

2. Dereva wa safu

  • Weka hef4794 kwenye ubao wa mkate
  • Unganisha Pin 16 kwa voltage
  • Unganisha Pin 8 chini
  • Unganisha vipingao vya ohm 220 kwa Pini 4-7 na 11-14.
  • Unganisha waya za kudhibiti safu wima 8 kutoka kwa tumbo la LED hadi vipingamizi 8 ambavyo umeunganisha tu.
  • Unganisha Pin1 (Latch) kwa PC0 ya ATmega8
  • Unganisha Pin2 (Takwimu) kwa PC1 ya ATmega8
  • Unganisha Pin3 (Saa) kwa PC2 ya ATmega8
  • Unganisha Pin15 (Wezesha Pato) kwa PC3 ya ATmega8

3. Saa Kioo

Unganisha kioo cha 12MHz na capacitors ya mzigo kama inavyoonekana katika mpango

4. ISP

Unganisha kichwa cha programu kama inavyoonekana katika skimu

5. Kuchuja capacitor na kontena la kuvuta

  • Ni bora kuchuja voltage iliyotolewa kwa ATmega8. Tumia capacitor ya 0.1uf kati ya Pin 7 & 8 ya ATmega8
  • Pini ya kuweka upya haipaswi kushoto ikielea kwani inaweza kusababisha upangaji wa nasibu. Tumia kontena kuiunganisha na voltage, chochote kuhusu 1k kinapaswa kuwa kizuri. Nimetumia kontena la 10k katika skimu.

6. Hakikisha unatumia nguvu + 5v iliyosimamiwa. Ni juu yako kubuni mdhibiti.

Hatua ya 4: Programu

Ujanja

Ndio, kama kila kitu, kuna ujanja. Ujanja ni kwamba hakuna taa zaidi ya 8 zilizoangazwa kwa wakati mmoja. Ili hii ifanye kazi vizuri, mipango ya ujanja inahitajika. Wazo nililochagua ni kutumia kukatisha timer. Hivi ndivyo onyesho la usumbufu linavyofanya kazi kwa Kiingereza wazi:

  • Timer inahesabu hadi wakati fulani, wakati utaratibu wa usumbufu wa huduma unafikiwa.
  • Utaratibu huu huamua ni safu ipi inayofuata kuonyeshwa.
  • Habari ya safu inayofuata imeangaziwa kutoka kwa bafa na kuhamishiwa kwa dereva wa safu (habari hii "haijatundikwa" kwa hivyo bado haijaonyeshwa).
  • Dereva wa safu imefungwa, hakuna taa za taa zilizowashwa kwa sasa.
  • Dereva wa safu "amepigwa" katika habari tuliyohamisha katika hatua mbili zilizopita habari ya sasa ya kuonyesha.
  • Dereva wa safu kisha hutoa sasa kwa safu mpya tunayoonyesha.
  • Utaratibu wa usumbufu wa huduma huisha na mpango unarudi kwa mtiririko wa kawaida hadi usumbufu unaofuata.

Hii hufanyika haraka sana. Usumbufu unatupwa kila mSec 1. Hii inamaanisha kuwa tunaburudisha onyesho lote mara moja kila mSec 8. Hii inamaanisha kiwango cha kuonyesha cha karibu 125Hz. Kuna wasiwasi fulani kuhusu mwangaza kwa sababu sisi kwa kweli tunatumia LED kwenye mzunguko wa ushuru wa 1/8 (wamezimwa 7/8 ya wakati huo). Kwa upande wangu napata onyesho la kutosha lenye kung'aa bila mwangaza unaoonekana. Onyesho kamili la LED limepangwa kwa safu. Katikati kati ya kukatiza safu inaweza kubadilishwa (kukumbuka atomiki) na itaonekana kwenye onyesho wakati wa usumbufu unaofuata. Maalum ya nambari ya uandishi kwa mdhibiti mdogo wa AVR na jinsi ya kuandika nambari ya kuzungumza na rejista za mabadiliko ni zaidi ya upeo ya hii inayoweza kufundishwa. Nimejumuisha nambari ya chanzo (iliyoandikwa kwa C na kukusanywa na AVR-GCC) pamoja na faili ya hex ili kupanga moja kwa moja. Nimetoa maoni nambari zote kwa hivyo unapaswa kutumia hii kusafisha maswali yoyote juu ya jinsi ya kupata data kwenye rejista ya mabadiliko na jinsi safu ya safu inavyofanya kazi. Tafadhali kumbuka kuwa ninatumia faili ya fonti iliyokuja na ks0108 universal C maktaba. Maktaba hiyo inaweza kupatikana hapa:

Rejista za Shift: Jinsi ya

Nimeamua kuongeza kidogo juu ya jinsi ya kupanga na rejista za mabadiliko. Natumahi hii inafuta mambo kwa wale ambao hawajafanya kazi nao hapo awali. Wanachofanya Sajili za Shift huchukua ishara kutoka kwa waya moja na kutoa habari hiyo kwa pini nyingi tofauti. Katika kesi hii, kuna waya moja ya data ambayo inachukua data na pini 8 ambazo zinadhibitiwa kulingana na data gani imepokelewa. Ili kufanya mambo kuwa bora, kuna matokeo kwa kila rejista ya mabadiliko ambayo inaweza kushikamana na pini ya kuingiza ya rejista nyingine ya mabadiliko. Hii inaitwa kuteleza na inafanya uwezekano wa upanuzi kuwa matarajio karibu ya ukomo. Sajili za PiniShift ya Udhibiti ina pini 4 za kudhibiti:

  • Latch - Pini hii inaambia rejista ya kuhama wakati wa kubadili data mpya iliyoingia
  • Takwimu - 1 na 0 zinaambia sajili ya mabadiliko ni pini gani za kuamsha zinapokelewa kwenye pini hii.
  • Saa - Hii ni mapigo yaliyotumwa kutoka kwa mdhibiti mdogo ambaye huiambia sajili ya zamu kuchukua usomaji wa data na kuhamia hatua inayofuata katika mchakato wa mawasiliano
  • Wezesha Pato - Hii ni kitufe cha kuwasha / kuzima, Juu = Kuwasha, Chini = Zima

Kuifanya ifanye zabuni yako: Hapa kuna kozi ya ajali katika utendaji wa pini za kudhibiti hapo juu: Hatua ya 1: Weka Latch, Data, na Saa chini

Kuweka Latch chini inaelezea rejista ya mabadiliko tunakaribia kuiandikia

Hatua ya 2: Weka pini ya Takwimu kwa thamani ya mantiki unayotaka kutuma kwa Rejista ya Shift

Maadili mengine yote yaliyopo kwenye Daftari la Shift yatapita kwa nafasi 1, ikitoa nafasi kwa thamani ya sasa ya mantiki ya pini ya Takwimu

Hatua ya 4: Weka Pini ya Saa Chini na kurudia hatua 2 na 3 hadi data yote itumwe kwa rejista ya zamu.

Pini ya saa lazima iwekwe chini kabla ya kubadilika kuwa nambari inayofuata ya Takwimu. Kubadilisha pini hii kati ya juu na chini ndio huunda "saa ya saa" rejista ya zamu inahitaji kujua wakati wa kuelekea hatua inayofuata katika mchakato

Hatua ya 5: Weka Latch juu

Hii inaambia rejista ya zamu kuchukua data yote ambayo imehamishiwa na kuitumia kuamsha pini za pato. Hii inamaanisha kuwa hautaona data wakati inahamia; hakuna mabadiliko katika pini za pato yatatokea hadi Latch iwekewe juu

Hatua ya 6: Weka Wezesha Pato juu

  • Hakutakuwa na pato la pini hadi Wezesha Pato kuwekwa juu, bila kujali ni nini kinatokea na pini zingine tatu za kudhibiti.
  • Pini hii inaweza kushoto juu kila wakati ikiwa unataka

Kuna pini mbili ambazo unaweza kutumia kwa kuachia, Os na Os1. Os ni ya saa zinazoinuka haraka na Os1 ni ya saa zinazoinuka polepole. Bonyeza pini hii kwenye pini ya data ya rejista inayofuata ya mabadiliko na kufurika kutoka kwa chip hii kutaingizwa kwenye ijayo.

Kushughulikia onyesho

Katika mpango wa mfano nimeunda safu ya ka 8 zinazoitwa row_buffer . Kila baiti inalingana na safu moja ya onyesho la 8x8, safu ya 0 kuwa chini na safu ya 7 kuwa ya juu. Kidogo kidogo cha kila safu iko upande wa kulia, kidogo muhimu zaidi kushoto. Kubadilisha onyesho ni rahisi kama kuandika dhamana mpya kwa safu hiyo ya data, utaratibu wa huduma wa kusumbua hutunza kuburudisha onyesho.

Kupanga programu

Programu haitajadiliwa kwa kina hapa. Ningekuonya usitumie kebo ya programu ya DAPA kwani ninaamini hautaweza kupanga chip mara tu inapoanza saa 12MHz. Vipindi vingine vyote vya kawaida vinapaswa kufanya kazi (STK500, MKII, Dragon, Parallel / program programmers, nk.) Fuses: Hakikisha kupanga fuses kutumia 12MHz crystalhfuse: 0xC9lfuse: 0xEF

Katika Utekelezaji

Mara tu unapopanga chip chipu onyesho linapaswa kutembeza "Hello World!". Hapa kuna video ya tumbo la LED kwa vitendo. Ubora wa video uko chini sana kwani nilifanya hii na kipengee cha video ya kamera yangu ya dijiti na sio video sahihi au kamera ya wavuti.

Hatua ya 5: Dhana za kawaida

Dhana za Msimu
Dhana za Msimu
Dhana za Msimu
Dhana za Msimu
Dhana za Msimu
Dhana za Msimu
Dhana za Msimu
Dhana za Msimu

Mradi huu ni wa kutisha. Sababu pekee ya kweli itakuwa kiwango cha sasa cha usambazaji wa umeme wako. (Ukweli mwingine ni ngapi LED na sajili za shifters ulizonazo zinapatikana).

Hesabu

Ninaendesha LEDs karibu 15mA (5V-1.8vDrop / 220ohms = 14.5mA). Hii inamaanisha naweza kuendesha hadi nguzo 33 na dereva wa mic2981 (500mA / 15mA = 33.3). Imegawanywa na 8 tunaweza kuona kwamba hii inatuwezesha kuunganisha pamoja rejista 4 za mabadiliko. Pia fikiria kuwa hauitaji kuwa na nguzo 32 zote kunyoosha kutoka kushoto kwenda kulia. Unaweza badala kuunda safu ya 16x16 ambayo imeunganishwa kwa njia ile ile ungefanya safu ya 8x32. Hii ingeshughulikiwa kwa kuhama kwa ka 4…. mbili za kwanza zingehamia kwa vielekezi kwa safu ya 9, ka mbili mbili za pili zingehamia kwenye safu ya kwanza. Safu zote mbili zingetolewa na pini moja kwenye dereva wa safu.

Sajili za Kuhama za Shift

Rejista za mabadiliko zinazotumika ni kuandikisha rejista ya mabadiliko. Hii inamaanisha kuwa wakati unahamisha data, kufurika kunaonekana kwenye pini ya Os. Inakuwa muhimu sana kwa kuwa seti ya rejista za mabadiliko zinaweza kushikamana kwa kila mmoja, pini ya Os kwa pini ya Takwimu, na kuongeza safu 8 kwa kila chip mpya. Rejista zote za zamu zitaunganisha kwenye Latch, Clock, na Wezesha pini sawa za Pato. mdhibiti mdogo. Athari ya "kuteleza" huundwa wakati Os ya sajili ya kwanza ya shifti imeunganishwa na pini ya Takwimu ya pili. Programu itahitaji kubadilishwa ili kuonyesha idadi iliyoongezeka ya nguzo. Wote bafa ambayo huhifadhi habari na kazi inayobadilisha habari kwa kila safu inahitaji kusasishwa ili kuonyesha idadi halisi ya nguzo. Mpango wa hii umepewa hapa chini kama mfano.

Madereva mengi ya safu

Dereva wa safu (mic2981) anaweza kupata chanzo cha kutosha kuendesha safu 32. Je! Ikiwa unataka zaidi ya safu 32? Inapaswa kuwa inawezekana kutumia madereva kadhaa ya safu bila kutumia pini zaidi za microcontroller. Tunahitaji madereva ya safu kupata chanzo cha kutosha kuwasha LED. Ikiwa unatumia nguzo zaidi kuliko inavyowezekana kwa wakati mmoja, dereva za safu ya kuongeza zinaweza kusambaza sasa inayohitajika. Pini sawa za kuingiza kutoka kwa microcontroller hutumiwa kwa hivyo hakuna haja ya kubadilisha skanning ya safu. Kwa maneno mengine, kila dereva hudhibiti safu za kuzuia 8x32. Ingawa nguzo 64 zinaweza kuwa na uwekaji huo wa safu ya MWILI, tunagawanya mabasi ya safu mbili, tukitumia dereva mmoja kwa safu 8 za safu 32 za kwanza, na dereva wa pili kwa safu 8 za safu 32 za pili na kadhalika. Mpangilio wa hii umetolewa hapa chini kama mfano. Usitumie madereva ya safu nyingi na idadi sawa ya nguzo. Kufanya hivyo kungemaanisha kuwa kila pini ya rejista ya zamu ingekuwa ikiendesha zaidi ya LED moja kwa wakati. Lazima uwe na seti ya vizuizi 8 (3k3) kwa kila dereva wa safu, seti moja ya madereva ya safu nyingi haitafanya kazi kwani haitatoa sasa muhimu kubadili milango.

Kwa mfano

Niliamua kupanua kwenye tumbo nililojenga mapema. Nimeongeza safu 7 zaidi kwa jumla ya 15 kwani ndio tu ninayoweza kutoshea kwenye kitabu hiki cha maandishi. Pia nimegundua tu juu ya mashindano ambayo Maagizo yanafanya inayoitwa "Let it Glow". Hapa kuna video ya kuchukua kwangu hiyo. Mara nyingine tena, kamera ya dijiti niliyokuwa nikichukua video haifanyi haki. Hii inaonekana nzuri kwa jicho la mwanadamu, haswa ambapo taa zote za LED zinaangaza, lakini haionekani kuwa nzuri kwenye video. Furahiya: Nambari ya chanzo ya onyesho hili kubwa imejumuishwa hapa chini.

Hatua ya 6: Hitimisho

Nyongeza zinazowezekana

I2CI nimeacha pini za waya mbili (I2C) zisizotumiwa katika muundo huu. Kuna matarajio kadhaa ya kupendeza ambayo yanaweza kutumia pini hizi mbili. Kuongezewa kwa I2C EEPROM itaruhusu uhifadhi wa ujumbe mkubwa zaidi. Pia kuna matarajio ya kubuni programu ya kugeuza mega8 kuwa dereva wa onyesho linalofaa la I2C. Hii itafungua uwezekano wa kuwa na kifaa cha USB kuwezesha data kwenye safu yako ya LED kwa kuipitisha juu ya basi ya I2C. Hii inaweza kuruhusu ujumbe kusanidiwa kupitia mfumo wa menyu. Onyesha Kwa hii inayoweza kufundishwa nilitekeleza tu kazi kadhaa za kuonyesha. Mmoja anaandika tu herufi kwenye onyesho, vibambo vingine hutembea kwenye onyesho. Jambo muhimu kukumbuka ni kwamba kile unachokiona kwenye taa kinawakilishwa katika safu ya data. Ikiwa unakuja na njia za ujanja za kubadilisha safu ya data, taa zitabadilika kwa njia ile ile. Fursa zingine za kupendeza ni pamoja na kuunda mita ya graphing nje ya nguzo. Hii inaweza kutumika kama analyzer ya ishara na stereo. Kutembeza kunaweza kutekelezwa kutoka juu chini au chini juu, hata kushoto kwenda kulia. Bahati nzuri, furahiya!

Hatua ya 7: Fuatilia

Fuatilia
Fuatilia
Fuatilia
Fuatilia
Fuatilia
Fuatilia
Fuatilia
Fuatilia

Baada ya kuruhusu mzunguko wa mtawala kukaa kwenye ubao wa mkate kwa miezi mwishowe nilibuni na kuweka bodi kadhaa za mzunguko kuweka mfano huu pamoja. Kila kitu kilifanya kazi vizuri, sidhani kuna kitu ambacho ningefanya tofauti.

Makala ya Bodi ya Mzunguko

  • Rejista za Shift ziko kwenye bodi tofauti ambazo zinaweza kushikamana pamoja ili kuongeza saizi ya onyesho.
  • Bodi ya mdhibiti ina mdhibiti wake wa nguvu kwa hivyo hii inaweza kuendeshwa na chanzo chochote cha nguvu ambacho hutoa 7v-30v (9v betri au usambazaji wa benchi ya 12v zote zinafanya kazi vizuri kwangu).
  • Kichwa cha pini cha ISP 6 kimejumuishwa ili mdhibiti mdogo aweze kurejeshwa bila kuiondoa kwenye bodi.
  • Kichwa cha pini 4 kinapatikana kwa matumizi ya baadaye ya basi ya I2C. Hii inaweza kutumika kwa eeprom kuhifadhi ujumbe zaidi au hata kuifanya kifaa cha watumwa kudhibitiwa na mdhibiti mwingine mdogo (RSS ticker mtu yeyote?)
  • Vifungo 3 vya kushinikiza kwa muda ni pamoja na kwenye muundo. Ninaweza kurekebisha firmware katika siku zijazo kujumuisha utumiaji wa vifungo hivi.

Mkutano

Nipe plexiglass, mabano ya pembe, screws za mashine 6x32, karanga, na washers, pamoja na bomba iliyowekwa kwenye mashimo ya uzi na ninaweza kuunda chochote.

Tuzo ya Pili kwa Acha Iangaze!

Ilipendekeza: