Orodha ya maudhui:
- Hatua ya 1: Pata Bidhaa…
- Hatua ya 2: Unganisha moja kwa moja kwenye Uonyesho wa LED
- Hatua ya 3: Kubainisha Tabia ya Kuonyeshwa
- Hatua ya 4: Hifadhi Bandari za I / O na Rejista ya Shift
- Hatua ya 5: Muhtasari
Video: Kutumia Dot Matrix LED Pamoja na Arduino na Shift Register: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:56
LED ya Nokia DLO7135 Dot matrix ni kipande cha kushangaza cha vifaa vya elektroniki. Inatozwa kama Onyesho la Akili la 5x7 Dot Matrix (r) na Kumbukumbu / Decoder / Dereva. Pamoja na kumbukumbu hiyo, ina onyesho la herufi 96 ya ASCII iliyowekwa na herufi kubwa na za chini, jenereta ya wahusika iliyojengwa na multiplexer, viwango vinne vya nguvu ya mwangaza, na yote inaendeshwa kwa 5V., na kwa $ 16 pop, hakika inapaswa. Wakati nikitumia nusu ya siku kwenye duka langu la elektroniki nilipenda nilipata pipa iliyojaa hizi kwa $ 1.50 kipande. Niliacha duka na kadhaa. Mafundisho haya yatakuonyesha jinsi ya kushikamana na haya matriki ya nukta LED na kuonyesha wahusika ukitumia Arduino ya AVR. Ikiwa umesoma miongozo yangu yote ya hapo awali, unaweza kupata wazo kwamba mimi mara nyingi ninapendelea suluhisho la ujinga zaidi, na hautakuwa na makosa, hata nikikosa lengo mara kwa mara. Kwa hivyo, nitaenda pia hatua nyingine katika hii inayoweza kufundishwa na kukuonyesha jinsi unaweza kupunguza idadi ya bandari za I / O zinahitajika kuendesha hizi LED kubwa za honkin 'dot matrix.
Hatua ya 1: Pata Bidhaa…
Kwa mradi huu mfupi, utahitaji:
- Mdhibiti mdogo wa AVR kama Arduino au aina yoyote ya hiyo. Maagizo haya yanaweza kubadilishwa kwa MCU yako ya chaguo.
- DLO7135 dot matrix LED au nyingine katika familia moja
- rejista ya mabadiliko ya 8-bit kama 74LS164, 74C299, au 74HC594
- ubao wa mkate
- waya, waya za kukata, nk.
Chuma cha kuuzia haihitajiki, ingawa mimi hutumia baadaye; unaweza kupata bila hiyo.
Hatua ya 2: Unganisha moja kwa moja kwenye Uonyesho wa LED
Weka orodha yako ndogo ya sehemu na chukua LED. Weka kwenye ubao wa mkate uliozingatia kwa kiasi fulani, ukitanda katikati ya gombo la katikati. Sehemu ya kwanza ya unganisho hufanyika yote upande wa kushoto wa LED. Pini # 1 iko juu kushoto kama inavyoonyeshwa na pembetatu / mshale. Ninaweka kazi za pini kwenye picha kwa kumbukumbu yako unaposoma au kuunganisha LED yako.
Upande wa Kushoto
Chanya na Hasi Kuanzia juu kushoto, unganisha Vcc na 5V. Labda ni wazo nzuri kutowezeshwa na bodi yako hadi utumie upande mzima wa kushoto; LED inaweza kuwa mkali ikiwa unajaribu kuona mashimo madogo ili kushika waya. Unganisha chini ya kushoto ya GND chini. Mtihani wa Taa, Chip Wezesha na Andika ya 2 na ya 3 kutoka juu kushoto ni Jaribio la Taa na Chip Wezesha. Hizi zote ni mantiki hasi, maana yake zinawezeshwa wakati ziko kwenye mantiki 0 badala ya 1. Picha yangu hapa chini inapaswa kuwa na baa juu yao, lakini sikuielezea kwa yeyote kati yao. Pini ya LT ikiwezeshwa inaangazia kila nukta kwenye tumbo la nukta kwenye mwangaza wa 1/7. Ni zaidi ya jaribio la pikseli, lakini jambo la kufurahisha juu ya pini ya LT ni kwamba haitoi herufi yoyote iliyo kwenye kumbukumbu, kwa hivyo ikiwa ikiwa una kadhaa ya hizi zilizounganishwa pamoja (zina umbali wa kutazama 20ft), ikipiga LT inaweza kuifanya ionekane kama kielekezi. Ili kuhakikisha kuwa imezimwa, inganisha kwa 5V. Pini za CE na WR pia ni mantiki hasi na inahitajika kuwezeshwa kwa kifaa hiki kizuri kuandikiwa. Unaweza kudhibiti pini hizi na bandari za I / O za ziada kwenye mdhibiti wako mdogo, lakini hatutasumbua hapa. Waunganishe tu chini ili uwawezeshe. Ngazi za Mwangaza Kuna viwango vinne vya mwangaza kwenye programu ya DLO ya LED:
- Tupu
- 1/7 Mwangaza
- 1/2 Mwangaza
- Mwangaza kamili
BL1 HIGH na BL0 LOW ni 1/2 mwangaza. WOTE wa juu ni mwangaza kamili. Weka kwa chochote unachopenda. Tena, ikiwa una bandari za I / O za kuachilia na ni muhimu kwako, hii inaweza pia kudhibitiwa na Arduino yako. Hiyo inafunga upande wa kushoto. Ikiwa unaleta nguvu kwenye bodi yako unapaswa kuona taa ya LED ikiwaka. Cheza na udhibiti wa mwangaza na jaribio la taa ili ujue nalo, ikiwa unataka kujua.
Upande wa kulia
Upande wa kulia una bandari za data kabisa. Kulia chini, piga 8 au D0 kuwa sahihi, inawakilisha Kidogo Kikubwa katika herufi 7-bit. Juu kulia, pini 14 au D6 inawakilisha Kitufe Muhimu Zaidi. Hii inakuwezesha kujua ni agizo gani la kuchanganya bits zako wakati wa kuandika kwa LED. Unapokuwa na bandari za kuingiza data zilizounganishwa, pata bandari saba tupu za I / O za dijiti kwenye Arduino yako au AVR na uziunganishe. Labda unataka kukumbuka ni bandari gani ya pato la data kwenye AVR yako inakwenda kwa bandari gani ya kuingiza data kwenye LED. Sasa uko tayari kushinikiza data fulani kwenye LED hiyo nzuri. Je! Unatetemeka na msisimko bado? Najua niko…
Hatua ya 3: Kubainisha Tabia ya Kuonyeshwa
Seti ya herufi ambayo hutumiwa kwenye LED hii ya CMOS ni kukimbia kwako kwa kinu ASCII kuanzia 0x20 (decimal 32; nafasi) na kuishia 0x7F (decimal 127; kufuta, ingawa inawakilishwa kwenye LED kama picha ya mshale). Kwa hivyo, kuwa na onyesho la LED tabia haimaanishi zaidi ya kushinikiza mantiki 1 au 0 kwenye pini zako za kutoa data, kawaida ikifuatiwa na mapigo ya WR, lakini ninatabiri hilo kwa zoezi hili. ikumbukwe pini gani huenda kwa bandari gani, sivyo? Nilichagua PD [2..7] na PB0 (pini za dijiti 2 hadi 8 kwa lugha ya Arduino). Sipendekezi kutumia PD [0..1] kwa sababu ninajitolea kwa mawasiliano yangu ya mfululizo kwenye sanduku la FreeBSD, na Arduino's et al. ramani pini hizo kwenye kituo chao cha mawasiliano cha USB cha FTDI, na ingawa "wao" SEMA pini 0 na 1 zitafanya kazi ikiwa hautaanzisha mawasiliano ya serial, sijawahi kutumia pini hizo kama I / O ya kawaida ya dijiti. Kwa kweli, nilikaa siku mbili kujaribu kutatua shida wakati nilijaribu kutumia PD0 na PD1 na kugundua kuwa walikuwa juu kila wakati. * shrug * Labda itakuwa nzuri kuwa na aina fulani ya pembejeo za nje, kama vile keypad, pushwheel au switchwheel switch, au labda hata pembejeo kutoka kwa terminal (ArduinoTerm yangu haiko tayari kwa wakati mkuu bado…). Chaguo ni lako. Kwa sasa, nitaonyesha tu jinsi ya kupata nambari kupata herufi unayotaka kwenye LED. Kuna faili ya kupakua ikiwa ni pamoja na nambari ya chanzo na Makefile na pia kuna sinema fupi inayoonyesha uchapishaji wa LED nje ya tabia yake. Samahani kwa ubora wa video. Nambari iliyo hapa chini inachapisha kamba "Karibu kwenye Inayoweza Kufundishwa!" kisha mizunguko kupitia seti nzima ya herufi ambayo LED inasaidia.
DDRD = 0xFF; // PatoDDRB = (1 << DDB0); char msg = "Karibu kwenye yangu inayoweza kufundishwa!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); kuchelewa_ms (150); } kwa (i = 0x20; i <0x80; i ++) {Print2LED (i); kuchelewa_ms (150); } Chapisha2LED (& apos * & apos);}Pato la bandari linatunzwa katika kazi ya Print2Led ()
voidPrint2LED (uint8_t i) {PORTD = (i << 2); ikiwa (i & 0b01000000) PORTB = (1 <
Nambari na Makefile imejumuishwa kwenye faili ya zip hapa chini.
Hatua ya 4: Hifadhi Bandari za I / O na Rejista ya Shift
Kwa hivyo sasa mdhibiti wetu mdogo anaweza kutuma data kwa mwangaza wa nukta LED lakini inatumia bandari nane za I / O. Hiyo haijumuishi kutumia ATTiny kwenye kifurushi cha 8-pin DIP, na hata na Arduino mpya ya kucheza ATmega328p hiyo ni bandari nyingi za I / O kwa LED moja. Tunaweza kuzunguka hii, hata hivyo, kwa kutumia IC inayoitwa rejista ya mabadiliko. Wakati wa "kubadili" gia … Rejista ya zamu inaweza kueleweka vizuri kwa kufikiria juu ya maneno mawili ambayo yana jina lake: "kuhama" na "kujiandikisha." Kuhama kwa neno kunamaanisha jinsi data inapita kwenye rejista. Hapa (kama ilivyo kwa Arduino yetu na watawala wadogo, kwa jumla) rejista ni eneo ambalo lina data. Inafanya hivyo kwa kutekeleza mnyororo wa laini ya mizunguko ya mantiki ya dijiti iitwayo "flip flops" ambayo ina majimbo mawili thabiti ambayo yanaweza kuwakilishwa na 1 au 0. Kwa hivyo, kwa kuweka vijiti vinane pamoja una kifaa kinachoweza kushikilia na kuwakilisha byte ya 8-bit. Kama vile kuna aina kadhaa za flip flops, na tofauti kadhaa kwenye mada ya rejista za mabadiliko (fikiria juu / kaunta na kaunta za Johnson), pia kuna aina kadhaa za sajili za mabadiliko kulingana na jinsi data imeingia kwenye rejista na jinsi data hiyo inatolewa. Kulingana na hii, fikiria aina zifuatazo za sajili za mabadiliko:
- Serial In / Sambamba Kati (SIPO)
- Serial In / Serial Out (SISO)
- Sambamba Katika / Serial Kati (PISO)
- Sambamba Katika / Sambamba Nje (PIPO)
Barua mbili ni SIPO na PISO. Sajili za SIPO huchukua data mfululizo, ambayo ni, kidogo baada ya nyingine, kuhamisha kidogo pembejeo hapo awali kwenda kwenye flip flop inayofuata na kutuma data nje kwa pembejeo zote mara moja. Hii inafanya serial nzuri kwa kibadilishaji sambamba. Rejista za mabadiliko ya PISO, kinyume chake, zina pembejeo zinazofanana, kwa hivyo bits zote zinaingizwa mara moja, lakini hutolewa moja kwa wakati. Na umekisia, hii inalingana sawa na kibadilishaji cha serial. Rejista ya kuhama ambayo tunataka kutumia kupunguza idadi ya pini za I / O itaturuhusu kuchukua pini hizo 8 za IO tulizotumia hapo awali na kuzipunguza hadi moja, au labda ni wanandoa tu, kwa kuzingatia tunaweza kuhitaji kudhibiti jinsi tunavyoingiza bits. Kwa hivyo, rejista ya mabadiliko tutakayotumia ni Serial In / Parallel Out. Funga rejista ya mabadiliko kati ya LED na Arduino Kutumia rejista ya mabadiliko ni rahisi. Sehemu ngumu zaidi ni kuibua tu pini za pato la data na jinsi nambari za binary zitaishia kwenye IC, na ni vipi hatimaye watajitokeza kwenye LED. Chukua muda kupanga hii. 1. Ambatisha 5V kubandika 14 (juu kulia) na chukua pin 7 (chini kushoto) chini chini. Rejista ya kuhama ina pembejeo mbili za serial lakini tutatumia moja tu, kwa hivyo unganisha pini mbili hadi 5V3. Hatutatumia pini wazi (iliyotumiwa kutoa matokeo yote) kwa hivyo iache ikielea au ishambulie kwa 5V4. Unganisha bandari moja ya IO ya dijiti kubandika moja ya rejista ya mabadiliko. Hii ni pini ya kuingiza serial. Unganisha bandari moja ya IO ya dijiti ili kubandika 8 (chini kulia). Hii ndio pini ya saa. Unganisha mistari yako ya data kutoka Q0 hadi Q6. Tunatumia tu bits 7 kwa sababu tabia ya ASCII imeweka tu bits saba. Nilitumia PD2 kutoa data yangu ya serial na PD3 kwa ishara ya saa. Kwa pini za data, niliunganisha Q0 hadi D6 kwenye LED na kuendelea kwa njia hiyo (Q1 hadi D5, Q2 hadi D4, nk). Kwa kuwa tunatuma data mfululizo tutalazimika kuchunguza uwakilishi wa kila herufi tunayotaka kutuma, tukitazama 1 na 0, na kutoa kila kitu kwenye safu ya serial. Nimejumuisha toleo la pili la chanzo cha dotmatrixled.c pamoja na Makefile hapa chini. Inazunguka kwa seti ya wahusika na huonyesha wahusika wote (ikiwa ni ajabu kufikiria kwamba barua inaweza kuwa isiyo ya kawaida au hata, fikiria juu ya uwakilishi wa binary kwa muda mfupi). Jaribu kujua jinsi ya kuifanya iwe mzunguko kupitia kuonyesha herufi zote zisizo za kawaida. Unaweza kujaribu zaidi unganisho kati ya sajili ya kuhama, mwangaza wa nukta LED, na Arduino yako. Kuna huduma kadhaa za kudhibiti kati ya LED na rejista ambayo inaweza kukuruhusu kurekebisha udhibiti wako kuhusu wakati data inavyoonyeshwa. So…. Tumeenda kutumia bandari nane za I / O kutumia mbili tu!
Hatua ya 5: Muhtasari
Katika hii inayoweza kufundishwa, nimewasilisha DLO7135 dot matrix LED na jinsi ya kuifanya ifanye kazi. Nimeendelea zaidi, kujadili jinsi ya kupunguza idadi ya bandari zinazohitajika za I / O kutoka nane hadi mbili tu kwa kutumia rejista ya mabadiliko. DLO7135 dot matrix LED inaweza kushonwa pamoja ili kufanya marquees ya kuvutia sana. Natumai ulifurahi kusoma hii inayoweza kufundishwa! Ikiwa kuna maboresho yoyote unadhani ningeweza kutoa au maoni ambayo ungependa kutoa juu ya hii au yoyote ya 'ibles yangu, ninafurahi kuyasikia!
Ilipendekeza:
Jinsi ya kutumia Matrix ya Doti ya Max7219 8x8 Pamoja na "skiiiD": Hatua 9
Jinsi ya Kutumia Max7219 8x8 Dot Matrix Na "skiiiD": Hii ni maagizo ya video ya Max7219 8x8 Dot Matrix kupitia " skiiiD " Kabla ya kuanza, chini ni mafunzo ya msingi ya jinsi ya kutumia skiiiDhttps: //www.instructables.com/id / Kuanza-W
Arduino Na CD4015B Shift Register: Hatua 3
Arduino Na CD4015B Shift Daftari: CD4015B ni Dual 4 Stage Static Shift Register na pembejeo Serial na pato Sambamba. Ni pini 16 ya IC na ina rejista mbili zinazofanana, zenye hatua nne na Takwimu huru, Saa, na Pata tena pembejeo. Kiwango cha mantiki kilipo kwa maoni ya kila st
Kudhibiti Redio ya RF 433MHZ Kutumia HT12D HT12E - Kufanya Rf Remote Control Kutumia HT12E & HT12D Pamoja na 433mhz: Hatua 5
Kudhibiti Redio ya RF 433MHZ Kutumia HT12D HT12E | Kufanya Udhibiti wa Kijijini wa Rf Kutumia HT12E & HT12D Ukiwa na 433mhz: Katika hii nitafundishwa nitakuonyesha jinsi ya kutengeneza RADIO kijijini kudhibiti ukitumia moduli ya mpokeaji wa mpitishaji wa 433mhz na encode ya HT12E & Kiambatisho cha HT12D IC.Kwa kufundisha hii utatuma na kupokea data ukitumia VITENGO vya bei rahisi sana kama: HT
48 X 8 Kutembeza Uonyesho wa Matrix ya LED Kutumia Arduino na Rejista za Shift.: 6 Hatua (na Picha)
48 X 8 Kutembeza Onyesho la Matrix ya LED Kutumia Arduino na Rejista za Shift. Halo wote! Hii ni ya kwanza kufundishwa na yote ni juu ya kutengeneza 48 x 8 inayoweza kusanifishwa Matrix ya LED ukitumia Arduino Uno na rejista za mabadiliko 74HC595. Huu ulikuwa mradi wangu wa kwanza na bodi ya maendeleo ya Arduino. Ilikuwa changamoto aliyopewa m
Matrix ya LED Kutumia Sajili za Shift: Hatua 7 (na Picha)
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 katika Marquee ya LED inayoweza kufundishwa na led555. MalengoHaya yanayoweza kufundishwa yanatoa dhana