Atmega8 a realizace analogu na nepajivem poli

Přeji příjemný den.
Může mi někdo poradit, zda lze měřit teplotu ze senzoru TMP36GT9Z na nepájivém poli, nebo na laboratorním plošném spoji CU-TA037?
Trošku si s tím hraji a povedlo se mi tento senzor zapojit a číst hodnotu analogu. Nicméně hodnota není stabilní a když např. zapojím ventilátorek nebo topeni (cívka) tak dojde k totální nepřesnosti měření. (hodnota lítá od 0-1023. Vím že se jedná pravděpodobně o rušení, ale nemám dostatek elektrických znalostí na to abych věděl, jestli to jde nějak potlačit (např. je nutné dát procesor do stíněné krabičky, nebo přidat na motůrek kondenzátory. Může někdo poradit, nebo alespoň konstatovat že za těchto podmínek to nelze provést?
S podravem děkuji

:arrow_right: administrator: přesunuto z "AVR"

Zdarec, možná by nebylo od věci schéma abysme viděli kudy tam může ten bordel lézt. Jsli je to napájením, nebo nestabilita ne nějakém výstupu který je mimo dovolené parametry apod.

Omlouvám se, jsem rád že se tím někdo bude zabývat, i když to není moc easy věc.
K popisu schématu. Nemohl jsem najít některé symboly, ještě si neumím vytvořit vlastní, takže u popisku figuruje, co za součástku jsem použil. Obecně jsou ty piny zapojené tak jak mají být, jen u CNY70 si nejsem jistý zda piny mám správně, nicméně tato součástka funguje tak jak má, nakreslil jsem ji pro případ potencíonálního škůdce. Dále mám zapojen LCD display 2x8 napájení zobrazovací části je 1 GND 2 5V 3 spojene s GND pres 1K odpor. podsvícení piny 15 a 16 na 5V a GND.

Pro Aref generuji pomocí PWM hodnotu 2,5V s frekvencí 8Mhz, protože pro teploty 20°C to vychází kolem 0,6V ke zpřesnění rozsahu, nevím, jestli v tomhle nemůže být zdroj chyby. Na kontaktech relé mám připojené 12V ventilátor, nebo 230V 10W topení.

Pokud bude potřeba zdroják, dodám večer, teď jsem tím nechtěl zaplevelit příspěvek, nicméně, když relé není sepnuté, měří teplotu ±1C, což jak jsem pochopil z datasheetu je v pořádku, ale třeba se pletu.

Nejdřív trochu ke schématu: nešetři značkou GND, klidně ji dávej ke každé součástce :wink: schéma je pak přehlednější. Stejně tak můžeš použít značku +5V na výstupu stabilizátoru a pak ji dál používat kde je třeba. MOžná bude varování v erc, ale to nebude vadit.
Předpokládám, že portD není celý připojen na napájení 3V3, nýbrž nějaký konektor nebo něco, co zatím nemáš vytvořené. Na to se hodí třeba součástka “pinhead”.

Nevím, jesli se ti nechtěly kondenzátory kreslit, nebo je tam skutečně nemáš. U problémů tohoto rázu je to zásadní věc.
Podívej se do pdfka 7805 na doporučenou filtraci a doplň jí tam. Co nejblíž k napájení procesoru vlož alespoň 1x100n kondík, to samé k napájení teplotního čidla. Ten senzor je dle datasheetu stabilní i s kapacitní zátěží, takže kondikem na jeho výstupu také nic nezkazíš.
Co bude docela problém je AREF. Byla by lepší analogová reference, ale pro začátek to nevadí. Ten PWM výstup musí být filtrován. Na jeho výstupu je totiž obdélníkový průběh s různou střídou dle nastavení pwm a to rozhodně není vhodná analogová reference :wink: RC článek 1KOhm + 1uF by snad pohl trochu pomoci, větší kondenzátor nebude na škodu.
K frekvenci PWM - ta nebude 8MHz, to bude nejspíš frekvence procesoru (zdroje hodin pro čítač generující pwm). Její skutečná frekvence bude Fcpu/TOP, kde TOP je maximální hodnota, do které čítač počítá. Dál je to taky závislé na režimu pwm. Tedy pro FastPWM na 8-bit čítači a Fcpu 8Mhz je frekvence pwm = 31.2kHz.

Jaké jsou parametry relé? Nepřetěžuješ výstup procesoru? Mega8 má povoleno 40mA/pin. Taky tam nevidím ochranu proti špičkám při vypínání relé (paralelní dioda k cívce tak, aby byla při sepnutém relé v závěrném směru).

Ok. Schema jsem kreslil na rychlo, takze je tam nekolik chyb.
Zdroj 7805 je pripojen dle datasheetu s kondenzatory na vstupu a vystupu s hodnotami ktere jsou v datasheetu uvedeny.
Zkusim nahradit Aref napr. napajenim z tuzkove baterie, kdyz je nova, mela by mit 1,5V.
Port D opravdu neni pripojen na 3V3 ale na 8-pinovy dvourady konektor zapojeny do LCD.
PWM pouzivam stridu 1:1 procesor mam nastaveny pomoci fuze na 8Mhz, overil jsem si to pomoci ledky samozrejme s jinym nastavenim delicky.
OCR1A mam nastavene na 1 a smysl PINB jako toogle.

Rele je jednoduche RELEM4-05H dle mych vypoctu by to melo stacit, nicmene to pojistim tranzistorem a dam vedet, analog prestava fungovat pri sepnuti, pri rozepnuti rele uz je to v pohode, nicmene opravdu dioda by tam mela byt k zamezeni zpetneho razu :slight_smile:
Dale na vystup teplomeru pridam jeste kondenzator dle doporuceni a dam vedet…
Nicmene z prispevku nevyplyva nic z toho, ze by se analog nedal realizovat na nepajivem poli, takze predpokladam, ze to jde…
Nepouzivam stinene kabely pro analog, mel bych ho pouzit nebo je chyba nekde v ruseni mikroprocesoru?
Mockrat dekuji.

Na nepájivym poli to samozřejmě lze. Tipoval bych právě to přetížení pinu když to při vypnutym relé běží. Ten běžící větrák ti tam určitě nenakmitá plnej rozsah převodníku.

U té pwm - ikdybys měl mód CTC, hodnotu clear registru 1 a pin jako toogle, tak na výstupu stejně nebude 8MHz :wink:
CTC do 1 -> 2 takty, toogle -> poloviční frekv. => Fvýst=Fcpu/2/2.

Nová baterka nebude mít 1.5V ale trochu víc :wink:

edit: Jesli jsem našel správný relé, tak má odpor cívky kolem 160Ohm -> I=30mA. To by mělo bejt vpořádku. Tak zatim zbývají ty blokace napětí kondikama.

Tak piityy, moc bych chtel podekovat za pomoc. Pomohly tyhle veci:

  1. Nastavit analog na AVCC s kondenzatorem na ARef nebo interni referenci obe funguje
  2. Dat kondenzator mezi vystup z teplomeru a gnd
  3. K ochrane Megy dat diodu paralelne k civce (co jsem si vygoogloval informace co se muze stat bez diody, jsem prekvapen ze ty moje uC jeste funguji)

Vysledek je ze se hodnota analogu pohybuje ±1, coz je velmi slusne…
Ted budu experimentovat trochu s tim, jestli se 7805 neda nejak donutit aby davala napr. 1V nebo nejakou rozumnou referenci, protoze pomoci CTC to opravdu nefunguje.

Jeste jednou dekuji

Použij spíš analogovou referenci, třeba TL431, kterou můžeš přímo živit přes odpor z napájení procesoru (nedávej k ní ale kondik, myslím, že by pak byla nestabilní). Kdyby sis chtěl přečíst něco o referencích, na HW serveru o tom měli seriál.

Tou pwm bys to Vref mohl generovat taky, ale nebylo by to tak přesný, protože je to odvozený od napájení, který může bejt klině o nějakou desetinu vedle. Jen by nebyl vhodný CTC, ale spíš FastPWM. A hlavně nějaký ten filtr je nezbytný aby z obdélníku udělal střední hodnotu.

Tvoje procesory bez diody u relé fungují, protože mají v sobě vlastní ochranné diody, ale je lepší si je nechávat “v záloze” :slight_smile:.