Obsah:

Jak řídit spoustu LED z několika pinů mikrokontroléru: 6 kroků (s obrázky)
Jak řídit spoustu LED z několika pinů mikrokontroléru: 6 kroků (s obrázky)

Video: Jak řídit spoustu LED z několika pinů mikrokontroléru: 6 kroků (s obrázky)

Video: Jak řídit spoustu LED z několika pinů mikrokontroléru: 6 kroků (s obrázky)
Video: Arduino: Základy 01 | Seznámení s Arduinem [sub] 2024, Listopad
Anonim
Jak řídit spoustu LED z několika pinů mikrokontroléru
Jak řídit spoustu LED z několika pinů mikrokontroléru

S využitím skutečnosti, že mnoho pinů mikrokontroléru má tři stavy (+V, GND nebo „vysoká impedance“), můžete řídit LED diody N*(N-1) z pinů N. Takže malý 8pinový mikrokontrolér jako PIC12Fxxx nebo ATtiny11 může řídit 20 LED diod svítí na pěti dostupných výstupních pinech a stále jim zbývá jeden pin pro nějaký druh vstupu. Viz také

Krok 1: 20 LED diod na 5 pinech

20 LED diod na 5 pinech
20 LED diod na 5 pinech

Aktuální plodina mikrořadičů s nízkým počtem pinů (6 pinů až 20 pinů na

celý balíček) jsou cenově atraktivní a „roztomilé“, ale vyvstává otázka, jak tyto piny nejlépe využít pro běžné aplikace, jako jsou LED diody. Přímý přístup k řízení LED diod spotřebuje jeden pin pro každou LED. Tradiční multiplexní schéma, kde řady LED anod jsou poháněny jednou sadou N pinů a společná katoda každé řady je poháněna jinou sadou M pinů, dokáže rozsvítit N*M LED s N+M piny. Na procesoru s pouze 5 nebo méně výstupy (jak je tomu u většiny 8kolíkových mikrokontrolérů) to však sotva získá více výstupů než přímý pohon.

Krok 2: Charlieplexing

Charlieplexing
Charlieplexing

Za předpokladu, že výstupní piny jsou ve skutečnosti třístavové (aktivní vysoká, aktivní nízká a vysoká impedance (vstup)), je také možné sdílet ovladače řádků a sloupců a ovládat LED diody N*(N-1) pouze pomocí N. Jeden kolík je připojen ke společným katodám řady LED diod a řízeného záblesku a zbývající kolíky N-1 jsou připojeny k anodám a buď poháněny vysoko pro osvětlení tohoto sloupce, nebo ponechány jako vstupy, aby LED zhasly. Maxim nazývá tuto techniku „Charlieplexing“a popisuje ji v (1); Microchip to také uvádí ve svém dokumentu (2) (a implementuje také na desku PICKit 1.) (1) „Charlieplexing-multiplexování LED displeje se sníženým počtem pinů“https://www.maxim-ic.com/appnotes. cfm/appnote_number/1880 (2) "Tips 'n Tricks 8-pin FLASH PIC Microcontrollers" https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) Charlieplexing LEDs- The theory an Instructable by rgbphil

Krok 3: Uvedení do provozu

Uvedení do provozu
Uvedení do provozu
Uvedení do provozu
Uvedení do provozu

To pohání 20 LED z ATtiny11. Dřívější verze této desky byla

skutečně postaven a zobrazí se jako hlavní stránka fotografie. Obávám se, že obrázek schématu je docela beznadějný; potřebujete, aby vám Eagle řekl, které signály jsou kde připojeny.

Krok 4: Menší a více univerzální…

Menší a všestrannější…
Menší a všestrannější…

Protože většinu desky zabírá LED pole, můžeme uvolnit místo

buď pro čip Attiny NEBO pro mikročipový čip PIC12F. Zmenšete diody LED na 3 mm a přejděte na oboustrannou desku a dostaneme něco o 27x44 mm, bohužel, tato deska ještě nebyla testována …

Krok 5: Itty Bitty

Ťuťu ňuňu
Ťuťu ňuňu

Mikročip má samozřejmě své 6pinové čipy PIC10F, schopné řídit a

pouhých 6 LED diod ze 3 výstupních pinů. To má průměr asi 16 mm. Přejít na 603 LED diod vám umožní trochu zmenšit, ale nejsem si jistý, o co jde.

Krok 6: Software

Software je trochu chaotický ze serverových důvodů:

1) u zobrazených desek plošných spojů jsou diody LED uspořádány způsobem, který je vhodný pro rozložení desek plošných spojů, a nikoli ve „správném“pořadí bitů. IMO, toto je způsob, jak dělat věci, ale znamená to, že řádek 1 nemusí nutně znamenat bit 1 nebo coluimn 3 neznamená bit 3. To vyžaduje úroveň mapování mezi obvyklým adresováním řádků/sloupců a bity, které je třeba nastavit. 2) Protože se pro anody a katody používají stejné bity, společné (řádkové) připojení pro některé bity může být uprostřed poháněných (sloupcových) bitů. To znamená, že musíte posunout bity sloupců podle toho, zda jsou před nebo za bitem řádku pro danou sadu sloupců. 3) Musíte odvodit výstupní slova pro ioport i registr směru portu. Připojený kód ASM pro ATtiny11 je „důkazem koncepce“. Je to trapně neoptimalizované a špatně komentované, ale je to vše, co jsem zatím napsal.

Doporučuje: