Raspberry Pi


49) Připojení čtyřnásobné sedmisegmentové zobrazovací jednotky

Po delší době je tu další připojený displej k raspíčku. Tentokrát se jedná o čtyřmístný displej, který je tvořený sedmisegmentovkami.
Využití může být například pro zobrazování času, nebo teploty.
K výhodám patří hlavně větší jas, lepší čitelnost a trochu nižší cena.
Pro tento příklad jsem použil displej s označením CL5642BH. Skládá se ze 4 jednotek, které mají vzájemně pospojované segmenty a z každé jednotky je vyvedena společná elektroda. 

Schéma vnitřního zapojení displeje:


Poslední dvoupísmenný kód určuje zapojení vývodu č.3, který ovládá tečky.
Některé displeje dokáží ovládat desetinnou tečku u každé jednotky, jiné umí ovládat jen dvojtečku.
Existují i speciální typy displejů, které umí ovládat například každou tečku z dvojtečky
 zvlášť a k tomu ještě další 2 desetinné tečky.



Nevýhoda takovýchto displejů je náročnější způsob ovládání, který více zatěžuje RasPi. K řízení je také třeba o něco více ovládacích vodičů a pro každou sedmisegmentovou zobrazovací jednotku i jeden spínací tranzistor. Také spotřeba bývá větší, než u LCD displejů.

 


1) Popis multiplexování

Ovládání displeje probíhá tak, že se velice rychle přepínají společné elektrody jednotlivých zobrazovacích jednotek.
Před každým sepnutím se přednastaví jednotlivé segmenty pro zobrazení požadovaného znaku, a pak se na chvíli příslušná zobrazovací jednotka rozsvítí. Takže pokud je třeba zobrazit na displeji číslo "1234", probíhá to takto:

- Všechny jednotky se zhasnou. Pokud má displej společné anody, tak to znamená, že se všechny tyto anody přes spínací tranzistory odpojí.

- Všechny segmenty se nastaví tak, aby vytvořily tvar znaku zobrazeného na první jednotce 
       (v příkladu tedy na segmentech B a C bude "0", ostatní segmenty budou v "1")

- V tomto stavu se na chvíli přivede na společnou anodu první jednotky +5V. To má za následek, že se první jednotka rozsvítí.

- Po chvíli se tato první jednotka zhasne - tranzistor jí odpojí.

- Všechny segmenty se nastaví tak, aby vytvořily tvar znaku zobrazeného na druhé jednotce
       (v příkladu tedy na segmentech A, B, D, E, G bude "0", zbylé segmenty C a F budou v "1").

- Na společnou anodu druhé jednotky se přivede +5V, čímž se druhá jednotka rozsvítí ... 

... stejným způsobem se pokračuje i se zbylými zobrazovacími jednotkami.
Tento cyklus je třeba neustále opakovat - to je právě ta nevýhoda velkého zatížení RasPi.

 

Princip přepínání je dobře vidět na tomto zpomaleném videu:



2) Schéma

 

Pro ovládání jsem použil expander MCP23017, který pracuje s 5V napájením. Kvůli tomu je třeba doplnit převodník úrovní pro komunikační sběrnici I2C.

Displej podle katalogového listu odebírá 20mA na segment.
Expander je schopný dodat na každém výstupu proud až 25mA, takže není problém, ovládat segmenty přímo (bez spínacích tranzistorů).  

Trochu problém nastává s celkovým proudem přes pin Vdd. Podle katalogového listu expanderu smí ten proud být maximálně 125mA.
Jenže když bude na displeji svítit všech 7 segmentů a dvojtečka, je ten proud:

8 segmentů x 20mA = 160mA. A to už je moc.

Proto je třeba proud jednotlivými segmenty trochu omezit odporem.

Počítal jsem to takto:

Protože v každém okamžiku svítí vždy jen jedna zobrazovací jednotka, stačí výpočet provádět jen pro tuto jednu sedmisegmentovku. 

Maximální proud pinem Vdd / 8 segmentů = 125 / 8 = 15mA na segment. 

Při napájecím napětí 5V a úbytkem napětí na segmentu (Uf = asi 2V) je třeba do série s každým segmentem vřadit odpor:

Rseg =  (5V - 2V ) / 0.015A = 200R.

Pro jistotu jsem tam  ten odpor dal skoro dvojnásobný (390R), takže jsem ten celkový proud přes pin Vdd omezil na bezpečných 60mA (to je asi 8mA na segment). I při tomto proudu je displej krásně čitelný.

Spínací tranzistory si sice také vezmou do báze nějaký proud, ale vzhledem k tomu, že jsou to jen asi 3mA, tak je to zanedbatelné.

Mimochodem, ty spínací tranzistory jsou tam proto, protože přes ně teče těch 60mA, a to by samotný expander (port GPB) nezvládnul.

 


3) Ukázkový program

 Program je zde: dis4x7.py


4) Video


 


úvodní strana webu AstroMiK.org

poslední úprava stránky 1.3.2014