Orodha ya maudhui:

Daftari ya Shift ya 74HC164 na Arduino yako: Hatua 9
Daftari ya Shift ya 74HC164 na Arduino yako: Hatua 9

Video: Daftari ya Shift ya 74HC164 na Arduino yako: Hatua 9

Video: Daftari ya Shift ya 74HC164 na Arduino yako: Hatua 9
Video: Daydi qizning daftari (o'zbek serial) 1-2-3-qismlar | Дайди қизнинг дафтари (Ўзбек сериал) 2024, Novemba
Anonim
Sajili ya Shift ya 74HC164 na Arduino yako
Sajili ya Shift ya 74HC164 na Arduino yako
Sajili ya Shift ya 74HC164 na Arduino yako
Sajili ya Shift ya 74HC164 na Arduino yako

Rejista za Shift ni sehemu muhimu sana ya mantiki ya dijiti, hufanya kama gundi kati ya ulimwengu wa sambamba na mfululizo. Wanapunguza hesabu za waya, pini kutumia na hata kusaidia kuchukua mzigo kutoka kwa cpu yako kwa kuweza kuhifadhi data zao. Zinakuja kwa saizi tofauti, na aina tofauti za matumizi tofauti, na huduma tofauti. Nitakayojadili leo ni 74HC164 8 kidogo, mfululizo sawa, bila kufungwa, rejista ya kuhama. Kweli moja ni moja ya rejista za msingi za kuhama huko nje, ambayo inafanya ujifunzaji juu yake iwe rahisi, lakini ilitokea tu kuwa ndio tu nilikuwa nayo (lol!) Hii inashughulikia jinsi chip hii inavyofanya kazi, jinsi ya kuiweka waya, na uiunganishe na arduino pamoja na michoro ya sampuli na mizunguko iliyoongozwa.

Hatua ya 1: Kwa hivyo, Je! Sajili za Shift ni nini?

Kwa hivyo, Je! Sajili za Shift ni zipi?
Kwa hivyo, Je! Sajili za Shift ni zipi?

Kama nilivyosema hapo awali huja katika ladha tofauti tofauti, na pia nikataja kuwa ninatumia kidogo ya 74HC164 8, mfululizo sawa, bila kufungwa, rejista ya kuhama kwa hivyo inamaanisha nini ?! Kwanza, jina 74 - linamaanisha sehemu yake ya familia ya mantiki ya 74xx, na kwa kuwa mantiki yake haiwezi kudhibiti moja kwa moja sasa zaidi (16-20ma kwa chip nzima ni kawaida), hupitisha tu ishara kuzunguka, lakini hiyo haina maana ishara hiyo haiendi kwa transistor ambayo inaweza kubadilisha mzigo wa sasa zaidi. kifaa cha nguvu na itaendesha kutoka volts 2 hadi 5 (kwa hivyo ikiwa unatumia volt arduino 3.3 ok yako) Pia inaweza kufanya kazi vizuri kwa mwendo wa kasi chip hii ina kasi ya kawaida ya 78mhz, lakini unaweza kwenda polepole au haraka sana (mpaka inapoanza kwenda juu) kama unavyotaka www.kpsec.freeuk.com/components/74series.htm164 ni nambari ya mfano ya chip hii, kuna chati kubwa yao kwenye wikipediaen.wikipedia.org/wiki/List_of_7400_series_integrated_circuits Ifuatayo, 8 kidogo Rejista ya kuhama imeundwa na mizunguko ya flip flop, flip flop ni kumbukumbu 1, ha hii moja s 8 (au 1 ka kumbukumbu). Kwa kuwa ni kumbukumbu, ikiwa hauitaji kusasisha rejista unaweza kuacha "kuongea" nayo na itabaki katika hali yoyote ile uliiiacha, mpaka "utakapozungumza" nayo tena au kuweka tena nguvu. rejista zingine za mabadiliko ya mantiki ya 7400 zinaweza kwenda hadi 16 bit serial kwa sambamba nje Hii inamaanisha arduino yako hutuma data mfululizo (kwenye kunde moja baada ya nyingine) na rejista ya zamu huweka kila sehemu kwenye pini sahihi ya pato. Mtindo huu unahitaji waya 2 tu kudhibitiwa, kwa hivyo unaweza kutumia pini 2 za dijiti kwenye arduino, na kuvunja hizo 2 hadi 8 matokeo mengine ya dijiti mifano mingine ni sawa na nje ya serial, hufanya kitu kimoja lakini kama pembejeo kwa arduino (kwa mfano mchezo wa mchezo wa NES) ambao haujachongwa Hii inaweza kuwa anguko la chip hii ikiwa unahitaji. Kadiri data inavyoingia kwenye rejista ya mabadiliko kupitia serial, inaonekana kwenye pini ya kwanza ya pato, wakati saa ya saa inapoingia, kidogo hubadilika juu ya mahali 1, na kuunda athari ya kusogeza kwa matokeo, kwa mfano 00000001 itaonekana kwenye matokeo kama 1010010001000010000010000001000000011 Ikiwa unazungumza na vifaa vingine vya mantiki ambao wanashiriki saa moja na hawatarajii hii, inaweza kusababisha maswala. Sajili za mabadiliko zilizopangwa zina seti ya ziada ya kumbukumbu, kwa hivyo mara data itakapomaliza kuingia kwenye rejista unaweza kubonyeza swichi na kuonyesha matokeo, lakini inaongeza waya, programu, na vitu vingine vya kufuata. tunadhibiti maonyesho ya LED, athari ya kusogeza hufanyika haraka sana hauwezi kuiona (isipokuwa wakati wa kwanza kuwasha chip), na mara tu byte iko kwenye rejista ya zamu hakuna kusogeza tena Tutakuwa tukidhibiti aina ya bargraph, sehemu 7, na tumbo la nukta 16LED 4x4 lenye chip hii na programu kwenye arduino kwa kutumia pini 2 tu za dijiti (+ nguvu na ardhi)

Hatua ya 2: Wiring na Operesheni ya Msingi

Wiring na Operesheni ya Msingi
Wiring na Operesheni ya Msingi
Wiring na Operesheni ya Msingi
Wiring na Operesheni ya Msingi

Wiring 74HC164 ni chip 14 ya pini, ina pini 4 za kuingiza, pini 8 za pato, nguvu na ardhi, kwa hivyo anza kutoka juu. Pini 1 na 2 ni pembejeo za serial, zinawekwa kama mantiki NA lango, ikimaanisha kuwa zote mbili zinapaswa kuwa na mantiki ya juu (yaani volts 5) ili kidogo ionekane kama 1, hali ya chini (volts 0) kwa yoyote itasoma kama sifuri. Hatuhitaji hii na ni rahisi kushughulika nayo katika programu, kwa hivyo chagua moja na uifunge kwa V + kwa hivyo inasoma kila wakati. Ninachagua kutumia jumper kutoka kwa pin 1 hadi pin 14 (V +) kwani unaweza pop tu jumper ya boardboard juu ya chip. Pembejeo moja iliyobaki ya siri (pini 2 katika skimu yangu) itapiga pini ya dijiti 2 ya arduino. Pini 3, 4, 5, na 6 ya 74HC164 ndio ka 4 za kwanza za pato Pini 7 inaunganisha ardhini Kuruka kulia, pini 8 ni pini ya saa, hii ndio jinsi rejista ya zamu inavyojua nambari inayofuata iko tayari kusoma, hii inapaswa kushikamana na pini ya dijiti 3 kwenye arduino. Pini 9 ni kufuta rejista nzima mara moja, ikiwa inakwenda chini, una chaguo la kuitumia, lakini hakuna chochote katika kitu hiki kisichoweza kusomeka, kwa hivyo funga kwa pini za V + 10, 11 12 na 13 ni baiti 4 za mwisho za pato 14 ni operesheni ya nguvu ya chips kwanza unahitaji kuweka uingizaji wa serial ya rejista (pini ya dijiti 2 kwenye arduino) juu au chini, baadaye unahitaji kubonyeza pini ya saa (pini ya dijiti 3) kutoka chini hadi juu, rejista ya zamu itasoma data kwenye uingizaji wa serial na kuhamisha pini za pato kwa 1, rudia mara 8 na umeweka matokeo yote 8. Hii inaweza kufanywa kwa mikono na matanzi na andiko la dijiti katika IDE ya arduino, lakini tangu t yake ni mawasiliano ya kiwango cha kawaida cha vifaa (SPI) wana kazi moja ambayo inakufanyia. shiftOut (dataPin, clockPin, bitOrder, value) Iambie tu wapi data na pini za saa zimeunganishwa na arduino, ni njia ipi ya kutuma data na nini cha kutuma, na inakutunza (rahisi)

Hatua ya 3: Miradi

Miradi
Miradi

Sawa, hotuba ya kutosha na nadharia, inakuwezesha kufanya vitu vya kufurahisha na chip hiki! Kuna miradi 3 ya kujaribu katika hii inayoweza kufundishwa, 2 ya kwanza ni rahisi na inaweza kutolewa nje kwa wakati mfupi. Ya tatu, matrix iliyoongozwa na 4x4, inahitaji muda zaidi na fikiria kujenga, kwa sababu ya wiring iliyoongozwa. Orodha ya sehemu Mradi 1: '2 Wire' bargraph LED display controller 1 * 74HC164 Rejista ya Shift 1 * mkate wa mkate usio na mkate1 * arduino, au arduino inayoendana (5v) 1 * 330 ohm 1/4 watt resistor 8 * pato la kawaida nyekundu za waya 12 * za kuruka Mradi 2: '2 Wire' sehemu 7 ya kudhibiti mtawala 1 * 74HC164 rejista ya Shift 1 * mkate wa mkate usio na mkate1 * arduino, au arduino sambamba (5v 1 * 330 ohm 1/4 watt resistor 1 * cathode ya kawaida sehemu saba ya kuonyesha 9 * waya za kuruka Mradi wa 3: '2 Wire' 4x4 inayoonyesha matrix 1 * 74HC164 Rejista ya Shift 1 * arduino, au arduino sambamba (5v) 4 * 150 ohm 1 1/4 watt resistor 8 * 1Kohm 1/8 watt resistor (au kubwa) 8 * NpN transistor (2n3904 au bora) 16 * pato la kawaida LED nyekundu ni njia ya kuijenga na kudhibiti nguvu 5 za volt ambazo zinaweza kushughulikia 160 + ma (unaweza washa taa zote za LED mara moja kama taa ya kuvunja)

Hatua ya 4: Mradi 1 [pt 1]: '2 Wire' Bargraph LED Display Hardware Hardware

Mradi 1 [pt 1]: '2 Wire' Bargraph Maonyesho ya Mdhibiti wa Vifaa vya LED
Mradi 1 [pt 1]: '2 Wire' Bargraph Maonyesho ya Mdhibiti wa Vifaa vya LED
Mradi 1 [pt 1]: '2 Wire' Bargraph Maonyesho ya Mdhibiti wa Vifaa vya LED
Mradi 1 [pt 1]: '2 Wire' Bargraph Maonyesho ya Mdhibiti wa Vifaa vya LED

Hook up the arduino and shift register according to the schematic, I already have a 10 segment bargraph display ready for useboardboard and that is what you will see in the image, but you can do the same thing with led individual'sKatika ukurasa wa pili Nilisema kuwa hizi sio vifaa vya dereva, kwamba zilikuwa vifaa vya mantiki, na kiasi kidogo cha sasa kinaweza kupita kupitia hizo. Ili kuendesha taa za 8, wakati kuweka mzunguko rahisi, na sio kupika rejista ya kuhama, inahitaji tuweke kikomo sasa kidogo. LED zina waya sawa na zinashirikiana kwa pamoja (cathode ya kawaida), kabla ya kuingia kwenye nguvu ugavi wa ardhi wanahitaji kupita kwa kontena la 330 ohm, kupunguza jumla ya sasa ambayo taa zote za LED zinaweza kutumia kwa 10ma (kwa volts 5) Hii inaacha taa za LED zikiwa katika hali mbaya lakini zinawaka na kwa hivyo hutumikia mfano huu, ili kuendesha LED kwa wakati unaofaa utahitaji kuingiza transistor ambapo rejista ya zamu inaweza kuwasha / kuzima chanzo cha juu zaidi (angalia mradi 3) Pini ya Takwimu ya rejista ya mabadiliko (pin 2) inahitaji Kuunganisha kwenye pini ya dijiti ya arduino # 2 Pini ya Saa ya rejista ya zamu (pini 8) inahitaji kuungana na pini ya dijiti ya arduino # 3

Hatua ya 5: Mradi 1 [pt 2]: '2 Wire' Bargraph Programu ya Udhibiti wa Kuonyesha ya LED

Mradi 1 [pt 2]: '2 Wire' Bargraph Programu ya Udhibiti wa Kuonyesha ya LED
Mradi 1 [pt 2]: '2 Wire' Bargraph Programu ya Udhibiti wa Kuonyesha ya LED
Mradi 1 [pt 2]: '2 Wire' Bargraph Programu ya Udhibiti wa Kuonyesha ya LED
Mradi 1 [pt 2]: '2 Wire' Bargraph Programu ya Udhibiti wa Kuonyesha ya LED

Mfano 1: Fungua faili "_164_bas_ex.pde" Ndani ya arduino IDE, Mchoro wake rahisi ambao hukuruhusu kufafanua au kuzima LED kwenye onyesho la bargraph Mistari 2 ya kwanza inafafanua nambari za pini tutakazotumia kwa data na saa, mimi tumia #fafanua juu ya nambari kamili ya const, naona ni rahisi kukumbuka, na hakuna faida kwa moja au nyingine mara moja iliyoandaliwa #fafanua data 2 # fafanua saa 3 ijayo ni kazi ya usanidi batili, inaendesha mara moja tu, kwa hivyo arduino inageuka juu, huweka rejista ya kuhama na haina kitu kingine cha kufanya. Ndani ya kazi ya usanidi batili tunaweka saa na pini za data kama pini za OUTPUT, kisha kutumia kazi ya shiftOut tunatuma data kwenye rejista ya mabadiliko ya usanidi batili () {pinMode (saa, OUTPUT); // fanya pini ya saa kuwa pinMode ya pato (data, OUTPUT); // fanya pini ya data kuhama kwa pato (data, saa, LSBFIRST, B10101010); // tuma hii dhamana ya rejista kwa rejista ya zamu} Katika kazi ya zamu ya nje unaweza kuona hoja zake ni data ya pini, saa ni pini ya saa LSBFIRST inamaanisha jinsi inavyopangwa, wakati wa kuiandika kwa nukuu ya binary (Bxxxxxxxx) ya 7 kipengee cha zamani cha B ni Kidogo cha Ishara ya Kwanza, hii inalishwa kwanza kwa hivyo inaishia kwenye pato la mwisho mara biti zote 8 zinapolishwa kwa, jaribu kucheza na maadili tofauti kuwasha au kuzima ruwaza tofauti sawa na mistari 8 ya kwanza ya mfano wa kwanza, kwa kweli haitabadilika kwa miradi mingine yoyote, kwa hivyo #fafanua data 2 # fafanua saa 3punguza usanidi () {pinMode (saa, OUTPUT); // fanya pini ya saa kuwa pinMode ya pato (data, OUTPUT); // fanya pini ya data kuwa pato Lakini sasa katika usanidi batili kuna hesabu 8 ya kitanzi, kuchukua kwake tupu tupu na kuhamisha kidogo 1 kwa wakati mmoja kuanzia kushoto kidogo na kusonga kulia. Hii ni nyuma kutoka kwa mfano wa kwanza ambapo tulianza kutoka kulia kidogo na kufanya kazi kushoto, lakini kutumia MSBFIRST kazi ya kuhama hutuma data kwa njia sahihi Pia tunaongeza kuchelewesha kwa kitanzi kwa hivyo hupunguza kasi ya kutosha kuonekana. kwa (int i = 0; i <8; ++ i) // kwa 0 - 7 fanya {shiftOut (data, saa, MSBFIRST, 1 << i); // kuhama kidogo kwa mantiki ya juu (1) thamani kwa kuchelewesha (100); // kuchelewesha 100ms au hautaweza kuiona}} kitanzi batili () {} // kitanzi tupu kwa sasa pakia hati na sasa unapaswa kuona bargraph ikiwasha kila nuru kwa wakati mmoja

Hatua ya 6: Mradi wa 2: '2 Wire' Mdhibiti wa Sehemu ya 7

Mradi wa 2: '2 Wire' 7 Segment Mdhibiti wa Sehemu
Mradi wa 2: '2 Wire' 7 Segment Mdhibiti wa Sehemu
Mradi 2: '2 Waya' 7 Sehemu ya Udhibiti wa Kuonyesha
Mradi 2: '2 Waya' 7 Sehemu ya Udhibiti wa Kuonyesha

Angalia pinout ya onyesho lako la sehemu 7 (nilikuwa na mbili tu lakini nikitumia nusu tu) na tumia mchoro hapa chini kuunganisha kila sehemu kwa sehemu sahihi kwenye rejista ya zamu 1 = pini 3bit 2 = pini 4bit 3 = pini 5bit 4 = pin 6bit 5 = pin 10bit 6 = pin 11bit 7 = pin 12bit 8 = pin 13 (ikiwa unataka kutumia hatua ya decimal) Na cathode ya onyesho kupitia kontena la 330ohm na kusambaza umeme sasa fungua seven_seg_demo.pde Kwanza unaona ni wapi tunafafanua data na pini za saa #fafanua data 2 # fafanua saa 3 Ifuatayo tunaweka mifumo yote ya charater kwa binary, hii ni rahisi sana, angalia mchoro hapa chini, ikiwa unahitaji sehemu ya kati andika kwa moja, halafu unahitaji sehemu ya juu, ikiwa chapa aina nyingine, endelea kufanya hivyo hadi utakapofunika sehemu zote 8, angalia kitako changu cha kulia (kidogo 8) kila wakati ni 0, hiyo inafanya nisiweze kuwasha tena desimali hatua. Byte zero = B01111110; ijayo katika usanidi batili tunaweka data zetu na pini za saa ili kutoa usanidi batili () {pinMode (saa, OUTPUT); // fanya pini ya saa kuwa pinMode ya pato (data, OUTPUT); // fanya pini ya data kuwa pato3} kisha kwa kitanzi batili tunatumia shiftOut kuonyesha kila muundo (nambari) subiri 1/2 sekunde na uonyeshe inayofuata, 0 hadi 9, kwani inafanywa katika kazi ya kitanzi batili itahesabu 0-9 na kurudia milele. kitanzi batili () {shiftOut (data, saa, LSBFIRST, sifuri); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, moja); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, mbili); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, tatu); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, nne); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, tano); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, sita); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, saba); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, nane); kuchelewesha (500); shiftOut (data, saa, LSBFIRST, tisa); kuchelewesha (500);}

Hatua ya 7: Mradi 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display

Mradi 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display

Mradi wa tumbo la 4x4 wa LED ni ngumu zaidi, lakini ni karibu yote katika ujenzi, mimi huchagua kuuza mgodi kwenye ubao wa bodi, lakini inapaswa kuwa na nafasi ya kuiga kwenye ubao wa mkate, ikiwa imepangwa zaidi. hutofautiana kwa kuwa rejista ya mabadiliko haiendeshi moja kwa moja ile inayoongozwa, badala yake matokeo ya rejista ya kuhama hutumwa kupitia kontena la 1Kohm kwenye msingi wa transistor ya NpN, wakati pato la kidogo ni kubwa, inaruhusu sasa ya kutosha na voltage kupita kwenye transistor kubadili unganisho kati ya mtoza na mtoaji, watoza wamefungwa na "sturdy" iliyosimamiwa volts 5. Watoaji wa transistors wameunganishwa na vipinga 150 vya ohm na vizuizi vimefungwa kwa annode ya viongozi 4 mfululizo na inapunguza safu hadi 20ma, ingawa wakati wa kuchora picha kwenye onyesho ni 1 tu iliyoongozwa iko kwa wakati mmoja, na kwa hivyo karibu na mwangaza kamili (karibu na kuwasha huwasha na kuzima haraka sana kutengeneza picha nzima) Kuna safu 4 na 4 nguzo, kila moja safu hupata kontena na transistor, kwenye kila safu cathode za LED zimefungwa pamoja, hukimbilia kwa mtoza wa transistor, ambaye msingi wake pia unadhibitiwa na rejista ya mabadiliko, na mwishowe chini. Toleo kubwa la skramatic www.instructables.com/files/orig/F7J/52X0/G1ZGOSRQ/F7J52X0G1ZGOSRQ.jpg

Hatua ya 8: Mradi wa 3 [pt 2]: '2 Wire' 4x4 Led Matrix Display

Mradi 3 [pt 2]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 2]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 2]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 2]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 2]: '2 Wire' 4x4 Led Matrix Display
Mradi 3 [pt 2]: '2 Wire' 4x4 Led Matrix Display

Rejista ya mabadiliko inadhibiti anode zote na cathode za LED katika muundo wa YX, angalia zifuatazo 1 = safu 1 (kulia kabisa) 2 = safu 2bit 3 = safu 3bit 4 = safu 4bit 5 = safu ya 1 (juu kabisa 6 = safu 2bit 7 = safu ya 3bit 8 = safu ya 4 Ili kutengeneza picha chora mraba 4x4 kwenye karatasi ya grafu na ujaze ni zipi unayotaka kuonyeshwa, halafu tengeneza meza ya YX. Hapo chini utaona ramani ya mfano, na bora zaidi ambayo mtu anaweza kufanya kwenye "saizi" 4x4 Kwa kila iliyojazwa katika sehemu ninaandika safu gani (Y) iko, halafu iko katika safu gani (X) Sasa fungua faili _4x4.pde katika arduino IDE utaona marafiki wetu wa zamani 2 #fafanua data 2 # fafanua saa 3 kisha safu ya nambari int img = {1, 1, 4, 1, 1, 3, 4, 3, 2, 4, 3, 4}; Ukiangalia ni orodha tu ya kuratibu zangu zilizoandikwa za YX, itakuwa maumivu makubwa kitako kubadilisha maadili hayo kwa mkono, na tuna kompyuta… acha iwe hivyo! Kusonga mbele kuna usanidi batili ambapo tunafanya pini zetu za saa na data MABADILIKO ya kuweka mipangilio batili () {pinMode (saa, OUTPUT); // fanya pini ya saa kuwa pinMode ya pato (data, OUTPUT); // fanya pini ya data kuwa pato3} Na kitanzi cha utupu kinachoonekana kutatanisha, ili kuanza vitu tunahitaji kutangaza vigeuzi vya kawaida vya kitanzi batili () {int Y; int X; byte nje; Halafu kwa kitanzi, kitanzi hiki kinahitaji kuwa cha muda mrefu kama idadi ya viingilio kwenye safu ya img, kwa picha hii nilitumia saizi 6 tu, kwa hivyo hiyo hufanya kuratibu 12 za YX. Ninaifanya iruke kila nambari nyingine kwa kutumia i + = 2, kwa sababu tunasoma kuratibu 2 kwa kitanzi kwa (int i = 0; i <12; i + = 2) // idadi ya alama kwenye safu ya img, kesi hii 12 {Sasa tunasoma uingizaji wa Y kwa katika safu, na toa moja kutoka kwa thamani yake, kwa sababu baiti hazianzi saa moja, zinaanza sifuri, lakini tulihesabu kutoka 1 // kupata jozi za kwanza za kamba za YX Y = (img - 1); // toa moja tangu hesabu kidogo ianze saa 0 Ifuatayo tunasoma maandishi ya X kwa [i + 1] katika safu, na toa moja kutoka kwa thamani yake, kwa sababu ya sababu hiyo hiyo X = (img [i + 1] - 1); Baada ya kuwa na maadili ya YX ya pikseli, tunafanya kidogo au hesabu na kuhamia kushoto. Kwanza tunahitaji kusoma thamani ya X, na chochote thamani yake ni kuibadilisha kwamba maeneo mengi + 4 yameachwa, kwa hivyo ikiwa X ni 4 na ongeza 4 ni kidogo 8 (MSB), ukiangalia chati tena… kidogo 1 = safu 1 7 = safu ya 3bit 8 = safu ya 4Bit 8 ni safu ya mwishoIfuatayo thamani ya Y pia imehamishwa kwenda kushoto, wakati huu tu na nafsi yake, hakuna chochote kilichoongezwa. (nibbles), kwa kutumia kidogo au (alama |) huchukua kaiti mbili na kimsingi huongeza pamoja, hebu fikiria X = 10000000Y = 00000001 10000001 safu 4 safu 1 nje = 1 << (X + 4) | 1 << Y; Na mwishowe songaOut kuonyesha picha ya sasa, na endelea kufanya hivyo hadi hatuna data zaidi katika safu… kuchelewesha kidogo na kitanzi milele, kwani tulikuwa tukibadilisha data kushoto na tunahitaji MSB iwe kwenye pini ya mwisho ya pato. ya rejista ya zamu itume kwanza. shiftOut (data, saa, MSBFIRST, nje); // songa byte nje kwa ucheleweshaji wetu wa rejista (1); // kuichelewesha kukaa kwa hivyo ina nafasi ya kuacha mwangaza machoni pako Jisikie huru kutengeneza picha zako mwenyewe, na athari, Kuna faili za sampuli 3, uso wa tabasamu na ubao wa kukagua (ambao unaonekana zaidi kama kupigwa), na mwishowe mtengenezaji wa kung'aa bila mpangilio

Hatua ya 9: Hitimisho

Hitimisho
Hitimisho
Hitimisho
Hitimisho
Hitimisho
Hitimisho

Zaidi ya yote hii ni kifaa kidogo kinachofaa sana, na ninafurahi kuikata kipande cha zamani cha elektroniki kilichoelekea kwenye takataka. Inaweza kutumika kwa vitu vingine kando na mifumo ya kuonyesha, lakini kila mtu anapenda taa na maoni ya papo hapo ya kuona kinachoendelea ni muhimu sana kwa wanafikra wa kuona kama mimi. Pia tafadhali nisamehe nambari yangu, nimekuwa na arduino tangu wiki ya tatu ya Oktoba, na imekuwa kozi kubwa sana ya ajali. Lakini hilo ndilo jambo kuu juu ya mfumo, ikiwa unakaa chini na kufanya kazi nayo, imejaa huduma nadhifu ambazo hufanya kudhibiti ulimwengu na mdhibiti mdogo wa 8 ni rahisi kufanya. Kama kawaida maswali na maoni yanakaribishwa sana, na asante kwa kusoma, natumai umejifunza mengi

Ilipendekeza: