Čaute, robím teplomer s Atmega 8, lcd a čidlom lm 35cz. Mám taký problém výsledok z AD prevodu veľmi kolíše. Najprv som myslel, že je to tím čidlom, ale po pripojení trimra namiesto čidla som zistil, že je problém niekde inde A ja neviem nato prísť kde. Skúsil som ich viac Atmega 8 a zdroj napätia mám stabilizovaný.
Ak má niekto nápad, budem vďačný za každú radu. teplomer.c (793 Bytes) Atmega.bmp (1.33 MB)
Nejspíš nestabilní reference. Stabilizovaný zdroj není ještě záruka stability vhodné pro referenci AD převodu. Zkus použít vnitřní referenci ATMEGy a ne napájecí napětí.
A o kolik bitů to kolísá? Jak to máš zapojený? Na nepájivým poli? Nemáš tam půlmetrový dráty?
Dej tam menší děličku na 64. Spouštěj si AD převod sám a vypni free running a to přerušení.
Taky aktualně řeším podobný problém. Měřím zhruba na 100V a lítá mi to o 0,6V. Mám tam ref. TL431. Původně to lítalo skoro o 1V, tak jsem odpájel na Arduinu Nano 100n kond na Aref, který asi rozkmitával tu referenci a zlepšilo se to.
Předdělička A-D je pro příkaz analogRead() 128, takže pomaleji už mi to nejde. Prve nastavím vstup MX, počkám a pak teprve čtu.
Poslední možnost co mi zbývá je uspávat mcu při převodu a posunout odporový dělič z externího modulu(15cm drátu) přímo na desku k Arduinu.
Ďakujem za dobrý tip Vyhodil som ten 100nF kondenzátor s AREF a nahradil som ho 100uF. Teraz kolíše na poslednom bite čo je zanedbateľné a možno by stačil aj menší kondenzátor.