Përmbajtje:

Regjistri i ndërrimit 74HC164 dhe Arduino juaj: 9 hapa
Regjistri i ndërrimit 74HC164 dhe Arduino juaj: 9 hapa

Video: Regjistri i ndërrimit 74HC164 dhe Arduino juaj: 9 hapa

Video: Regjistri i ndërrimit 74HC164 dhe Arduino juaj: 9 hapa
Video: LDmicro 18: GPS-будильник Ublox NEO-6M (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Nëntor
Anonim
Regjistri 74HC164 Shift dhe Arduino juaj
Regjistri 74HC164 Shift dhe Arduino juaj
Regjistri 74HC164 Shift dhe Arduino juaj
Regjistri 74HC164 Shift dhe Arduino juaj

Regjistrat e ndërrimit janë një pjesë shumë e rëndësishme e logjikës dixhitale, ato veprojnë si zam në mes të botës paralele dhe serike. Ato zvogëlojnë numrin e telave, përdorimin e kunjave dhe madje ndihmojnë në heqjen e ngarkesës nga procesori juaj duke qenë në gjendje të ruani të dhënat e tyre. Ato vijnë në madhësi të ndryshme, me modele të ndryshme për përdorime të ndryshme dhe karakteristika të ndryshme. Ajo për të cilën do të diskutoj sot është 74 bit 74HC164, serial paralelisht jashtë, regjistër pa ndërprerje, ndërrim. Pse? Epo për një është një nga regjistrat më themelorë të ndërrimeve atje, gjë që e bën më të lehtë mësimin për të, por rastësisht ishte i vetmi që kisha (lol!) Ky udhëzues mbulon se si funksionon ky çip, si ta lidhni atë, dhe bashkojeni atë me një arduino duke përfshirë disa skica mostrash dhe qarqe led. Shpresoj që të gjithë të kënaqeni!

Hapi 1: Pra, çfarë janë regjistrat e ndërrimit?

Pra, çfarë janë regjistrat e ndërrimit?
Pra, çfarë janë regjistrat e ndërrimit?

Siç u përmend më herët ato vijnë në të gjitha shijet e ndryshme, dhe unë gjithashtu përmenda që unë jam duke përdorur një 74HC164 8 bit, serial paralelisht jashtë, pa regjistrues, regjistra të ndryshimeve, çfarë do të thotë e gjithë kjo?!? Së pari, emri 74-nënkupton pjesën e tij të familjes logjike 74xx, dhe meqenëse logjika e tij nuk mund të kontrollojë drejtpërdrejt shumë rrymë (16-20ma për të gjithë çipin është e zakonshme), ai kalon vetëm sinjale përreth, por kjo nuk do të thotë ai sinjal nuk do të kalojë në një tranzistor i cili mund të kalojë një ngarkesë më të lartë aktuale. HC do të thotë se është një pajisje cmos me shpejtësi të lartë, ju mund të lexoni për këtë në lidhjen më poshtë, por ajo që ju duhet të dini në lidhje me të është se është një nivel i ulët pajisja e fuqisë dhe do të funksionojë nga 2 në 5 volt (kështu që nëse përdorni një arduino 3.3 volt është në rregull) Gjithashtu mund të funksionojë siç duhet me shpejtësi të lartë ky çip i veçantë ka një shpejtësi tipike prej 78mhz, por ju mund të shkoni aq ngadalë ose aq shpejt (derisa të fillojë të gënjejë) ashtu siç dëshironi Regjistri i ndërrimit përbëhet nga qarqe flip -flop, një flip -flop është 1 bit memorie, kjo një ha s 8 (ose 1 bajt memorie). Meqenëse është memorie, nëse nuk keni nevojë të përditësoni regjistrin, thjesht mund të ndaloni së foluri me të dhe do të mbetet në çfarëdo gjendje që e keni lënë, derisa të "flisni" me të ose të rivendosni fuqinë. regjistrat e tjerë të ndërrimit të serive logjike 7400 mund të shkojnë deri në seri 16 bit paralelisht jashtë Kjo do të thotë që arduino juaj i dërgon të dhënat në mënyrë serike (ndezjet jashtë njëra pas tjetrës) dhe regjistri i ndërrimit e vendos secilën bit në kunjin e saktë të daljes. Ky model kërkon vetëm 2 tela për tu kontrolluar, kështu që ju mund të përdorni 2 kunja dixhitale në arduino, dhe thyejini ato 2 deri në 8 dalje dixhitale, disa modele të tjera janë paralele në serial, ato bëjnë të njëjtën gjë, por si hyrje në arduino (për shembull një tastierë lojërash NES) jo e fiksuar Kjo mund të jetë një rënie e këtij çipi nëse keni nevojë për të. Ndërsa të dhënat hyjnë në regjistrin e ndërrimit përmes serisë, ato shfaqen në pinin e parë të daljes, kur futet një puls i orës, biti i parë zhvendoset mbi 1 vend, duke krijuar një efekt rrotullimi në daljet, për shembull 00000001 do të shfaqet në daljet si 101001000100001000001000000100000001Nëse po flisni me pajisje të tjera logjike që ndajnë të njëjtën orë dhe nuk e presin këtë, kjo mund të shkaktojë probleme. Regjistrat e ndërrimit të mbyllur kanë një sasi shtesë të kujtesës, kështu që pasi të dhënat të përfundojnë duke hyrë në regjistër, mund të rrokullisni një ndërprerës dhe të shfaqni daljet, por shton një tel, softuer dhe gjëra për të vazhduar. Në rastin e këtij udhëzuesi ne jemi duke kontrolluar ekranet LED, efekti i rrotullimit ndodh aq shpejt sa nuk mund ta shihni (përveç kur e ndizni çipin për herë të parë), dhe pasi bajti të jetë në regjistrin e ndërrimit nuk ka më rrotullim Ne do të kontrollojmë llojin e bargrafit, 7 segment, dhe një matricë pike 16LED 4x4 me këtë çip dhe softuer në arduino duke përdorur vetëm 2 kunja dixhitale (+ fuqi dhe tokë)

Hapi 2: Instalimet themelore dhe funksionimi

Instalimet dhe funksionimi bazë
Instalimet dhe funksionimi bazë
Instalimet themelore dhe funksionimi
Instalimet themelore dhe funksionimi

Instalime 74HC164 është një çip me 14 kunja, ka 4 kunja hyrëse, 8 kunja dalëse, fuqi dhe tokë, kështu që le të fillojmë nga lart. Këmbët 1 dhe 2 janë të dy hyrje serike, ato janë të konfiguruara si një portë logjike DHE, që do të thotë se ata të dy duhet të jenë logjikisht të lartë (dmth 5 volt) në mënyrë që biti të shihet si 1, një gjendje e ulët (0 volt) në secilën prej tyre do të lexohet si një zero. Ne nuk kemi vërtet nevojë për këtë dhe është më e lehtë të merremi me të në softuer, kështu që zgjidhni një dhe lidheni atë me V+ në mënyrë që të lexojë gjithmonë lart. Unë zgjedh të përdor një kërcyes nga kunja 1 deri te kunja 14 (V+) meqenëse ju thjesht mund të hapni një kërcyes me dërrasë buke mbi çip. Një hyrje serike e mbetur (kunja 2 në skemat e mia) do të kalojë në pinin dixhital 2 të arduino. Kunjat 3, 4, 5 dhe 6 të 74HC164 janë 4 bajtët e parë të daljes Pin 7 lidhet me tokën Kërcimi në të djathtë, kunja 8 është kunja e orës, kjo është mënyra se si regjistri i ndërrimit e di që biti serik i ardhshëm është gati që ai të lexohet, kjo duhet të lidhet me pinin dixhital 3 në arduino. Pin 9 është që të pastroni të gjithë regjistrin menjëherë, nëse bie poshtë, ju keni opsionin për ta përdorur atë, por asgjë në këtë të pakontrollueshme nuk e bën, kështu që lidheni atë me kunjat V+10, 11 12 dhe 13 janë 4 bajtët e fundit të daljes pinp 14 është fuqia e çipave Operacioni Së pari ju duhet të vendosni hyrjen serike i regjistrit (kunja dixhitale 2 në arduino) e lartë ose e ulët, më pas ju duhet të rrokullisni kunjin e orës (kodi dixhital 3) nga i ulët në i lartë, regjistri i ndërrimit do të lexojë të dhënat mbi hyrjen serike dhe do të zhvendosë kunjat e daljes 1, përsërisni 8 herë dhe i keni vendosur të gjitha 8 daljet. Kjo mund të bëhet me dorë për sythe dhe shkrime dixhitale në arduino IDE, por që nga t ai është një komunikim shumë i zakonshëm i nivelit të harduerit (SPI) ata kanë një funksion të vetëm që e bën atë për ju. shiftOut (dataPin, clockPin, bitOrder, vlera) Thjesht tregoni se ku të dhënat dhe kunjat e orës janë të lidhura me arduino, në cilën mënyrë të dërgoni të dhënat dhe çfarë të dërgoni, dhe është kujdesur për ju (i dobishëm)

Hapi 3: Projektet

Projekte
Projekte

Mirë, mjaft leksion dhe teori, le të bëjmë disa gjëra argëtuese me këtë çip! Ka 3 projekte për tu provuar në këtë udhëzues, 2 të parat janë të lehta dhe mund të dalin në tavolinë në çast. E treta, matrica 4x4 e udhëhequr, kërkon më shumë kohë dhe mendim për t'u ndërtuar, për shkak të instalimeve elektrike të drejtuara. Lista e pjesëve Projekti 1: Kontrolluesi i ekranit LED i bargrafit '2 Wire' 1 * 74HC164 Regjistri i ndërrimit 1 * panxhar pa saldim 1 * arduino, ose arduino kompatibil (5v) 1 * 330 ohm 1/4 vat rezistencë 8 * dalje normale e kuqe LED e telave 12 * bluzë Projekti 2: '2 Wire' 7 segment kontrollues i ekranit 1 * 74HC164 Regjistër zhvendosje 1 * buleboard pa saldim 1 * arduino, ose arduino i pajtueshëm (5v) 1 * 330 ohm 1/4 vat rezistencë 1 * katodë e zakonshme me shtatë segmente shfaqje 9 * tela kërcyes Projekti 3: '2 Wire' 4x4 ekran matricash led 1 * 74HC164 Regjistër ndërrimi 1 * arduino, ose arduino i pajtueshëm (5v) 4 * 150 ohm 1 Rezistencë 1/4 vat 8 * 1Kohm Rezistencë 1/8 vat (ose më e madhe) Transistor 8 * NpN (2n3904 ose më mirë) 16 * LED i kuq me dalje normale është një mjet për ta ndërtuar atë dhe fuqi e rregulluar 5 volt që mund të përballojë 160+ma (mundeni ndizni të gjitha LED -të menjëherë si një dritë frenimi)

Hapi 4: Projekti 1 [pt 1]: '2 Wire' Bargraph Pajisja kontrolluese e ekranit LED

Projekti 1 [pt 1]: '2 Wire' Bargraph LED Display Controller Hardware
Projekti 1 [pt 1]: '2 Wire' Bargraph LED Display Controller Hardware
Projekti 1 [pt 1]: '2 Wire' Bargraph LED Display Controller Hardware
Projekti 1 [pt 1]: '2 Wire' Bargraph LED Display Controller Hardware

Lidhni regjistrin arduino dhe zhvendosni sipas skemës, unë tashmë kam një ekran bargrafik me 10 segmente gati për përdorim në bukë dhe kjo është ajo që do të shihni në imazh, por ju mund të bëni të njëjtën gjë me udhëheqës individualë Në faqen e dytë Unë deklarova se këto nuk ishin pajisje shoferi, se ishin pajisje logjike, me sasi të vogla rryme në gjendje të kalonin nëpër to. Për të drejtuar 8 LED, duke e mbajtur qarkun të thjeshtë, dhe duke mos gatuar regjistrin e ndërrimit, kërkon që të kufizojmë rrymën mjaft. LED janë të lidhura paralelisht dhe ndajnë një terren të përbashkët (katodë e zakonshme), para se të hyjnë në energji toka e furnizimit ata duhet të kalojnë nëpër një rezistencë 330 ohm, duke kufizuar sasinë totale të rrymës që të gjitha LED mund të përdorin në 10ma (në 5 volt) Kjo i lë LED -at në një gjendje të sëmurë, por ato ndizen dhe kështu shërbejnë për ky shembull, për të drejtuar LED -të në rrymën e tyre të duhur do t'ju duhet të futni një tranzistor ku regjistri i ndërrimit mund të ndez / fik një burim më të lartë aktual (shiko projektin 3) Kodi i të dhënave i regjistrit të ndërrimit (pin 2) ka nevojë për t'u lidhur me kunjin dixhital arduino # 2 Kodi i orës i regjistrit të ndërrimit (kunja 8) duhet të lidhet me kunjin dixhital arduino # 3

Hapi 5: Projekti 1 [pt 2]: Programi i kontrolluesit të ekranit LED të Bargraph '2 Wire'

Projekti 1 [pt 2]: Programi i kontrolluesit të ekranit LED të Bargraph '2 Wire'
Projekti 1 [pt 2]: Programi i kontrolluesit të ekranit LED të Bargraph '2 Wire'
Projekti 1 [pt 2]: Programi i kontrolluesit të ekranit LED të Bargraph '2 Wire'
Projekti 1 [pt 2]: Programi i kontrolluesit të ekranit LED të Bargraph '2 Wire'

Shembull 1: Hapni skedarin "_164_bas_ex.pde" Brenda arduino IDE, është një skicë e thjeshtë që ju lejon të përcaktoni ose fikni LED -të në ekranin bargrafik 2 rreshtat e parë përcaktojnë numrat e pin që do të përdorim për të dhëna dhe orë, I përdorni #define over const integer, e kam më të lehtë të mbaj mend, dhe nuk ka asnjë avantazh për njërën ose tjetrën pasi të keni përpiluar #përcaktoni të dhënat 2 #përcaktoni orën 3 tjetër është funksioni i konfigurimit të zbrazët, ai funksionon vetëm një herë, kështu që arduino kthehet on, vendos regjistrin e ndërrimit dhe nuk ka asgjë tjetër për të bërë. Brenda funksionit të void setup vendosim orën dhe kunjat e të dhënave si kunja OUTPUT, pastaj duke përdorur funksionin shiftOut i dërgojmë të dhënat te regjistri i ndërrimit void setup () {pinMode (orë, OUTPUT); // bëni pinin e orës një pinMode dalëse (të dhëna, OUTPUT); // bëni pinin e të dhënave një zhvendosje dalëse (të dhëna, orë, LSBFIRST, B10101010); // dërgoni këtë vlerë binare në regjistrin shift} Në funksionin shiftOut ju mund të shihni argumentet e tij të dhënat janë kodi i të dhënave, ora është kunja e orës elementi i kaluar B është biti më i vogël domethënës Së pari, ky ushqehet në fillim kështu që përfundon në daljen e fundit sapo të futen të 8 bitët në, provoni të luani me vlera të ndryshme për të ndezur ose çaktivizuar modele të ndryshme dhe në fund një lak të zbrazët bosh (sepse keni nevojë për një të tillë edhe nëse nuk e përdorni) lak void () {} // lak bosh tani për tani Shembull 2: 8 rreshtat e parë janë njësoj si 8 rreshtat e parë të shembullit të parë, në fakt ato nuk do të ndryshojnë për asnjë nga projektet e tjera, kështu që #përcaktoni të dhënat 2 #përcaktoni orën 3void setup () {pinMode (orë, OUTPUT); // bëni pinin e orës një pinMode dalëse (të dhëna, OUTPUT); // bëjeni pinin e të dhënave një dalje Por tani në konfigurimin e zbrazëtisë ekziston një numërim 8 për lak, duke marrë një bajt të zbrazët dhe duke zhvendosur 1 bit në të njëjtën kohë duke filluar nga biti më i majtë dhe duke lëvizur djathtas. Kjo është e kundërt nga shembulli i parë ku filluam nga pjesa më e djathtë dhe punuam majtas, por duke përdorur MSBFIRST funksioni i zhvendosjes i dërgon të dhënat në mënyrën e duhur Gjithashtu shtojmë një vonesë në lakun for kështu që ngadalësohet aq sa të jetë i dukshëm. për (int i = 0; i <8; ++ i) // për 0 - 7 bëni {shiftOut (të dhëna, ora, MSBFIRST, 1 << i); // bit zhvendos një vlerë të lartë logjike (1) me i vonesë (100); // vononi 100ms ose nuk do të mund ta shihni atë}} void loop () {} // lak bosh tani ngarkoni skriptin dhe tani duhet të shihni që bargrafi të ndriçojë çdo dritë një nga një

Hapi 6: Projekti 2: Kontrolluesi i ekranit të segmentit '2 Wire' 7

Projekti 2: Kontrolluesi i ekranit të segmentit '2 Wire' 7
Projekti 2: Kontrolluesi i ekranit të segmentit '2 Wire' 7
Projekti 2: Kontrolluesi i ekranit të segmentit '2 Wire' 7
Projekti 2: Kontrolluesi i ekranit të segmentit '2 Wire' 7

Shikoni pinout -in e ekranit tuaj me 7 segmente (unë kisha vetëm një të dyfishtë, por vetëm duke përdorur gjysmën) dhe përdorni vizatimin më poshtë për të lidhur secilin segment me bitin e duhur në regjistrin e ndërrimit bit 1 = pin 3bit 2 = pin 4bit 3 = pin 5bit 4 = pin 6bit 5 = pin 10bit 6 = pin 11bit 7 = pin 12bit 8 = pin 13 (nëse doni të përdorni pikën dhjetore) Dhe katoda e ekranit përmes rezistencës 330ohm dhe për furnizimin me energji elektrike tani hapni shtatë_seg_demo.pde në arduino IDE Së pari shihni se ku i përcaktojmë të dhënat dhe kunjat e orës #përcaktoni të dhënat 2 #përcaktoni orën 3 Tjetra vendosim të gjitha modelet e karaktereve në binar, kjo është goxha e lehtë, shikoni vizatimin më poshtë, nëse keni nevojë për segmentin e mesëm shkruani një, tjetër a keni nevojë për segmentin e lartë, nëse po shkruani një tjetër, vazhdoni ta bëni këtë derisa të mbuloni të 8 segmentet, vini re se pjesa ime më e drejtë (bit 8) është gjithmonë 0, sepse unë kurrë nuk e ndez dhjetorin pikë. byte zero = B01111110; bajt një = B00000110; bajt dy = B11011010; bajt tre = B11010110; bajt katër = B10100110; bajt pesë = B11110100; bajt gjashtë = B11111100; byte shtatë = B01000110; byte tetë = B11111110; byte tetë = B11111110; tjetër në void setup ne i vendosim të dhënat tona dhe kunjat e orës në dalje void setup () {pinMode (clock, OUTPUT); // bëni pinin e orës një pinMode dalëse (të dhëna, OUTPUT); // bëjeni pin -in e të dhënave një dalje3} pastaj në lakun e zbrazët ne përdorim shiftOut për të shfaqur çdo model (numër) prisni 1/2 të sekondës dhe shfaqni tjetrin, 0 deri në 9, meqenëse bëhet në funksionin e lakut të zbrazët, ai do të numërojë 0-9 dhe përsëris përgjithmonë. void loop () {shiftOut (të dhëna, ora, LSBFIRST, zero); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, një); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, dy); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, tre); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, katër); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, pesë); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, gjashtë); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, shtatë); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, tetë); vonesë (500); shiftOut (të dhëna, orë, LSBFIRST, nëntë); vonesë (500);}

Hapi 7: Projekti 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display

Projekti 3 [pt 1]: Shfaqja e matricës së udhëhequr '2 Wire' 4x4
Projekti 3 [pt 1]: Shfaqja e matricës së udhëhequr '2 Wire' 4x4
Projekti 3 [pt 1]: Shfaqja e matricës së udhëhequr '2 Wire' 4x4
Projekti 3 [pt 1]: Shfaqja e matricës së udhëhequr '2 Wire' 4x4

Projekti i matricës LED 4x4 është pak më i ndërlikuar, por është pothuajse i gjithi në ndërtim, unë zgjedh ta bëj timen të ngjitur në tabelë, por duhet të jetë e mundur të përsëritet në një pjatë, shumë më larg. ndryshon në atë që regjistri i ndërrimit nuk drejton drejtpërdrejt led -at, por daljet e regjistrit të zhvendosjes dërgohen përmes një rezistence 1Kohm në bazën e një tranzistori NpN, kur dalja e bitit është e lartë, lejon që rryma dhe tensioni i mjaftueshëm të kalojnë në transistor për të ndërruar lidhjen midis kolektorit dhe emetuesit, kolektorët janë të lidhur me një "voltazh" të rregulluar 5 volt. Emetuesit e transistorëve janë të lidhur me rezistorë 150 ohm dhe rezistorët janë të lidhur me anodet e 4 led -ve me radhë dhe kufizon rreshtin në 20ma, megjithëse kur vizatoni imazhe në ekran vetëm 1 led është ndezur në të njëjtën kohë, dhe për këtë arsye afër shkëlqimit të plotë (afër sepse ato ndizen dhe fiken shumë shpejt për të krijuar të gjithë imazhin) Ka 4 rreshta dhe 4 kolona, secila rreshti merr një rezistencë dhe një transistor, në secilën kolonë katodat e LED janë të lidhura së bashku, përplasen me kolektorin e një tranzistori, baza e të cilit kontrollohet gjithashtu nga regjistri i ndërrimit, dhe më në fund jashtë në tokë. Version i madh skematik www.instructables.com/files/orig/F7J/52X0/G1ZGOSRQ/F7J52X0G1ZGOSRQ.jpg

Hapi 8: Projekti 3 [pt 2]: Shfaqja e matricës së udhëhequr nga '2 Wire' 4x4

Projekti 3 [pt 2]: Shfaqja e matricës së udhëhequr '2 tela' 4x4
Projekti 3 [pt 2]: Shfaqja e matricës së udhëhequr '2 tela' 4x4
Projekti 3 [pt 2]: Shfaqja e matricës së udhëhequr '2 tela' 4x4
Projekti 3 [pt 2]: Shfaqja e matricës së udhëhequr '2 tela' 4x4
Projekti 3 [pt 2]: Shfaqja e matricës së udhëhequr '2 tela' 4x4
Projekti 3 [pt 2]: Shfaqja e matricës së udhëhequr '2 tela' 4x4

Regjistri i ndërrimit kontrollon si anodën ashtu edhe katodat e LED -ve në një format YX, shikoni bitin e mëposhtëm 1 = kolona 1 bit (në të djathtë) bit 2 = kolona 2bit 3 = kolona 3bit 4 = kolona 4bit 5 = rreshti 1 (në krye) bit 6 = rreshti 2bit 7 = rreshti 3bit 8 = rreshti 4Për të bërë një imazh vizatoni një katror 4x4 në letër grafiku dhe plotësoni cilat doni të shfaqen, më pas bëni një tabelë YX. Më poshtë do të shihni një hartëzim për një përngjasim, si dhe atë më të mirë që mund të bëni në 4x4 "pixel" Për secilën pjesë të plotësuar unë shënoj se në cilën kolonë (Y) është, pastaj në cilën rresht është (X) Tani hapeni skedari _4x4.pde në arduino IDE do të shihni 2 miqtë tanë të vjetër #përcaktoni të dhënat 2 #përcaktoni orën 3 pastaj një grup integerësh int img = {1, 1, 4, 1, 1, 3, 4, 3, 2, 4, 3, 4}; Nëse shikoni është vetëm një listë e koordinatave të mia të shkruara YX, do të ishte një dhimbje e madhe në prapanicë për të konvertuar ato vlera me dorë, dhe ne kemi një kompjuter… le ta bëjë këtë! ora jonë dhe kunjat e të dhënave OUTPUTS void setup () {pinMode (orë, OUTPUT); // bëni pinin e orës një pinMode dalëse (të dhëna, OUTPUT); // bëjeni pin -in e të dhënave një dalje3} Dhe një lak të pavlefshëm që duket konfuz, për të filluar gjërat, duhet të deklarojmë disa variabla lokale void loop () {int Y; int X; byte jashtë; Pastaj një lak for, ky lak duhet të jetë i gjatë sa sasia e shënimeve në grupin img, për këtë imazh kam përdorur vetëm 6 piksele, kështu që bën 12 koordinata YX. Unë e bëj atë të kalojë çdo numër tjetër duke përdorur i += 2, sepse lexojmë 2 koordinata për lak për (int i = 0; i <12; i += 2) // numri i pikave në grupin img, ky rast 12 {Tani ne lexojmë shënimin Y në në grup, dhe zbresim një nga vlera e tij, sepse bajtët nuk fillojnë me një, ato fillojnë me zero, por ne numërojmë nga 1 // marrim palën e parë të litarëve YX Y = (img - 1); // zbres një pasi numërimi i bit fillon në 0 Tjetra ne lexojmë hyrjen X në [i + 1] në grup, dhe zbresim një nga vlera e tij, për të njëjtën arsye X = (img [i + 1] - 1); Pasi të kemi vlerat YX të pikselit, ne bëjmë pak ose matematikë dhe zhvendosemi në të majtë. Së pari ne duhet të lexojmë vlerën X, dhe cilado qoftë vlera e saj ta zhvendosim atë në shumë vende + 4 të majta, kështu që nëse X është 4 dhe shtoni 4 është bit 8 (MSB), duke parë tabelën përsëri … bit 1 = kolona 1 (në të djathtë) bit 2 = kolona 2bit 3 = kolona 3bit 4 = kolona 4bit 5 = rreshti 1 (në krye) bit 6 = rreshti 2bit 7 = rreshti 3bit 8 = rreshti 4Bit 8 është rreshti i fundit Tjetra vlera Y gjithashtu zhvendoset në të majtë, këtë herë vetëm nga vetja e tij, asgjë nuk shtohet më në fund. Së fundi të dyja bashkohen në 1 bajt në vend të 2 gjysmë bajtëve (nibbles), duke përdorur bitwise ose (simboli |) merr dy byte dhe i shton ato së bashku, le të supozojmë X = 10000000Y = 00000001 -------------------- OR = 10000001row 4 kolona 1 jashtë = 1 << (X + 4) | 1 << Y; Dhe së fundi zhvendoseni Për të shfaqur figurën aktuale, dhe vazhdoni ta bëni këtë derisa të mos kemi më të dhëna në grup … vononi një moment dhe lakoni përgjithmonë, meqë ne po i zhvendosnim të dhënat në të majtë dhe ne kemi nevojë që MSB të jetë në pinin e fundit të daljes të regjistrit të ndërrimit dërgojeni atë së pari. shiftOut (të dhënat, ora, MSBFIRST, jashtë); // zhvendosni bajtin në vonesën e regjistrit tonë (1); // vonojeni atë në mënyrë që të ketë një shans për të lënë një pikë drite në sytë tuaj Ndjehuni të lirë të bëni imazhet dhe efektet tuaja, Ka 3 skedarë mostër, fytyra e buzëqeshur dhe një tabelë kontrolluese (e cila duket më shumë si shirita), dhe më në fund një krijues i shkëndijave të rastit

Hapi 9: Përfundim

Përfundim
Përfundim
Përfundim
Përfundim
Përfundim
Përfundim

Mbi të gjitha ky është një çip i vogël mjaft i dobishëm dhe jam i kënaqur që e hoqa nga një pjesë e vjetër elektronike e drejtuar në plehra. Mund të përdoret për gjëra të tjera përveç sistemeve të ekranit, por të gjithëve u pëlqejnë dritat dhe reagimet e menjëhershme të shikimit ajo që po ndodh është jashtëzakonisht e dobishme për mendimtarët vizualë si I. Gjithashtu ju lutem më falni kodin tim, kam pasur arduino vetëm që në javën e tretë të tetorit, dhe ka qenë një kurs mjaft i madh përplasjeje. Por kjo është gjëja më e madhe në lidhje me sistemin, nëse uleni dhe punoni me të, ai është plot me veçori të pastra që e bëjnë kontrollin e botës me një mikrokontrollues 8 bit mjaft të lehtë për tu bërë. Si gjithmonë pyetjet dhe komentet janë më të mirëseardhura, dhe faleminderit për duke lexuar, shpresoj se keni mësuar shumë

Recommended: