LED sedmisegmentové indikátory. LED indikátor A teď, jak se to všechno naprogramuje?

V této lekci se seznámíme se schématy připojení sedmisegmentových LED indikátorů k mikrokontrolérům a jak indikátory ovládat.

LED sedmisegmentové indikátory zůstávají jedním z nejoblíbenějších prvků pro zobrazování digitálních informací.

K tomu přispívají jejich následující vlastnosti.

  • Nízká cena. Z hlediska displeje není nic levnějšího než LED digitální ukazatele.
  • Různé velikosti. Nejmenší a největší indikátory jsou LED. Znám LED indikátory s výškou číslic od 2,5 mm do 32 cm.
  • Svítící ve tmě. V některých aplikacích je tato vlastnost téměř rozhodující.
  • Mají různé barvy lesku. Existují dokonce i dvoubarevné.
  • Poměrně nízké řídicí proudy. Moderní LED indikátory lze připojit na piny mikrokontrolérů bez dalších kláves.
  • Vhodné pro náročné provozní podmínky (rozsah teplot, vysoká vlhkost, vibrace, agresivní prostředí atd.). V této kvalitě nemají LED indikátory mezi ostatními typy zobrazovacích prvků obdoby.
  • Neomezená životnost.

Typy LED indikátorů.

Sedmisegmentový LED indikátor zobrazuje znak pomocí sedmi LED - segmentů číslic. Osmá LED svítí desetinnou čárku. V sedmisegmentovém ukazateli je tedy 8 segmentů.

Segmenty jsou označeny latinskými písmeny od „A“ do „H“.

Anody nebo katody každé LED jsou spojeny v indikátoru a tvoří společný vodič. Proto existují indikátory se společnou anodou a společnou katodou.

LED indikátor se společnou anodou.

LED indikátor se společnou katodou.

Statické LED ovládání.

LED indikátory musí být připojeny k mikrokontroléru přes odpory omezující proud.

Výpočet rezistorů je stejný jako u jednotlivých LED.

R = (U zásobování - U segment) / I segment

Pro tento obvod: I segment = (5 – 1,5) / 1000 = 3,5 mA

Moderní LED indikátory svítí poměrně jasně i při proudu 1 mA. U obvodu se společnou anodou se rozsvítí segmenty, na jejichž ovládacích pinech bude mikrokontrolér generovat nízkou úroveň.

Ve schématu zapojení indikátoru se společnou katodou se mění polarita napájecího a řídicího signálu.

Rozsvítí se segment, na jehož ovládacím kolíku se vygeneruje vysoká úroveň (5 V).

Multiplexní režim pro ovládání LED indikátorů.

Pro připojení každého sedmisegmentového indikátoru k mikrokontroléru je potřeba osm kolíků. Pokud existují 3–4 indikátory (číslice), pak se úkol stává prakticky nemožným. Prostě není dostatek pinů mikrokontroléru. V tomto případě mohou být indikátory zapojeny v multiplexním režimu, v režimu dynamické indikace.

Zjištění stejnojmenných segmentů každého indikátoru jsou kombinována. Výsledkem je matice LED připojených mezi segmentové kolíky a společné indikační kolíky. Zde je obvod pro multiplexní ovládání třímístného indikátoru se společnou anodou.

Pro připojení tří indikátorů bylo zapotřebí 11 pinů, nikoli 24, jako v režimu statického ovládání.

U dynamického zobrazení svítí vždy pouze jedna číslice. Vysokoúrovňový signál (5 V) je přiváděn na společný pin jednoho z bitů a nízkoúrovňové signály jsou posílány na segmentové piny pro ty segmenty, které by se měly v tomto bitu rozsvítit. Po určité době se rozsvítí další výboj. Na jeho společný kolík je aplikována vysoká úroveň a stavové signály pro tento bit jsou odesílány na segmentové kolíky. A tak dále pro všechny číslice v nekonečné smyčce. Doba cyklu se nazývá doba regenerace indikátoru. Pokud je doba regenerace dostatečně krátká, lidské oko přepínání výbojů nezaznamená. Bude se zdát, že všechny výboje neustále svítí. Aby se zabránilo blikání indikátorů, předpokládá se, že frekvence regeneračního cyklu by měla být alespoň 70 Hz. Snažím se používat alespoň 100 Hz.

Dynamický indikační obvod pro LED se společnou katodou vypadá takto.

Polarita všech signálů se mění. Nyní je aplikována nízká hladina na společný vodič aktivního výboje a vysoká hladina je aplikována na segmenty, které by se měly rozsvítit.

Výpočet dynamických zobrazovacích prvků světelných diodových (LED) indikátorů.

Výpočet je poněkud složitější než u statického režimu. Při výpočtu je nutné určit:

  • průměrný proud segmentů;
  • pulzní proud segmentů;
  • odpor segmentového odporu;
  • pulzní proud společných vývodů výbojů.

Protože Číslice indikátoru se postupně rozsvěcují, jas světla určuje průměrný proud. Musíme jej zvolit na základě parametrů indikátoru a požadovaného jasu. Průměrný proud určí jas indikátoru na úrovni odpovídající statickému řízení se stejným konstantním proudem.

Zvolme průměrný segmentový proud 1 mA.

Nyní spočítáme pulzní proud segmentu. Pro zajištění požadovaného průměrného proudu musí být pulzní proud Nkrát větší. Kde N je počet číslic indikátoru.

segmentuji imp. = segmentuji prům. *N

Pro naše schéma I segment. imp. = 1 * 3 = 3 mA.

Vypočítáme odpor rezistorů, které omezují proud.

R = (U zásobování - U segment) / I segment. imp.

R = (5 – 1,5) / 0,003 = 1166 Ohm

Určujeme pulzní proudy společných vývodů výbojů. 8 segmentů může svítit současně, což znamená, že musíte vynásobit pulzní proud jednoho segmentu 8.

I kategorie imp. = segmentuji imp. * 8

Pro náš okruh I kategorie imp. = 3 * 8 = 24 mA.

  • Odpor odporu volíme 1,1 kOhm;
  • piny mikrokontroléru segmentového řízení musí poskytovat proud minimálně 3 mA;
  • piny mikrokontroléru pro volbu indikační číslice musí poskytovat proud minimálně 24 mA.

S takovými hodnotami proudu lze indikátor připojit přímo na piny desky Arduino, bez použití dalších klíčů. Pro jasné indikátory jsou takové proudy zcela dostatečné.

Schémata s dalšími klíči.

Pokud indikátory vyžadují větší proud, pak je nutné použít další tlačítka, zejména pro signály volby číslic. Celkový vybíjecí proud je 8násobek proudu jednoho segmentu.

Schéma zapojení pro LED indikátor se společnou anodou v multiplexním režimu s tranzistorovými spínači pro volbu výbojů.

Pro výběr bitu v tomto obvodu je nutné generovat nízkoúrovňový signál. Odpovídající klíč se otevře a napájí vybití indikátoru.

Schéma zapojení pro LED indikátor se společnou katodou v multiplexním režimu s tranzistorovými spínači pro volbu výbojů.

Pro výběr bitu v tomto obvodu je nutné generovat signál vysoké úrovně. Odpovídající klíč otevře a zavře společnou výbojovou svorku k zemi.

Mohou existovat obvody, ve kterých je nutné použít tranzistorové spínače jak pro segmenty, tak pro společné bitové piny. Taková schémata lze snadno syntetizovat z předchozích dvou. Všechny zobrazené obvody se používají, když je indikátor napájen napětím rovným napájení mikrokontroléru.

Klávesy pro indikátory se zvýšeným napájecím napětím.

Existují velké indikátory, ve kterých se každý segment skládá z několika LED zapojených do série. Pro napájení takových indikátorů je potřeba zdroj s napětím větším než 5 V. Spínače musí zajišťovat spínání zvýšeného napětí řízeného signály úrovně mikrokontroléru (obvykle 5 V).

Obvod klíčů, které spojují signály indikátoru se zemí, zůstává nezměněn. A výkonové spínače by měly být postaveny podle jiného schématu, například takto.

V tomto obvodu je aktivní bit zvolen vysokou úrovní řídicího signálu.

Mezi číslicemi indikátoru přepínání by měly být všechny segmenty na krátkou dobu vypnuty (1-5 μs). Tato doba je nezbytná k dokončení přechodných procesů přepínání klíčů.

Konstrukčně lze výbojové kolíky sloučit do jednoho pouzdra vícemístného indikátoru, nebo lze vícemístný indikátor sestavit ze samostatných jednomístných indikátorů. Navíc můžete indikátor sestavit z jednotlivých LED sdružených do segmentů. To se obvykle provádí, když je nutné sestavit velmi velký indikátor. Pro takové možnosti budou platit všechna výše uvedená schémata.

V další lekci připojíme sedmisegmentový LED indikátor k desce Arduino a napíšeme knihovnu pro jeho ovládání.

Kategorie: . Můžete si to uložit do záložek.

Neumožňuje přímo zapnout/vypnout LED indikátor nebo blesk fotoaparátu, některé telefony tuto možnost mají.

Jak programově blikat vícebarevnými světly, jak napsat vlastní „baterku“ nebo jaké další LED diody zařízení lze ovládat - o tom se dozvíte níže.

Všechno to začalo, když jsem při prozkoumávání souborového systému mého HTC Desire pomocí ES Exploreru náhodou narazil na zajímavé adresáře: /sys/class/leds/blue, /sys/class/leds/flashlight atd.
Co je ještě modré?! Viděl jsem pouze oranžový a zelený indikátor. Ale nejzajímavější je, že uvnitř těchto adresářů byl soubor jasu s oprávněním k zápisu! Což jsem hned využil.

Ve skutečnosti se nejedná o jednoduchý soubor, ale o rozhraní pro práci s ovladačem LED. Takže zápisem kladného čísla do souboru /sys/class/leds/blue/brightness rozsvítíme modrý indikátor na pouzdře telefonu, zápisem 0 - zhasneme. Podobně s jantarovým a zeleným indikátorem. Současným rozsvícením dvou LED získáme nové barvy: jantarová + modrá = fialová; zelená + modrá = akva.

Jak je to teď všechno naprogramované?
public void ledControl(název řetězce, int jas) (

Snaž se (

FileWriter fw = new FileWriter("/sys/class/leds/" + jméno + "/jas" );

fw.write(Integer.toString(jas));

fw.close();

) chytit (výjimka e) (

// LED ovládání není k dispozici

}

}


// Zapněte fialový indikátor

ledControl("jantar" , 255 );

ledControl("modrá" , ​​255);


// Ztmaví displej

ledControl("lcd-backlight" , 30 );


// Vypnutí podsvícení tlačítka

ledControl("podsvícení tlačítka" , 0 );


// Uspořádejte svítilnu středního jasu

ledControl("baterka" , 128 );

Lze si stáhnout ukázkovou aplikaci se zdrojovými kódy.

Závěr
Všechno! Nyní telefon svítí jako vánoční stromeček. Kód byl testován pouze na HTC Desire se systémem Android 2.2, ale pravděpodobně bude fungovat na jiných zařízeních. Napište mi, zda bude ostření na vašem telefonu fungovat nebo ne.

Zobrazte symboly na výsledkových tabulích, elektronických hodinách a mnohem více. LED indikátor je jednoduchý design, který zobrazuje abecední nebo symbolické znaky. Konstrukčně se jedná o sestavu LED, kde každý prvek je osvětlen indikátorem segmentového znaku.

Vlastnosti a typy designu

LED indikátory se skládají z integrovaných obvodů, které zobrazují různé informace. Provozní napětí se pohybuje od 2V do 8V. Oni mohou být:

Segmentové;
- Matice;
- Lineární měřítko;
- Svobodný

První odrůda se používá nejčastěji a je standardním typem. V závislosti na modelu lze konstrukci sestavit z 1-4 sedmisegmentových skupin. Na jejich počtu závisí velikost objektu a počet zobrazených znaků. Jedna sedmisegmentová skupina tedy zobrazí pouze jedno číslo nebo písmeno. V elektronických hodinkách se používají čtyři skupiny. Při výběru obvodu pro domácí použití by měl kupující věnovat pozornost přítomnosti společné anody a katody.
Kromě malých ukazatelů existují i ​​takové, které jsou k vidění na veřejných místech. Pro zvýšení jejich jasu se používají sekvenčně zapojené LED, zabudované v každé jednotlivé součástce. Aby indikátor ukázal určité číslo nebo symbol, je přivedeno napětí 11,2 V. Prvky mají svá jména: A, B, C, D, F nebo G. Činnost určují digitální posuvné registry a dekodéry.

Šifrování dat a integrované obvody

Takové prvky jsou instalovány na desce, která řídí napájení. Práce je způsobena přístupem k programovému kódu a použitím speciálních mikrokontrolérů. Pomocí programování se nastavuje časování, které ovlivňuje zobrazení součástek v určitém čase.
Integrovaný obvod převádí binární a binární dekadický kód dodávaný na displej. Běžné obvody pro ovládání domácích indikátorů jsou K514ID2 nebo K176ID2, v importovaných modelech 74HC595. Správa je možná dvěma způsoby:

Přímo prostřednictvím mikrokontrolérů;
- Použití posuvných registrů

První možnost je méně úspěšná kvůli nutnosti zapojit mnoho pinů. Kromě toho může být spotřeba proudu vyšší, než je možné u mikrokontrolérů. Velké sedmisegmentové indikátory závisí na čipu MBI5026.

Vlastnosti segmentových ukazatelů

V elektronice se používají pro vizuální kontrolu. Konstrukce se skládá z následujících prvků:

Indikátor syntetizující znaky je zařízení, ve kterém se zobrazují vizuální informace pomocí jedné nebo více komponent;
- Pole zobrazení dat – v něm se zobrazují čísla nebo jiné symboly;
- Zobrazovací prvek – konstrukční část, která má vlastní ovládání;
- Segment – ​​prvek zobrazení informací, prezentovaný ve formě rovných nebo zakřivených čar;
- Známý prostor – prostor potřebný k zobrazení jednoho znaku

Všechna elektronická zařízení plní základní úkoly:

1. Vizuální informace.
2. Mají kompletní design.
3. Vybaven elektronickým ovládáním

Úpravy segmentů se liší od maticových úprav tím, že každý prvek je jedinečný. Tvar znaků je navržen speciálně pro zobrazení určitých čísel nebo symbolů. Ty druhé nevycházejí ze sedmi, ale z devíti, čtrnácti nebo šestnácti segmentů. Když číslo překročí 7, pak je docela racionální použít dynamickou indikaci spínání. LED displej a indikace je možná i ve dvoubarevném provedení. Používají se žárovky různých barev a zapojují se do společného obvodu. Spojením poznatků se získá kombinovaný odstín.

Závěr

Činnost indikátorů není možná bez LED. Taková zařízení jsou relevantní nejen pro rádiová zařízení, ale úspěšně se používají pro značky, časovače a indikátory. K zobrazení informací lze použít zařízení různých typů obvodů a řízení.
Sdílejte informace o tomto tématu na svých stránkách sociálních sítí.

Obr.1 Umístění segmentů LED indikátoru

LED indikátory jsou nejjednodušším prostředkem pro zobrazení symbolických informací. Jejich design je sada LED vyrobených ve formě segmentů určitého tvaru. Obrázek 1 ukazuje nejběžnější rozložení segmentů, které umožňuje zobrazit čísla 0...9 a mnoho dalších doplňkových znaků. Uvnitř pouzdra mají všechny LED společný bod připojení. Dohromady mohou být integrovány anody (společná anoda) nebo katody (společná katoda). Nejběžnější barvy září jsou červená a zelená. Při stejné spotřebě proudu mají červené LED zpravidla větší světelný výkon. Spotřeba energie závisí na napájecím napětí a technologii výroby. Segmentový proud moderních indikátorů může být menší než 1 mA.


Obr.2 Připojení indikátoru pro dynamickou indikaci

Pro zvýraznění požadovaného symbolu na indikátoru budete muset použít 8 pinů na mikrokontroléru. Jeden řádek lze ušetřit odstraněním segmentu H, když není nutné zobrazovat tečku (čárku). S větším počtem použitých indikátorů výrazně vzroste počet I/O linek. Dva indikátory budou vyžadovat 16 řádků, 3 indikátory 24 atd. Je zřejmé, že pro většinu aplikací je takové nehospodárné používání kolíků zcela nepřijatelné. Tento problém lze vyřešit použitím dynamického zobrazení. K tomu se segmenty místo přímého připojení k mikrokontroléru spojí do společných skupin, jak je znázorněno na obr. 2. Obvod používá indikátor TOT-3361AH-LN pro 3 známá místa se společnými katodami. Port D slouží k ovládání LED segmentů A...H. Katody K0...K2 jsou přímo připojeny k linkám 0...2 portu B (pro indikátory jiných typů s celkovým proudem ≥20 mA budou potřeba další vyrovnávací prvky). Na začátku je na indikátoru zobrazen symbol odpovídající nulové známosti. V tomto případě je na lince PB0 nastavena nízká úroveň napětí a na PB1 a PB2 vysoká (jinak se symbol zobrazí na všech třech pozicích). Po určité době je na výstupu další symbol v pořadí a nyní je katoda K1 připojena k zemi (na lince PB1 je nízká úroveň, na PB0 a PB2 vysoká úroveň). Dále se informace zobrazí v nejvyšší pozici indikátoru (u PB2 log.0, u PB0, PB1 log.1), poté opět na nule atd. Při obnovovacích frekvencích znaků ≥ 50 Hz se začíná objevovat setrvačnost lidského vidění. Blikání (efekt přepínání) zmizí. Obraz je vnímán nepřetržitě, jako by všechny symboly byly neustále osvětleny. Níže je uveden příklad podprogramu dynamického zobrazení. Vyžaduje dva parametry: kód znaku a číslo pozice, na které se má tento znak zobrazit.

; Protože indikátor obsahuje 3 známá místa, podprogram; znakový výstup musí být volán s frekvencí ≥ 150 Hz (3 ; známost x 50 Hz = 150 Hz). Doba přechodu by měla; být 1/150 Hz = 6667 μs, což je při frekvenci 1 MHz pro AVR; bude 6667 cyklů hodinového kmitočtu generátoru. Trvalý; Nejpohodlnější je měřit časové intervaly běžícím časovačem; v režimu koincidenčního resetu (režim CTC). ATmega8 má toto; režim existuje pro 16bitový časovač-čítač 1 a 8-; bit timer-counter 2. Pro tyto účely (v případě použití timer-counter 1) existují dva registry; RVV mezery: OCR1AH ​​​​(vysoký bajt), OCR1AL (nízký bajt). ; Když je srovnávací obvod povolen, počítací registr; TCNT1H:TCNT1L se spustí po každém příchozím impulsu; jednotka zvětšuje svůj obsah, dokud není; hodnota se nerovná zapsané hodnotě; OCR1AH:OCR1AL. V tuto chvíli je obsah TCNT1H:TCNT1L ; je resetován a v TIMSK RV je nastaven příznak OCF1A. Li; přednastavit bit OCIE1A v TIMSK a bit I v SREG, ; pak shodou okolností dojde k přechodu na obsluhu přerušení; z porovnávacího modulu A. Existuje také časovač-počítač 1; také druhý podobný modul pro porovnávání B s registry; porovnání OCR1BH:OCR1BL, jejichž fungování je podobné; popsáno výše. .def data = R16 ;registrace s kódem symbolu.def pos = R17 ;registrace s číslem aktuální pozice indikátoru.def temp = R18 ;registrace pro přechodné operace.dseg .org SRAM_START ;buňky v SRAM pro vyrovnávací paměť displeje: . byte 3 ;on indikátor.cseg .org 0 rjmp initial ;start program.org 0x0006 ;obslužný program přerušení pro rjmp service_T1COMPA ;shoda z modulu porovnání A ; Perioda přerušení v režimu CTC: T=(OCR1AH:OCR1AL+1) ; /(Fclk/N), kde N je koeficient dělení předděličky; frekvence na vstupu časovače-čítače 1. Je nastaven provozní režim; bity WGM13:WGM10 (WGM10 a WGM11 v řídicím RV TCCR1A, ; WGM12 a WGM13 v TCCR1B) a hodnota N je určena bity; CS12:CS10 v registru TCCR1A. Pro periodu T = 6667 μs; (WGM13:WGM10 = 0100 – řez CTC), N =1(CS12:CS10 = 001 – ; předdělička vypnuta) a Fclk=1 MHz – obsah OCR1AH:OCR1AL ; = 6667. .org 0x0020 počáteční: ldi temp,high(RAMEND) ;Inicializace zásobníku out SPH,temp ldi temp,low(RAMEND) out SPL,temp . clr pos clr temp ldi temp,1 ;vyplňte vyrovnávací paměť displeje čísly 1...3 sts buffer,temp ldi temp,2 sts buffer+1,temp ldi temp,3 sts buffer+2,temp out TCCR1A,temp ldi temp ,(1<< WGM12)|(1<< CS10) out TCCR1B,temp ldi temp,high(6667) out OCR1AH,temp ldi temp,low(6667) out OCR1AL,temp ldi temp,1<< OCIE1A out TIMSK,temp sei . service_T1COMPA: ;обработчик прерывания по совпадению OCR1A in temp,SREG ;при входе сохраняем в стеке push temp ;регистры temp, SREG clr temp ldi YH,high(buffer) ;заносим в указатель Y адрес ldi YL,low(buffer) ;буфера индикации buffer add YL,pos ;добавляем к Y смещение, что соответствует adc YH,temp ;ячейке с текущей позицией pos индикатора ld data,Y ;заносим в data кодом символа текущей позиции rcall din_ind ;вызов подпрограммы индикации inc pos ;циклически изменяем номер позиции cpi pos,3 ;индикатора 0->1->2->0 atd. brne PC+2 clr pos pop temp ;při výstupu obnovit ze zásobníku SREG,temp ;registruje temp, SREG reti ; Dynamický podprogram zobrazení; ZH:ZL – index pro tabulkový převod; R18 – registr pro mezioperační operace; R16 – číslo znaku v převodní tabulce ind_tabl; při zadávání podprogramu; R17 – číslo pozice při vstupu do podprogramu (0…2); příznak T na vstupu do podprogramu určuje; přítomnost (T=1) nebo nepřítomnost (T=0) čárky din_ind: clr R18 ;vymazat pomocný registr na vstupu ldi ZH,high(2*ind_tabl) ;zadat počáteční adresu ldi ZL,low(2*ind_tabl ) do indexu Z; převodní tabulky znaků přidají ZL,R16 ;přidají k ukazateli Z posun, adc ZH,R18 ;odpovídající poloze symbolu v tabulce lpm R16,Z ;vytáhněte symbol bld R16,7 z tabulku do R16;zadejte hodnotu do nejvýznamnějšího bitu R16 (segment H) clt ;čárka, která se přenáší přes příznak T ldi R18,0b11111110 sbrc R17,0 ;pokud je aktuální číslice 1, vložíme R18 maska ​​ldi R18,0b11111101 ;port B pro zapnutí katody K1 sbrc R17,1 ;pokud je aktuální číslice 2, pak vložte do R18 masku ldi R18,0b11111011 ;port B pro zapnutí katody K2 stiskněte R17 ; uložit na zásobník registr s číslem pozice v R17,PORTB;načíst do vyrovnávací paměti R17 aktuální stav portu ori R17,0b00000111 a R18,R17 z PORTB,R17, zhasnout všechny segmenty aplikací log.1 až K0. ..K2 out PORTD,R16 ; výstup dalšího symbolu out PORTB, R18 do portu D ; připojení další katody pop R17 k zemi ; obnovení registru s číslem pozice ze zásobníku ret ind_tabl: ; tabulka některých symbolů se společným katoda; HGFEDCBA HGFEDCBA počet znaků v tabulce.db 0b00111111, 0b00000110 ; 0,1 0, 1 .db 0b01011011, 0b01001111 ; 2,3 2, 3 .db 0b01100110, 0b01101101 ; 4,5 4, 5 .db 0b01111101, 0b00000111 ; 6,7 6, 7 .db 0b01111111, 0b01101111; 8,9 8, 9 .db 0b01110111, 0b01111100; A,b 10, 11 .db 0b01011110, 0b01011110; C,d 12, 13 .db 0b01111001, 0b01110001; E,F 14, 15 .db 0b01000000, 0b00000000 ; -, mezera 16, 17

Linky I/O portů AVR mají symetrické charakteristiky zatížení. Umožňují stejné vstupní a výstupní proudy až do 20 mA. Proto lze se stejným úspěchem použít indikátory se společnou anodou i společnou katodou. Piny pro připojení segmentů navíc velmi často plní doplňkové funkce pollingových tlačítek. Na obr. 2 je například tlačítko SBN připojeno k vedení segmentu A přes odpor omezující proud RN. Periodicky je PD0 nakonfigurován jako vstup pro čtení stavu tlačítka. V tomto případě vnitřní pull-up rezistor funguje jako zátěžový odpor.


Obr.3 Snížení počtu pinů mikrokontroléru
a - pomocí posuvného registru
b - pomocí indikátorů s různými vzory připojení LED

Počet pinů lze výrazně snížit, pokud jsou spolu s mikrokontrolérem použity pomocné mikroobvody. Obrázek 3a například ukazuje, jak se k tomuto účelu používá posuvný registr 74HC164 nebo podobný. Toto připojení uvolní 6 I/O linek. V některých případech může být opodstatněné použití sedmisegmentových kódových dekodérů a čítačů různých typů. Kromě toho existuje další příležitost pro úsporu založená na použití portových linek z-state. Zapojení na obr. 3b je obdobné jako na obr. 2, s jedinou výjimkou, že třímístný indikátor se společnou anodou HG2 je navíc paralelně zapojen s indikátorem se společnou katodou HG1. Linky PB0...PB2 současně provádějí spínání anod A0...A2 indikátoru HG2 a katod K0...K2 HG1. Když je informace zobrazena na nulové pozici HG2 (anoda A0), je na lince P0 generováno vysoké napětí. Na liniích portu D se nastavuje log.0 v těch segmentech, které musí být osvětleny a z-stav v segmentech, které musí být zhasnuté. Když je aktivní nejnižší znaménko HG1 (katoda K0), musí být na lince PB0 přítomna nízká úroveň napětí a na port D je vyvedena logická hodnota, při které úroveň logické 1 na linkách odpovídá osvětleným segmentům a stavu z k vyhaslé. Jsou-li znaky na výstupu na pozice indikátoru jiné než A0 a K0, musí být PB0 přepnuto do stavu vysoké impedance. Výstupní program s takovým schématem přepínání bude přirozeně znatelně komplikovanější než ten, který je znázorněn na obr. Tabulka symbolů se ukáže být mnohem větší, protože za prvé, pro každou z nich je nutné kromě hodnoty PORTD uložit také obsah registru DDRD, přes který musí být odpovídající řádky převedeno do stavu z (nastaveno pro vstup). A za druhé, symboly HG1 budou odpovídat jiným, inverzním hodnotám PORTD ve vztahu k indikátoru se společnou katodou HG2.

Onehdy jsem byl v obchodě s elektronikou. Občas se v něm objeví různé použité rádiové komponenty za nízkou cenu. Tentokrát jsem viděl mikroobvod, protože to stálo cent, koupil jsem ho bez váhání. Rozhodl jsem se udělat jednoduchý mono indikátor signálu. Proč mono a ne stereo? Protože čip je jen jeden. Druhý kanál dokončím později...

Po vytištění obvodu pomocí laserové tiskárny na lesklý papír začneme přenášet toner (inkoust) na desku. Uděláme to následovně: papír položíme na desku, která je dobře obroušená a přejíždíme po desce nahřátou žehličkou 10 minut. Počkáme, až deska vychladne a pod horkou vodou opatrně sejmeme papír. Mělo by to vypadat takto:

Poté desku naleptáme v chloridu železitém. Asi po hodině byla moje deska úplně vyleptaná. Pomocí rozpouštědla se zbavíme barvy a pomocí brusného papíru dodáme desce pravoúhlejší vzhled.

Provádíme platbu. Poté začneme pájet díly. Nejprve jsem připájel čip. Po LED a pak zbytek dílů. Foto kompletně hotové desky:


Obvodový provoz

Stručně vám řeknu o účelech dílů. Pomocí R2 upravíme úroveň vstupního signálu. Přes kondenzátor C1 jde signál do báze tranzistoru VT1, který slouží jako zesilovač. Rezistor R3 nastavuje předpětí na bázi tranzistoru. Poté zesílený signál „přichází“ přes kondenzátor C2 na diody VD1 a VD2.

Negativní signál jde do mínusu, kladný signál do 5. větve mikroobvodu. C3 a R4 slouží jako filtr. Čím vyšší je napětí na noze 5, tím více LED svítí. Mimochodem, pokud zkrátíte pin 9 na kladný pól, LED se rozsvítí lineárně. Ve videu můžete vidět, jak tato věc funguje.

Video z provozu LED indikátoru