Stránka 1 z 1
Řízení 3.5 digit LCD
Napsal: 21 led 2014, 22:49
od Robokop
Dobrý večer pánové a dámy,
sehnal jsem
podobný displej jako na odkazu, ale nemůžu nic moc najít, jak jej ovládat. Při pátrání jsem zjistil, že musí být napájen +/- napětím.
No nedalo mi to a hledal jsem dál a zjistil jsem, že to má jít ovládat i z MCU. Takže jsem si navrhl zapojení s posuvnými registry, ale pořád mi není jasné, jak jej řídit skrze MCU.
Nemá někdo nějaké podklady? Nebo nějakou radu, jak na to?
schema
Napsal: 22 led 2014, 09:04
od procesor
Potrebuješ datasheet tvojho LCD s popisom pinov (foto je málo).
Pin "COM" sa napája signálom so striedou 1:1.
Segmenty sa budia-rozsvietia signálom v protifázi s COM. Zhasnú, ak sú budené vo fázi s COM.
Na to treba nejaký prepínač...napríklad aj XOR.
Samozrejme to môžeš simulovať aj programom (cez ten SPI), ak to bude stíhať aspoň 100 kráť za sekundu a dodržíš približne striedu budenia COM a SEG. 1:1 (tú frekvenciu som si vycucal z palca, nejaká bude doporučená určite).
Bude to svietiť aj pri statickom budení, len sa skráti podstatne životnosť LCD.
Napsal: 22 led 2014, 10:17
od Robokop
Tak ten datasheet je zde:
odkaz.
Takže jestli jsem to dobře pochopil, tak lepší budu mít nějaký generátor pulzů se střídou 1:1 s kmitočtem třeba 32Hz.
Potom natáhnout data do posuvných registrů a jakmile bude signál v protifázi oproti minulému (XOR), tak přesunout na výstup?
Napsal: 22 led 2014, 10:39
od procesor
Ak je v registri miesto aj na COM potom sa to dá robiť aj bez generátora, iba v registroch.
bit COM striedať, modifikovať xor-om data ku bitu COM, vyslať.
To CLK v registri je vlastne COM.
Ak je CLK=1 svietia segmenty s data=0
Ak je CKL=0 svietia segmenty s data=1
s 29 bitmi urob databitx XOR CKLbit
a vyšli von.
Napsal: 22 led 2014, 11:16
od Robokop
Teď to asi vyzní docela blbě, ale asi zde budu muset vidět nějaký příklad. Nějak mi to pořád nejde do hlavy. Nějak si to nedokážu spojit dohromady.
proto ještě jednou:
Mám 4 posuvné registry. Ty naplním daty. Dejme tomu, že budu chtí zobrazit 1 na poslední pozici displeje.
Takže v přerušení budu asi data odesílat do registrů a zobrazovat na display. Přerušení jednou za 0,03s.
V hlavní smyčce budu přepínat CLK 0/1 a provádět funci XOR s daty a nakonec data slučovat a chystat k odesílání.
CLK = 1, 1111....111100. A šup s tím na display.
potom
CLK = 0, 0000....000011. A opět šup s tím na display.
A toto musím pořád dokola opakovat aby mi svítila 1 na poslední pozici. Snad jsem to pochopil dobře.

Napsal: 22 led 2014, 12:30
od procesor
áno, ak je CLK=0 svietia data =1
ak je CLK=1 na rozsvietenie treba data invertovať (čiže 0).
Invertovať CLK stačí v podprograme pred vyslaním do posuvného registra.
Inverovať data sa dá pri presune dát do posuvného registra.
do registru posielaš poradí
set 1Cbit, set1Dbit
každých 30ms
invertuj CLKbit
pošli po bitoch
0,0, CLKbit, (CLKbit XOR data28), )CLKbit XOR data27),(.........).(CLKbit XOR data1),( CLKbit XOR data0)
pošli RCK
alebo
uprava štyroch bytov
každých 30ms
ivertuj CLKbit
DATAreg0 XOR (0,0,0,1,1,1,1,1)
odošli byt DATAreg0
DATAreg1 XOR (1,1,1,1,1,1,1,1)
odošli byt DATAreg1
DATAreg2 XOR (1,1,1,1,1,1,1,1)
odošli byt DATAreg2
DATAreg3 XOR (1,1,1,1,1,1,1,1)
odošli byt DATAreg3
pošli RCK