Teploměr s DS18b20 a LED display
Moderátor: Moderátoři
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).