Obsah:

Matica displeja 5x4 LED pomocou základnej pečiatky 2 (bs2) a charlieplexovania: 7 krokov
Matica displeja 5x4 LED pomocou základnej pečiatky 2 (bs2) a charlieplexovania: 7 krokov

Video: Matica displeja 5x4 LED pomocou základnej pečiatky 2 (bs2) a charlieplexovania: 7 krokov

Video: Matica displeja 5x4 LED pomocou základnej pečiatky 2 (bs2) a charlieplexovania: 7 krokov
Video: LED-телевизоры Philips линейки 4208 2024, November
Anonim
Matica displeja 5x4 LED pomocou základnej pečiatky 2 (bs2) a charlieplexovania
Matica displeja 5x4 LED pomocou základnej pečiatky 2 (bs2) a charlieplexovania

Máte k dispozícii základnú pečiatku 2 a niekoľko diód LED navyše? Prečo sa nepohrať s konceptom charlieplexingu a nevytvoriť výstup pomocou iba 5 pinov.

Na tento pokyn budem používať BS2e, ale každý člen rodiny BS2 by mal pracovať.

Krok 1: Charlieplexing: Čo, prečo a ako

Poďme najskôr zistiť, prečo z cesty. Prečo používať charlieplexing so základnou pečiatkou 2? --- Dôkaz koncepcie: Zistite, ako funguje charlieplexing, a naučte sa niečo o BS2. To sa mi môže neskôr hodiť pri použití rýchlejších 8-pinových čipov (iba 5 z nich bude i/o). --- Užitočný dôvod: V zásade žiadny neexistuje. BS2 je príliš pomalý na zobrazenie bez viditeľného blikania. Čo je to charlieplexing? --- Charlieplexing je spôsob napájania veľkého počtu LED diód s malým počtom vstupno-výstupných pinov mikroprocesora. Dozvedel som sa o charlieplexingu z www.instructables.com a môžete tiež: LED diódy Charlieplexing- teória Ako ovládať veľa LED diód z niekoľkých pinov mikrokontroléra. Tiež na wikipédii: CharlieplexingAko môžem riadiť 20 LED s 5 i/o pinmi? --- Prečítajte si prosím tri odkazy v časti „Čo je to charlieplexing?“. To to vysvetľuje lepšie, ako som kedy mohol. Charlieplexing sa líši od tradičného multiplexovania, ktorý potrebuje jeden I/O pin pre každý riadok a každý stĺpec (to by bolo celkom 9 I/O pinov pre 5/4 displej).

Krok 2: Hardvér a schéma

Hardvér a schéma
Hardvér a schéma

Zoznam materiálov: 1x - Základná pečiatka 220x - diódy vyžarujúce svetlo (LED) rovnakého typu (farba a pokles napätia) 5x - odpory (hodnoty rezistorov nájdete nižšie) Pomocné/voliteľné: Spôsob programovania vášho tlačidla BS2Momentárne tlačidlo ako resetovací spínač6v -9v Napájanie v závislosti od vašej verzie BS2 (prečítajte si príručku) Schéma: Táto schéma je zostavená s ohľadom na mechanické usporiadanie. Vľavo uvidíte mriežku diód LED nastavenú na túto orientáciu, pre ktorú bol kód BS2 napísaný. Všimnite si, že každý pár LED diód má anódu pripojenú ku katóde druhej. Potom sú pripojené k jednému z piatich i/o pinov. Hodnoty rezistora: Mali by ste vypočítať svoje vlastné hodnoty rezistora. V technickom liste skontrolujte svoje diódy LED alebo pomocou nastavenia LED na digitálnom multimetri vyhľadajte pokles napätia vašich diód LED. Vykonajme niekoľko výpočtov: Napájacie napätie - pokles napätia / požadovaný prúd = hodnota odporu. BS2 dodáva regulovaný výkon 5 V a môže napájať 20 mA. prúdu. Moje LED diódy majú pokles 1,6 V a fungujú pri 20 mA. 5 V - 1,6 V / 0,02 MP = 155 ohmov. Na ochranu vášho BS2 by ste mali použiť najbližšiu vyššiu hodnotu odporu z toho, čo získate výpočtom, v tomto prípade verím, že by to bolo 180 ohmov. Použil som 220 ohmov, pretože moja vývojová doska má v sebe integrovanú hodnotu rezistora pre každý I/O pin. POZNÁMKA: Verím, že keďže na každom pine je odpor, toto účinne zdvojnásobuje odpor na každej LED, pretože jeden pin je V+ a druhý Gnd. Ak je to tak, mali by ste znížiť hodnoty odporu na polovicu. Nepriaznivým účinkom príliš vysokých hodnôt odporu je stmievacia dióda LED. Môže to niekto overiť a nechať mi PM alebo komentár, aby som mohol tieto informácie aktualizovať? Programovanie: Na programovanie čipu priamo na doske používam vývojovú dosku, ktorá má konektor DB9. Tento čip tiež používam na svojej bezspájkovej doske a obsahuje hlavičku In Circuit Serial Programming (ICSP). Záhlavie je 5 pinov, piny 2 až 5 sa pripájajú na piny 2-5 na sériovom kábli DB9 (pin 1 je nepoužitý). Upozorňujeme, že na použitie tohto konektora ICSP, kolíky 6 a 7 na kábli DB9 musia byť navzájom prepojené. Reset: Krátke tlačidlo resetovania je voliteľné. Pri zatlačení sa kolík 22 iba potiahne k zemi.

Krok 3: Breadboarding

Breadboarding
Breadboarding
Breadboarding
Breadboarding

Teraz je čas postaviť maticu na dosku. Použil som svorkovnicu na pripojenie jednej nohy z každého páru LED dohromady a malý prepojovací kábel na pripojenie ostatných nôh. Toto je podrobne uvedené na detailnej fotografii a je to podrobne vysvetlené tu: 1. Orientujte svoju dosku tak, aby zodpovedala väčšiemu obrázku2. Umiestnite LED 1 anódou (+) smerom k vám a katódou (-) od vás. 3. Umiestnite LED 2 v rovnakej orientácii ako anóda (+) do spojovacej svorkovnice katódy LED 1. Pomocou malého prepojovacieho vodiča prepojte anódu LED 1 s katódou LED 2,5. Opakujte, kým nie je na dosku pridaný každý pár LED diód. Ako zbernicové pásy pre I/O piny BS2 používam to, čo by normálne boli pásy napájacej zbernice dosky na chlieb. Pretože existujú iba 4 zbernicové pásy, používam svorkovnicu pre P4 (piate pripojenie I/O). Toto je vidieť na väčšom obrázku nižšie.6. Pripojte svorkovnicu pre katódu LED 1 k zbernicovej lište P0. Opakujte pre každú nepárnu diódu LED s nahradením správneho P* pre každý pár (pozri schému).7. Pripojte svorkovnicu pre katódu LED 2 k zbernicovej lište P1. Opakujte pre každú nepárnu diódu LED s nahradením správneho P* pre každý pár (pozri schému).8. Pripojte každý zbernicový pás k príslušnému I/O kolíku na BS2 (P0-P4). Skontrolujte všetky pripojenia a uistite sa, že zodpovedajú schéme. 10. Oslávte. UPOZORNENIE: Na detailnom zábere uvidíte, že sa nezdá, že by som nasledoval krok 7, pretože pripojenie k druhému I/O kolíku je na anóde nepárnych LED diód. Nezabudnite, že katóda párnych LED diód je pripojená k anóde nepárnych LED diód, takže pripojenie je v oboch smeroch rovnaké. Ak vás táto poznámka mätie, jednoducho ju ignorujte.

Krok 4: Základy programovania

Aby charlieplexing fungoval, zapnete naraz iba jednu diódu. Aby to fungovalo s naším BS2, potrebujeme dva základné kroky: 1. Nastavte výstupné režimy pre piny pomocou príkazu OUTS.2. Povedzte BS2, ktoré piny použiť ako výstupy, pomocou príkazu DIRS. Funguje to, pretože BS2 môže byť povedané, ktoré piny majú byť vysoké a nízke, a bude na to čakať, kým nezadáte, ktoré piny sú výstupmi. Pozrime sa, či sú veci správne zapojené práve sa pokúša blikať LED 1. Ak sa pozriete na schému, vidíte, že P0 je zapojený do katódy (-) LED 1 a P1 je pripojený k anóde tej istej LED. To znamená, že chceme jazdiť na P0 nízko a P1 vysoko. To sa dá urobiť takto: „VÝSTUPY = % 11110“, ktoré riadia vysoké hodnoty P4-P1 a nízke hodnoty P0. (% Znamená, že má nasledovať binárne číslo. Najnižšia binárna číslica je vždy vpravo. 0 = LOW, 1 = HIGH) BS2 ukladá tieto informácie, ale nebude s nimi konať, kým nevyhlásime, ktoré piny sú výstupy. Tento krok je kľúčový, pretože výstupom by mali byť iba dva piny súčasne. Ostatné by mali byť vstupy, ktoré prepínajú tieto kolíky do režimu vysokej impedancie, takže nebudú potláčať žiadny prúd. Potrebujeme riadiť P0 a P1, takže ich nastavíme na výstupy a zvyšok na vstupy takto: „DIRS = % 00011“. (% Znamená, že má nasledovať binárne číslo. Najnižšia binárna číslica je vždy vpravo. 0 = VSTUP, 1 = VÝSTUP) Poďme to zhrnúť do užitočného kódu: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OUTS = %11110 'Drive P0 low and P1-P4 high DIRS = %00011' Set P0- P1 ako výstupy a P2-P4 ako vstupy PAUZA 250 'Pauza, aby LED dióda stále svietila DIRS = 0' Nastavte všetky kolíky na vstup. Tým sa vypne LED PAUSE 250 'Pauza, aby LED dióda zostala zhasnutá

Krok 5: Vývojový cyklus

Teraz, keď sme videli jeden pracovný čas na pin, aby sme sa uistili, že všetky fungujú. 20led_Zig-Zag.bse Tento priložený kód by mal rozsvietiť každú z 20 LED diód cik-cak. Všimnite si, že potom, čo sa každý kolík rozsvieti, použijem "DIRS = 0" na premenu všetkých pinov späť na vstupy. Ak zmeníte VÝSTUPY bez vypnutia výstupných kolíkov, môže dôjsť k „zdvojeniu“, kde môže dióda, ktorá by nemala svietiť, medzi cyklami blikať. Ak zmeníte premennú W1 na začiatku tohto kódu na „W1 = 1“bude medzi jednotlivými bliknutiami diód LED trvať iba 1 milisekundu. To spôsobí efekt pretrvávania videnia (POV), ktorý vyzerá, že všetky LED diódy svietia. To má za následok stmievanie LED diód, ale je to podstata toho, ako budeme zobrazovať znaky na tejto matici. 20led_Interpreter_Proto.bse V tomto bode som sa rozhodol, že musím vyvinúť nejaký typ kódu tlmočníka, aby som zmenil bláznivé kombinácie potrebné na osvetlenie LED diódy do použiteľného vzoru. Tento súbor je môj prvý pokus. Uvidíte, že v spodnej časti súboru sú znaky uložené v štyroch riadkoch 5 -miestneho binárneho súboru. Každý riadok sa načíta, analyzuje a zavolá sa podprogram vždy, keď je potrebné rozsvietiť LED diódu. Tento kód funguje tak, že cykluje cez číslice 1-0. Ak sa ho pokúsite spustiť, všimnite si, že ho trápi veľmi pomalá obnovovacia frekvencia, ktorá spôsobuje, že postavy blikajú takmer príliš pomaly na to, aby ich bolo možné rozpoznať. Tento kód je zlý z mnohých dôvodov. Po prvé, päť číslic binárneho súboru zaberá v EEPROM rovnako veľa miesta ako 8 číslic binárneho súboru, pretože všetky informácie sú uložené v skupinách po štyroch bitoch. Za druhé, SELECT CASE, ktorý sa používa na rozhodovanie o tom, ktorý kolík je potrebné rozsvietiť, vyžaduje 20 prípadov. BS2 je obmedzený na 16 prípadov na jednu operáciu SELECT. To znamená, že som musel obmedziť toto obmedzenie vyhlásením IF-THEN-ELSE. Musí existovať lepší spôsob. Po niekoľkých hodinách škriabania hlavy som to zistil.

Krok 6: Lepší tlmočník

Každý riadok našej matice pozostáva zo 4 LED diód, z ktorých každá môže byť zapnutá alebo vypnutá. BS2 ukladá informácie do svojej EEPROM v skupinách po štyroch bitoch. Táto korelácia by nám to mala výrazne uľahčiť. Okrem toho štyri bity zodpovedajú desatinným číslam 0-15, čo je celkom 16 možností. Toto je alebo VYBRAJTE PRÍPAD oveľa jednoduchšie. Tu je číslica 7 uložená v EEPROM: „7 %1111, %1001, %0010, %0100, %0100, Každý riadok má desatinné ekvivalenty 0-15, takže čítame vložte ho z pamäte a vložte ho priamo do funkcie VYBERTE PRÍPAD. To znamená, že binárna matica čitateľná pre človeka na vytvorenie každého znaku (1 = LED svieti, 0 = LED nesvieti) je kľúčom pre tlmočníka. Aby som mohol použiť rovnaký ZOBRAZOVACÍ PRÍPAD pre každý z 5 riadkov, použil som iný výberový prípad nastaviť DIRS a OUTS ako premenné. Najprv som v každom z piatich riadkov znaku prečítal premenné ROW1-ROW5. Hlavný program potom zavolá podprogram na zobrazenie znaku. Tento podprogram zaberá prvý riadok a priradí štyri možné kombinácie OUTS k premennej outp1-outp4 a dve možné kombinácie DIRS k direc1 & direc2. LED diódy blikajú, počítadlo riadkov sa zvýši a rovnaký proces sa spustí pre každý z ďalších štyroch riadkov. Je to oveľa rýchlejšie ako v prvom interpretačnom programe. Ako už bolo povedané, stále existuje viditeľné blikanie. Pozrite sa na video, vďaka fotoaparátu bude blikanie vyzerať oveľa horšie, ale chápete. Prenesenie tohto konceptu na oveľa rýchlejší čip, ako je napríklad čip picMicro alebo AVR, by umožnil zobrazenie týchto znakov bez viditeľného blikania.

Krok 7: Kam ísť odtiaľto

Nemám cnc mlyn ani zásoby leptania na výrobu obvodových dosiek, takže nebudem zapojovať tento projekt. Ak máte mlyn a máte záujem spolupracovať, aby ste sa odtiaľto pohli dopredu, pošlite mi správu. Rád zaplatím za materiál a dopravu ešte šťastnejší, aby som ukázal niečo hotového výrobku pre tento projekt.

Ďalšie možnosti: 1. Port na iný čip. Túto maticovú konštrukciu je možné použiť s akýmkoľvek čipom, ktorý má k dispozícii 5 i/o pinov, ktoré sú schopné troch stavov (piny, ktoré môžu byť vysoké, nízke alebo vstupné (vysoká impedancia)). 2. Pomocou rýchlejšieho čipu (možno AVR alebo picMicro) môžete zväčšiť mierku. S 20pinovým čipom môžete použiť 14 pinov na Charlieplex displej 8x22 a zvyšné piny použiť na príjem sériových príkazov z počítača alebo iného ovládača. Použite ďalšie tri 20-kolíkové čipy a môžete mať rolovací displej s rozmermi 8 x 88 na celkom 11 znakov naraz (samozrejme v závislosti od šírky každého znaku). Veľa šťastia, zabav sa!

Odporúča: