Nejefektivnější způsob řízení 12 7-segmentových číslic
Moderátor: Moderátoři
Nejefektivnější způsob řízení 12 7-segmentových číslic
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...
Proč mi nemůže všechno chodit hned ?!!
Alebo použi Nextion.
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
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.
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.