Teploměr s DS18b20 a LED display

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
buchar
Příspěvky: 173
Registrován: 28 říj 2007, 00:00
Bydliště: Násedlovice

#61 Příspěvek od buchar »

Dobrá Valdano, příště použiju radši I2C displej a nebudu se tak trápit a okrádat tak ostatní zbytečně o čas. Ještě jednou díky a mějte hezký zbytek neděle.
Uživatelský avatar
mluno
Příspěvky: 266
Registrován: 18 dub 2011, 00:00
Bydliště: Benešov (u Prahy)

#62 Příspěvek od mluno »

millis() je jen čtení registru časovače, to určitě problém neni
Já bych čekal spíš problém u čtení teploměru, které právě může tu půlsekundu trvat.

Poslední dobou používám displeje na i2c nebo spi, prostě takové, do kterých jen zapíšu, co mají zobrazit třeba hodně levný je https://www.gme.cz/v/1495065/sct2024cst ... -led-budic pozor jen na atypické pouzdro (rozteč 1 mm) což neni při výrobě vlastního tišťáku problém (prostě to dáte z knihovny), problém je, že pro něj běžně není vhodná redukce do kontaktního pole takže pro pokusy jsem objednal s lepším pouzdrem (rozteč 1,27 mm) v tme (gme ho má v katalogu https://www.gme.cz/v/1495043/sct2024css ... -led-budic ale nemá skladem). To je 16 bitový posuvný registr, na který jdou stejné knihovny jako na 4094 a navíc má řízení jasu a výstup snad až do 9V (na velké displeje je to potřeba). Jeden zvládne ovládat dvě místa, takže na 4 místný displej stačí dva. Ale displejových modulů je na trhu výběr.

Předtím, jsem přišel na to, že displej refresh neni dobré dávat do loop() ale jako obsluhu přerušení časovače (pak displej svítí konstatním jasem a ne podle toho, jak zrovna program běží nebo na co čeká, máloco má vyšší prioritu, než právě obsluha přerušení časovače). To teda byly mé pokusy dávno před arduinem. No ale s arduinem dohromady musíte zjistit, který časovač je volný (jeden právě využívá to měření času millis a delay) a který vám arduino nesabotuje (já to kdysi v zoufalství vyřešil tak, že jsem do funkce loop uzavřel nekonečnou smyčku, takže program funkci loop neopustí (zase je potřeba zvážit, jestli nebude chybět to, co dělá ten program mezi voláním loop), jinak i na mega2560, které má 6 časovačů byly furt nějaké problémy, ať jsem to dal na kterýkoliv, vůbec jsem nechápal, proč mi časovač neběží nebo běží jinak, řídicí registry jsou jinak, než jsem je nastavil, prostě jsem to vyřešil neopuštěním funkce loop a od té doby je pokoj).
Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“