Nejefektivnější způsob řízení 12 7-segmentových číslic

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

Nejefektivnější způsob řízení 12 7-segmentových číslic

#1 Příspěvek od Darthy »

Jedná se o 4 kanálovou zátěž, na které chci měřit a zobrazovat napětí na výstupu, teplotu tranzistoru a proud zátěže. První jsem zkoušel rozběhnout I2C 4 řádkový LCD displej s 20 znaky (LCD 2004A s PCF8574T) ale nejsem si jistý jestli funguje, protože I2C protokol není schopný najít adresu zařízení a na SCL i SDA pinech je neustále 5V... Tak jsem se rozhodl, že použiji 4x 3 číslicový 7 segmentový displej. Měřené hodnoty budu pak přepínat třeba po 3 sekundách, nebo na tlačítko to už je jedno.

Teď jde o to jak displeje řídit za nejrozumnější cenu s co nejmenším počtem komponent. Displeje jsou se společnou katodou. Mám dvě možnosti; buď použiji na každý kanál samostatně ATTiny85/84 (nejsem si jistý jestli 85 má dost A/D převodníků pro mé účely), nebo pro všechny kanály společně použiji ATmega328. Pro displeje mě pak napadá použít na každou číslici posuvný registr, třeba 74HC595 a zapojit je do série následně je krmit 96 bity. Jsou celkem levné, ale musel bych jich použít 12. Nebo použít 3x nějaký I/O expandér se 16 výstupy, které bych multiplexoval na 4 číslice a použít I2C protokol (např. MCP23016/18 ), ty už jsou trošku dražší. Případně méně přijatelná varianta, kde bych využil menší počet 74HC595 a multiplexování - tam pak záleží jak bych rozložil číslice na úkor jasu, zkoušel jsem dekadický čítač 4017 i ULN2803 s mosfety na uzemňování katod, ale jas byl z nějakého důvodu celkem nízký už na 3 číslice...

Nenapadá mě jiná varianta jak efektivně displeje řídit, aby celková cena byla přijatelná (například MAX7219, který je celkem vhodný už je drahý) a zároveň tam nebyla hromada komponent = komplikace při výrobě DPS a zapojení - ještě je třeba počítat s obvodem pro napájení jednotlivých komponent, řízení tranzistoru a měřících prvků a to na každý kanál...

Uživatelský avatar
mihal
Příspěvky: 1812
Registrován: 06 dub 2005, 02:00
Bydliště: Zilina

#2 Příspěvek od mihal »

S tými registrami 595 som už pracoval viackrát a je to bez problémov, ak ich zreťazíš za sebou tak budú na riadenie stačiť tri dráty. Každá zmena segmentu bude znamenať prepis celej reťaze, tak ak to nevadí tak ok. LED bude ale viac žrať.

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#3 Příspěvek od Ruprecht »

Co dva takovéto?
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#4 Příspěvek od Celeron »

Já jsem používal řadiče MM5451 (gme 90 kaček) Umí to 35 segmentů, multiplexně odzkoušeno i 70 segmentů. Vstup sériově po třech drátech, výstupy pro segmenty jsou nastavitelný zdroje proudu, možno měnit intenzitu svitu. Dnes je ale řešení s MAX7219 s displejem od Rychnovskýho arduíňáka levnější a elegantnější řešení.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#5 Příspěvek od samec »

Na tri ADC vstupy daj 4-kanálové analógové multiplexory (2x CMOS 4052). Na budenie segmentov použi priamo 8 digitálmnych výstupov. Spoločné katódy jednotlivých segmentoviek prepínaj posuvným registrom. K tomu ti stačí jeden digitálny výstup, prípadne ešte reset, ak by sa ti to po nejakom veľmi dlhom čase rozišlo.

Alebo použi Nextion. ;)

Uživatelský avatar
bum
Příspěvky: 227
Registrován: 04 zář 2011, 02:00
Kontaktovat uživatele:

#6 Příspěvek od bum »

Přes I2C ovládám PCF 8574 tak i PCF8574A v pohodě jde o to jaký řadič máš jsou k dostání dva typy ale každý má jinak připojení řídících a datových vstupů k LCD pak je problém, jinak osobně používám sériový převodník s LCD displejem ať jednořádkovým, dvořádkovým tak i 4 řádkovým s PICAXE 08M2, PICAXE 14M2 tak i PICAXE 28X2 16 nebo 20 znaků na řádek, pro přípravek co popisuješ stačí PICAXE 14M2 a ten LCD čtyř řádkový plus další nutné součástky na měření napětí. Jinak pro inspiraci mám různá zapojení na webu kde používám PICAXE 08M2 s tím sériovým převodníkem na různá měření. S PICAXE 08M2 měřím napětí na třech vstupech zcela běžně a zobrazují na tom sériovém čtyř řádkovém LCD displeji.

Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

#7 Příspěvek od Darthy »

Ruprecht píše:Co dva takovéto?
Displeje už doma mám, kupovat další nebudu, objednal jsem pár měsíců zpět 4-číslicové na aliexpressu, ale nepřišly.
samec píše:Na tri ADC vstupy daj 4-kanálové analógové multiplexory (2x CMOS 4052). Na budenie segmentov použi priamo 8 digitálmnych výstupov. Spoločné katódy jednotlivých segmentoviek prepínaj posuvným registrom.
To je zajímavá kombinace, na to by mohla vystačit jedna ATmega328. Tohle určitě vyzkouším, mám na to doma téměř vše, až na ty multiplexory, jen budou potřeba asi dva zřetězené posuvné registry na 12 číslic (nebo dekadické čítače - těm na přepínání stačí jeden hodinový signál a nemusím je krmit žádnými daty, hm?).
bum píše:Přes I2C ovládám PCF 8574 tak i PCF8574A v pohodě jde o to jaký řadič máš jsou k dostání dva typy ale každý má jinak připojení řídících a datových vstupů k LCD pak je problém...
Tam bude nějaká chyba v tom PCFku nebo nevím... Pokud mám kód pro vyhledání adresy I2C slave zařízení. Pro dva OLED displeje mi to v pohodě najde adresy, ale pro tento LCD se to sekne na i2c_start() metodě... Je to displej koupený z ebay už s napájenou deskou s PCF. Jedině ji odpájet, vyzkoušet displej a hodit tam vlastní sériově paralelní převodník

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#8 Příspěvek od Cowley »

Displeji 2004 nic nebude, možná budou jen jinak rozmístěné propoje mezi displejem a porty 8574.
Propípej kam vedou jednotlivé řídící porty.

Taky můžeš zkusit přidat dva 4k7 pull up rezistory do SDA a SCL.

Uživatelský avatar
bum
Příspěvky: 227
Registrován: 04 zář 2011, 02:00
Kontaktovat uživatele:

#9 Příspěvek od bum »

Darthly jak píšeš že na SDA a SCL máš 5V tak jsou již rezistory z kladného napětí na SDA a SCL již osazený. Jaká to je přesně deska s tím LCD displejem a PCF 8574T TYP?. Čím ovládáš ten PCF program jsi si psal sám?. Píšeš že jiný LCD kupovat nebudeš psal jsem jenom jaký řadič používám ve svých přípravcích komunikace po dvou drátech data + GND.

Nyní jsem si stahnul PDF k PCF8574T vypadá to že na té desce LCD je osazený PCF8574A zkus změnit při inicializaci v programu adresu na 112, ta odpovídá PCF8574A, PCF 8574 má adresu 64 pokud jsou A0, A1, A2 spojeny s GND zde budeš mít problém proto ti to nefunguje. To označení PCF8574T to T je pro SMD TYP napiš zda to bylo ono.

Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

#10 Příspěvek od Darthy »

bum píše:Darthly jak píšeš že na SDA a SCL máš 5V tak jsou již rezistory z kladného napětí na SDA a SCL již osazený. Jaká to je přesně deska s tím LCD displejem a PCF 8574T TYP?. Čím ovládáš ten PCF program jsi si psal sám?. Píšeš že jiný LCD kupovat nebudeš psal jsem jenom jaký řadič používám ve svých přípravcích komunikace po dvou drátech data + GND.

Nyní jsem si stahnul PDF k PCF8574T vypadá to že na té desce LCD je osazený PCF8574A zkus změnit při inicializaci v programu adresu na 112, ta odpovídá PCF8574A, PCF 8574 má adresu 64 zde budeš mít problém proto ti to nefunguje. To označení PCF8574T to T je pro SMD TYP napiš zda to bylo ono.
Už jsem našel chybu, SCL a SDA piny jsou naopak než u OLED a já používal stejný konektor, spíš mě zaráží, že za ten počet pokusů, ve kterých jsem se to snažil dnes už připojovat a vždy jsem se na označení pinů díval, jsem si toho nevšiml... Adresa je, řekl bych, nestandartní 0x4E tedy 78, A0-A2 nejsou připojené k zemi, ale ani na 5V. Zítra odpoledne vyzkouším opět nějaké knihovny. Samotné LCD bez PCF se mi rozjet nepovedlo - ale to je jen má neznalost.

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#11 Příspěvek od Cowley »

Tak to bude takto...
Přílohy
Adresses-Interface.png

Uživatelský avatar
bum
Příspěvky: 227
Registrován: 04 zář 2011, 02:00
Kontaktovat uživatele:

#12 Příspěvek od bum »

Darthy" přehozený SDA a SLC se stane, to že A0 - A2 není připojeno ani na GND ani na +5V je od výrobce takto provedeno a je na uživateli aby si je propojil na GND nebo +5V podle potřeby protože se někdy na I2C současně provozuje více koncových zařízení a pokud by byla adresa pevně daná tak pak se to těžko přepojuje. Tak že máš možnost si zvolit jak je propojíš pokud je všechny (A0 - A2) připojíš na GND tak máš základní adresu u PCF 8574 64 a u PCF8574A 112. Pokud je nikam nepřipojíš bude ti to zlobit. K tomu ovládání LCD bez toho PCF8574 to je opravdu důležité dodržet správně inicializaci toho LCD, čím ho ovládáš bez toho PCF8574?. Osobně jej takto ovládám ve 4-bitovém připojení PICAXEM 28X2, pomocí I2C pak PICAXEM 08M2 s PCF 8574, pomocí tohoto PCF8574 někdy načítám 8- bitovou hodnotu. Po přepnutí výstupních linek na vstupní zvýšením základní adresy, v případě že to v přípravku potřebují.

Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

#13 Příspěvek od Darthy »

Ještě jsem to procházel tu desku s tím PCFkem a jsou tam od adresových pinů 1k rezistory na 5V, takže je to 111 pro A0 - A2. Displej a/nebo PCF řídím ATTiny84. Snažil jsem se postupovat dle datasheetu na HD44780, ale zatím bez úspěchu. Musím ho ještě pořádně projít, není mi jasné pulsování s E pinem, má nějak potvrzovat odesílané instrukce/příkazy... Všechno chce čas, na OLED displej jsem taky psal knihovnu pár dní než jsem to rozběhl jak jsem si představoval. Koukal jsem na tvoji stránku, někde to tam popisuješ tu inicializaci displeje. Ta deska s PCF nemá na 8bit komunikaci vyvedené cesty. Takže s tím jen 4bit.

Uživatelský avatar
bum
Příspěvky: 227
Registrován: 04 zář 2011, 02:00
Kontaktovat uživatele:

#14 Příspěvek od bum »

Najdu přímo PDF s popisem inicializace LCD displeje a pošlu pokud to půjde poslat do SZ, má to něco přes 600k, pokud by to nešlo tak pak na tvůj soukromý e-mail pokud jej zde máš. Ty adresy je to dobré že jsi to našel, jinak na webu mám více zapojení s tím PCF 8574 jak s displejem kde data pro odzkoušení zasílám z PC tak i s mikrokontrolérem PICAXE. Aby jsme nezacláněli zde tak pak v SZ.

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#15 Příspěvek od termit256 »

Na ty segmentovky pouzij 74HC595. Ten obvod nestoji ani korunu a ovladani je tak trivialni ze musi chodit vzdy.

Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“