Řízení sedmisegmentových zobrazovačů u termostatu

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

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Brozicek
Příspěvky: 1645
Registrován: 07 lis 2005, 00:00
Bydliště: Studénka

Řízení sedmisegmentových zobrazovačů u termostatu

#1 Příspěvek od Brozicek »

Zdravím.
Nedávno v jiném vlákně
http://www.ebastlirna.cz/modules.php?na ... highlight=
jsem psal o ročníkové práci vnuka, kde jsme nakonec zvolili stavbu termostatu. Vnuk si už zhotovil tišťáky a pracuje na realizaci.

Já se mu snažím vysvětlit funkci všech vnějších obvodů kolem řídícího mikroprocesoru, tj. k čemu tam jsou, jakou mají funkci a jak ty obvody pracují.
Na dvou displejích se má zobrazovat teplota od -30°C do +125°C s rozlišením 0,1°C. Kromě toho se zobrazují i krátké texty jako Err a pod.

Nějak se mi nedaří pochopit, jak jsou ze dvou posuvných registrů ovládány segmenty zobrazovačů. Zobrazovače mají společnou anodu a segmenty se spínají nulou z posuvných registrů. Jednotlivé zobrazovače se postupně připojuji k napájení přes tranzistory v anodách.
Takže procesor musí nejdříve uložit sériově do posuvných registrů bitovou kombinaci pro dva zobrazovače nad sebou, která na výstupu v paralelní podobě pak rozsvítí příslušné segmenty, které se v daném sloupci připojí na napájení. Pak procesor pošle do posuvných registrů kódy pro další sloupec, a ten se opět připojí na napájení. Prostě klasický multiplex.

Až potud je vše zřejmé a není na tom nic neobvyklého. Schéma není úplně dobře čitelné, ale dopátral jsem se k těmto výsledkům.

Nemohu pochopit, proč kdybych chtěl zobrazit např. hodnotu 1 1 1 1, což odpovídá segmentům "b,c".
Tak pro první a třetí zobrazovač zprava na schématu jsou segmenty "b" spojeny a připojeny asi na výstup GB registru, a bezdůvodně jsou spojeny se segmenty "g" z druhého a čtvrtého zobrazovače
Segmenty "c" spojeny a připojeny na výstup DC registru a bezdůvodně jsou spojeny se segmenty "d" z druhého a čtvrtého zobrazovače.

Pro druhý a čtvrtý zobrazovač musí být tedy výstupní kód pro 1 1 1 1 jiný, než pro první a třetí zobrazovač.

Toto nelogické zapojení lze vysledovat pro všechny ostatní segmenty.

Vím, že jsem to krkolomně poslal, ale ve schématu se to dá snadno dohledat. Ta "polská logika" mi nedává smysl. Já bych asi propojil všechny shodné segmenty paralelně a připojil na shodný výstup registru.

Má popsané zapojení nějaký důvod, proč to programátor mikroprocesoru takto zvolil. Do programu samozřejmě nevidíme, ale třeba to znalci programování dokážou nějak vysvětlit.

Přikládám detailní výběr schéma propojení zobrazovačů s registry, kompletní schéma termostatu a vnitřní zapojení serioparalelního posuvnbého registru 74HC595.
Přílohy
Termostat.jpg
Termostat.jpg
Schéma 74HC595.jpg
Schéma 74HC595.jpg
Detail zapojení zobrazovačů 2.jpg
Detail zapojení zobrazovačů 2.jpg
Uživatelský avatar
EKKAR
Příspěvky: 35012
Registrován: 16 bře 2005, 00:00
Bydliště: Česká Třebová, JN89FW21

#2 Příspěvek od EKKAR »

Právě díky tomu, že data do registru "krmí" procesor, je možný takový zapojení. Pravděpodobně to má zjednodušit vedení cest na DPS a v programu procesoru je s tím vysloveně počítaný, že když zobrazuje "1" na různejch místech na displeji, pro každou segmentovku to znamená jinej "tvar" kódu. Ano, je proto složitější software, ale jednodušší DPS. V době levnejch procesorů a levnejch pamětí pro ně se to vyplatí víc, než větší a složitější deska, která by to v klasickým provedení prodražila.
Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...
A kutilmile - nelituju tě :mrgreen: :mrgreen: !!!
Uživatelský avatar
martinkopp
Příspěvky: 1303
Registrován: 12 říj 2023, 00:00

#3 Příspěvek od martinkopp »

Pokud si bez problémů dokážeš naroutovat desku tak abys měl všechny segmenty zapojené stejně, udělej to tak. Tipuju že tam bude nějaký problém typu že se ti to při stejném počtu vrstev a technologických možnostech výroby nepovede.
Uživatelský avatar
Mahoney
Příspěvky: 759
Registrován: 26 říj 2019, 00:00

#4 Příspěvek od Mahoney »

Není to polská logika, důvodem je jednodušš routování desky. Software není složitější, obsluhuje se přes konverzní tabulku ve flash (tak jak tak, takže je to jedno). Je třeba tu sadu posuvných registrů chápat jako jeden displej (podobně jako např posuvné registry v LCD, akorát v tomto případě bez druhé osy, "druhou osou" je tu v tomto případě multiplex anod). V MCU je v RAM vyhrazená paměť, jejíž obsah se cyklicky zapisuje do registrů, a mění se jen v případě potřeby, tj. např. v přerušení po vyčtení čidla a konverzi hodnoty. Co se týče čidla DS18B20, doporučuji vyčítání tak jednou za 30 s., při maximu (jednou za 1 s.) se čidlo po čase vlastním proudem ohřívá a měřená hodnota driftuje až 1,5 °C pryč.
Uživatelský avatar
Brozicek
Příspěvky: 1645
Registrován: 07 lis 2005, 00:00
Bydliště: Studénka

#5 Příspěvek od Brozicek »

Mahoney píše:........ důvodem je jednodušší routování desky ......
Dík za vaše názory a vysvětlení. Jak vidím, pro vnuka bude stačit vysvětlení, že procesor do posuvného registru sériově posílá binární kód již ve tvaru, který paralelně spíná požadované segmenty příslušného sloupce podle zobrazované číslice (písmenka).

Stáhl jsem si datasheet k tomu čidlu DS18B20. Je to pěkně složitá součástka vtěsnaná do pouzdra TO-92-3. Nestudoval jsem podrobněji jeho funkci. Tvoji poznámku o zvýšení teploty senzoru při čtení obsahu mám chápat tak, že při čtení se senzor probudí z nějakého klidového režimu a během té aktivity vnitřní elektronika zvýší spotřebu a tím nepatrně vnitřní teplotu? Předpokládám, že autor toho termostatu s tím počítal. Není důvod nějak extrémně zvyšovat frekvenci načítání pod 1 minutu. Měřená teplota se nemění tak rychle, a ten termostat není určen k laboratorně přesnému měření a použití.
Přílohy
Senzor DS18B20.jpg
Senzor DS18B20.jpg
Uživatelský avatar
BOBOBO
Příspěvky: 20872
Registrován: 25 úno 2008, 00:00
Bydliště: Rychnovsko

#6 Příspěvek od BOBOBO »

Podrobněji najdeš na webnode , dokonce to funguje na dvou drátech vše paralelně . Ano jsou volány dle adresy . co jsem psal výše je to popsáno a tam uvedený program si po příkazu připojená čidla načte a uloží .
Uživatelský avatar
Mahoney
Příspěvky: 759
Registrován: 26 říj 2019, 00:00

#7 Příspěvek od Mahoney »

Brozicek píše:Tvoji poznámku o zvýšení teploty senzoru při čtení obsahu mám chápat tak, že při čtení se senzor probudí z nějakého klidového režimu a během té aktivity vnitřní elektronika zvýší spotřebu a tím nepatrně vnitřní teplotu?
Ano, je to tak.
Uživatelský avatar
martinkopp
Příspěvky: 1303
Registrován: 12 říj 2023, 00:00

#8 Příspěvek od martinkopp »

Hlavně nepoužívej dvoudrátové zapojení, to má na ohřev podstatný vliv. Pokud čidlo budeš používat třídrátově a převod nastavíš na 12bitů, nad frekvenci měření cca 1x za 5sekund ohřev nepoznáš.
Odpovědět

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