Përmbajtje:

Matrica e ekranit LED 5x4 duke përdorur një pullë bazë 2 (bs2) dhe Charlieplexing: 7 hapa
Matrica e ekranit LED 5x4 duke përdorur një pullë bazë 2 (bs2) dhe Charlieplexing: 7 hapa
Anonim
Matrica e ekranit LED 5x4 duke përdorur një pullë bazë 2 (bs2) dhe Charlieplexing
Matrica e ekranit LED 5x4 duke përdorur një pullë bazë 2 (bs2) dhe Charlieplexing

Keni një pullë bazë 2 dhe disa LED shtesë ulur përreth? Pse të mos luani me konceptin e charlieplexing dhe të krijoni një dalje duke përdorur vetëm 5 kunja.

Për këtë udhëzues unë do të përdor BS2e por çdo anëtar i familjes BS2 duhet të punojë.

Hapi 1: Charlieplexing: Çfarë, Pse dhe Si

Le të marrim pse nga rruga së pari. Pse të përdorni charlieplexing me një pullë bazë 2? --- Vërtetim i konceptit: Mësoni se si funksionon karlieplexing dhe mësoni diçka rreth BS2. Kjo mund të jetë e dobishme për mua më vonë duke përdorur patate të skuqura më të shpejta me 8 kunja (vetëm 5 prej tyre do të jenë i/o).--- Arsye e dobishme: Në thelb nuk ka asnjë. BS2 është shumë i ngadalshëm për tu shfaqur pa dridhje të dukshme. Çfarë është charlieplexing? --- Charlieplexing është një metodë e drejtimit të një numri të madh LEDs me një numër të vogël kunjash të in/o të mikroprocesorit. Mësova për charlieplexing nga www.instructables.com dhe gjithashtu mundeni: Charlieplexing LEDs- TeoriaSi të drejtoni shumë LED nga disa kunja të mikrokontrolluesit. Gjithashtu në wikipedia: CharlieplexingSi mund të drejtoj 20 led me 5 kunja i/o? --- Ju lutemi lexoni përmes tre lidhjeve nën "Çfarë është karlieplexing?". Kjo e shpjegon më mirë se kurrë. Charlieplexing është i ndryshëm nga multipleximi tradicional i cili ka nevojë për një kunj të i/o për çdo rresht dhe çdo kolonë (që do të ishin gjithsej 9 kunja i/o për një ekran 5/4).

Hapi 2: Hardware dhe Skematik

Hardware dhe Skematike
Hardware dhe Skematike

Lista e materialeve: 1x - Pulla themelore 220x - diodë emetuese të dritës (LED) të të njëjtit lloj (ngjyra dhe rënie e tensionit) 5x - rezistorë (shiko më poshtë në lidhje me vlerën e rezistencës) Ndihmëse/Opsionale: Metoda e programimit të BS2 -së tuaj Butoni lëvizës si ndërprerës i rivendosjes 6v -9vFurnizimi me energji në varësi të versionit tuaj të BS2 (lexoni manualin tuaj) Skema: Kjo skemë është vendosur së bashku me paraqitjen mekanike në mendje. Ju do të shihni rrjetin e LED -ve të vendosur në të majtë, ky është orientimi për të cilin është shkruar kodi BS2. Vini re se çdo palë LED kanë anodën të lidhur me katodën e tjetrës. Ato lidhen më pas me një nga pesë kunjat i/o. Vlerat e rezistencës: Ju duhet të llogaritni vlerat tuaja të rezistencës. Kontrolloni fletën e të dhënave për LED -të tuaj ose përdorni cilësimin LED në multimetrin tuaj dixhital për të gjetur rënien e tensionit të LED -ve tuaj. Le të bëjmë disa llogaritje: Tensioni i Furnizimit - Rënia e Tensionit / Rryma e Dëshiruar = Vlera e Rezistencës BS2 furnizon 5v fuqi të rregulluar, dhe mund të burojë 20ma të rrymës. LED -et e mia kanë një rënie 1.6v dhe funksionojnë në 20ma.5v - 1.6v /.02amps = 155ohmsPër të mbrojtur BS2 tuaj duhet të përdorni vlerën tjetër të rezistencës më të lartë nga ajo që merrni me llogaritjen, në këtë rast besoj se do të ishte 180ohms. Kam përdorur 220ohms sepse bordi im i zhvillimit ka atë vlerë të rezistencës të integruar për secilën kunj i/o. SH NOTNIM: Unë besoj se meqenëse ka një rezistencë në secilën kunj kjo në mënyrë efektive dyfishon rezistencën në secilën led pasi një kunj është V+ dhe tjetra është Gnd. Nëse ky është rasti, duhet të zvogëloni vlerat e rezistencës përgjysmë. Efekti negativ i një vlere shumë të lartë të rezistencës është një LED i zbehtë. A mundet dikush ta verifikojë këtë dhe të më lërë një PM ose koment që të mund ta përditësoj këtë informacion? Programim: Unë kam përdorur një bord zhvillimi që ka një lidhës DB9 për të programuar çipin pikërisht në tabelë. Unë gjithashtu e përdor këtë çip në pjatën time të saldimit dhe kam përfshirë një kokë të programimit serik në qark (ICSP). Titulli është 5 kunja, kunjat 2 deri në 5 lidhen me kunjat 2-5 në një kabllo serike DB9 (Pin 1 nuk përdoret). Ju lutemi vini re se për të përdorur këtë kokë ICSP, kunjat 6 dhe 7 në kabllon DB9 duhet të jenë të lidhur me njëri -tjetrin. Rivendosja: Një buton i rivendosjes së shtypjes momentale është opsional. Kjo thjesht tërheq pinin 22 në tokë kur shtyhet.

Hapi 3: Breadboarding

Breadboarding
Breadboarding
Breadboarding
Breadboarding

Tani është koha për të ndërtuar matricën në një dërrasë buke. Kam përdorur një shirit terminal për të lidhur një këmbë nga secila palë led së bashku dhe një tel të vogël kërcyes për të lidhur këmbët e tjera. Kjo është e detajuar në fotografinë nga afër dhe shpjegohet në thellësi këtu: 1. Orientoni tabelën tuaj të bukës që të përputhet me figurën më të madhe2. Vendoseni LED 1 me Anodën (+) drejt jush dhe katodës (-) larg jush.3. Vendoseni LED 2 në të njëjtin orientim me Anodën (+) në shiritin e terminalit lidhës të katodës LED 1. Përdorni një tel të vogël bluzë për të lidhur Anodën e LED 1 me Katodën e LED 2.5. Përsëriteni derisa çdo palë LED të jetë shtuar në tabelë. Unë përdor ato që normalisht do të ishin shiritat e autobusëve të bordit të bukës si shirita autobusi për kunjat e hyrjes/daljes BS2. Për shkak se ka vetëm 4 shirita autobusi unë përdor një shirit terminal për P4 (lidhja e pestë I/O). Kjo mund të shihet në foton më të madhe më poshtë.6. Lidhni shiritin e terminalit për katodën LED 1 me shiritin e autobusit P0. Përsëriteni për secilën LED me numër tek duke zëvendësuar P* të duhur për secilën palë (shikoni skemën).7. Lidhni shiritin e terminalit për katodën LED 2 me shiritin e autobusit P1. Përsëriteni për secilën LED të numëruar tek duke zëvendësuar P* të duhur për secilën palë (shikoni skemën).8. Lidhni çdo shirit autobusi me kunjin e duhur I/O në BS2 (P0-P4).9. Kontrolloni të gjitha lidhjet për të siguruar që ato përputhen me skemën.10. Festoni. SHOTNIM: Në planin e afërt do të shihni se nuk duket se kam ndjekur hapin 7 pasi lidhja me kunjin e dytë I/O është në Anodën e LED-ve të numëruara tek. Mos harroni se katoda e LED -ve me numër çift është e lidhur me Anodën e LED -ve me numër tek, kështu që lidhja është e njëjtë në çdo mënyrë. Nëse ky shënim ju ngatërron, thjesht injorojeni.

Hapi 4: Bazat e Programimit

Për të punuar me charlieplexing, ndizni vetëm një led në të njëjtën kohë. Që kjo të funksionojë me BS2 -në tonë na duhen dy hapa bazë: 1. Vendosni mënyrat e daljes për kunjat duke përdorur komandën OUTS.2. Thuaj BS2 se cilat kunja të përdoren si dalje duke përdorur komandën DIRS thjesht duke u përpjekur për të ndezur LED 1. Nëse shikoni skemën, mund të shihni që P0 është i lidhur me katodën (-) e LED 1 dhe P1 është i lidhur me Anodën e të njëjtës LED. Kjo do të thotë që ne duam të ngasim P0 të ulët dhe P1 të lartë. Kjo mund të bëhet kështu: "OUTS = % 11110" e cila e çon P4-P1 lartë dhe P0 ulët. (% Tregon një numër binar që do të ndiqet. Shifra binare më e ulët është gjithmonë në të djathtë. 0 = I LART,, 1 = I LART) BS2 ruan atë informacion, por nuk do të veprojë në të derisa të deklarojmë se cilat kunja janë dalje. Ky hap është kyç pasi vetëm dy kunja duhet të dalin në të njëjtën kohë. Pjesa tjetër duhet të jetë hyrje, e cila i vendos ato kunja në modalitetin e Impedancës së Lartë, kështu që ata nuk do të fundosin asnjë rrymë. Ne duhet të drejtojmë P0 dhe P1 kështu që do t'i vendosim ato në dalje dhe pjesa tjetër në hyrje si kjo: "DIRS = % 00011". (% Tregon se do të ndiqet një numër binar. Shifra binare më e ulët është gjithmonë në të djathtë. 0 = HYRJE, 1 = JASHT dalje) Le ta vendosim së bashku në një kod të dobishëm: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OUT = %11110 'Drive P0 ulët dhe P1-P4 lartë DIRS = %00011' Set P0- P1 si dalje dhe P2-P4 si hyrje PAUSE 250 'Pauzë që LED të mbetet në DIRS = 0' Vendosni të gjitha kunjat në hyrje. Kjo do të fikë LED PAUSE 250 'Pushim që LED të mbetet jashtëLOOP

Hapi 5: Cikli i Zhvillimit

Tani që kemi parë një kohë pune pin për t'u siguruar që të gjithë punojnë. 20led_Zig-Zag.bseKy kod i bashkangjitur duhet të ndriçojë secilën nga 20 LEDS në një model zig-zag. Ju do të vini re se pasi çdo kunj të jetë ndezur, unë përdor "DIRS = 0" për t'i kthyer të gjitha kunjat përsëri në hyrje. Nëse ndryshoni OUTS pa i fikur kunjat e daljes, mund të merrni disa "fantazma" ku një led që nuk duhet të ndizet mund të pulsojë mes cikleve. Nëse ndryshoni ndryshoren W1 në fillim të këtij kodi në "W1 = 1" atje do të jetë vetëm një pauzë 1 milisekonda mes çdo ndezje LED. Kjo do të shkaktojë një efekt të vazhdueshëm të shikimit (POV) që e bën të duket sikur të gjitha LED -të janë ndezur. Kjo ka efektin e zbehjes së LED -ve, por është thelbi i mënyrës sesi ne do t'i shfaqim personazhet në këtë matricë. LEDs në një model të përdorshëm. Ky skedar është përpjekja ime e parë. Do të shihni që në fund të skedarit personazhet ruhen në katër rreshta binarë me 5 shifra. Çdo rresht lexohet, analizohet dhe quhet një nënrutinë sa herë që një led duhet të ndizet. Ky kod funksionon, duke lëvizur me shifra 1-0. Nëse përpiqeni ta ekzekutoni, vini re se është goditur nga një ritëm shumë i ngadalshëm i rifreskimit duke bërë që personazhet të ndizen pothuajse shumë ngadalë për t'u njohur. Ky kod është i keq për shumë arsye. Së pari, pesë shifra binare zënë po aq hapësirë në EEPROM sa 8 shifra binare pasi i gjithë informacioni ruhet në grupe me katër bite. Së dyti, RASTI SELECT i përdorur për të vendosur se cila kunj duhet të ndriçohet kërkon 20 raste. BS2 është i kufizuar në 16 raste për operacionin SELECT. Kjo do të thotë se më është dashur të hakoj atë kufizim me një deklaratë NFSE PASTAJ-TJETSER. Duhet të ketë një mënyrë më të mirë. Pas disa orësh kruajtje të kokës e zbulova.

Hapi 6: Një përkthyes më i mirë

Çdo rresht i matricës sonë përbëhet nga 4 LED, secila mund të jetë e ndezur ose e fikur. BS2 ruan informacionin në EEPROM -in e tij në grupe me katër bite. Ky korrelacion duhet t'i bëjë gjërat shumë më të lehta për ne. Përveç këtij fakti, katër bit korrespondojnë me numrat dhjetorë 0-15 për një total prej 16 mundësish. Kjo e bën ose ZGJIDH RASTIN shumë më të lehtë. Këtu është numri 7 i ruajtur në EEPROM: '7 %1111, %1001, %0010, %0100, %0100, Çdo rresht ka një ekuivalent dhjetor në 0-15 kështu që ne lexojmë një rreshtoni nga kujtesa dhe futeni drejtpërdrejt në funksionin SELECT CASE. Kjo do të thotë që matrica binare e lexueshme nga njeriu e përdorur për të bërë secilin karakter (1 = e ndezur, 0 = e çuar jashtë) është çelësi për përkthyesin. Për të përdorur të njëjtën RAST SELECT për secilën nga 5 rreshtat kam përdorur një rast tjetër të zgjedhur për të vendosur DIRS dhe OUTS si ndryshore. Së pari lexova në secilën prej pesë rreshtave të karakterit tek variablat ROW1-ROW5. Programi kryesor thërret nën -programin për të shfaqur karakterin. Kjo nënrutinë merr rreshtin e parë dhe cakton katër kombinimet e mundshme OUTS në ndryshoren outp1-outp4 dhe dy kombinimet e mundshme DIRS në direc1 & direc2. LED -të ndizen, numëruesi i rreshtave rritet dhe i njëjti proces kryhet për secilën nga katër rreshtat e tjerë. Kjo është shumë më e shpejtë se programi i parë i përkthyesit. Duke u thënë kështu, ka ende një dridhje të dukshme. Hidhini një sy videos, kamera e bën ndezjen të duket shumë më keq, por ju e merrni idenë. Transferimi i këtij koncepti në një çip shumë më të shpejtë, si një picMicro ose një çip AVR do të mundësonte shfaqjen e këtyre personazheve pa një dridhje të dukshme.

Hapi 7: Ku të shkoni nga këtu

Unë nuk kam një mulli cnc ose pajisje gdhendjeje për të bërë pllaka qarku, kështu që nuk do ta instaloj këtë projekt. Nëse keni një mulli dhe jeni të interesuar të bashkëpunoni për të ecur përpara nga këtu, më dërgoni një mesazh. Do të isha i lumtur të paguaja për materialet dhe transportin edhe më të lumtur për të treguar diçka të një produkti të përfunduar për këtë projekt.

Mundësi të tjera: 1. Portojeni këtë në një çip tjetër. Ky dizajn i matricës mund të përdoret me çdo çip që ka 5 kunja i/o në dispozicion që janë të aftë për tri gjendje (kunjat që mund të jenë të lartë, të ulët ose hyrje (rezistencë e lartë)). 2. Duke përdorur një çip më të shpejtë (ndoshta AVR ose picMicro) ju mund të rrisni shkallën. Me një çip 20pin ju mund të përdorni 14 kunja për të bashkuar një ekran 8x22 dhe përdorni kunjat e mbetur për të marrë komanda serike nga një kompjuter ose një kontrollues tjetër. Përdorni tre çipa të tjerë me 20 kunja dhe mund të keni një ekran rrotullues që është 8x88 për një total prej 11 karakteresh menjëherë (në varësi të gjerësisë së secilit karakter natyrisht). Fat i mirë, argëtohuni!

Recommended: