11-12-2022, 12:43 AM (This post was last modified: 11-12-2022, 12:47 AM by ddanijel.)
(11-11-2022, 11:40 PM)savan Wrote: Pa vidi rezultat sa tvojom formulom, 819C i 419C
Rezultat je ispravan, sa naponom od 2048mV iz AD8xxx na ulasku u ADC (ads1115) i treba da dobijes 409c posle formule, a sa naponom 4096mV i treba da se dobije 819c.
Ti sa FSR podesavas max napon koji moze ADC da meri, a broj koraka ostaje isti i samim tim je normalno da za max vrednost dobijas u jednom slucaju 409c, a u drugom 819c, to je ispravno jer naponi koje meri su za duplo razliciti. Uporno pokusavas u formulu da ubacis i VCC, da delis sa FSR i svasta nesto. Zapetljao si se u glavi da nema dalje. Sad se zaista predajem, uz svu najbolju volju ne mogu dalje, izvini. Svakako mojih par postova unazad su ti resenje na tacni, samo da primenis i to je to, a ti kako hoces.
Pozdravljam te i ovog puta se zaista povlacim iz teme, iskreno mislim da sam ti dao dobar doprinos u pojasnjavanju oko ADC.
Linux is like a wigwam NO Windows NO Gates and an Apache inside
11-12-2022, 01:49 AM (This post was last modified: 11-12-2022, 03:04 AM by mikikg.)
@ddaniel
Ova serija MAX-ova stvarno rade vrlo fino, upravo na stolu za neke druge potrebe imam 3 RTD senzora spojenih preko 3 x MAX31865 i SPI sa linux C++ programom i evo na primer rezultati očitavanja na svakih 500ms, tri senzora jedan pored drugog samo je privremeno T2 isključen i u zadnjoj koloni se vidi greška očitavanja izmedju prvog i trećeg na sobnoj temperaturi.
Po meni je to odličan rezultat sa jednim IC. Za referencu se koristi precizan otpornik od 400Ohm.
Kod predhodno spominjanih MAX-ova za J/K termoparove je sve isto samo je druga tehnika senzora.
U DS za MAX31865 stoji da ima 15bit rezuluciju gde jedan count predstavlja 0.031250*C, evo gore ^ u semplovima od broja 256531 u desnoj diff13 koloni se vidi taj jedan count ili bit od merenja, sve složeno kao što stoji u DS do zadnje decimale, dakle to radi +/- nekoliko count-a stabilno, maaa sjajno, to ide za industriju
11-12-2022, 09:01 AM (This post was last modified: 11-12-2022, 09:54 AM by savan.)
Konacno sam shvatio poentu tvoje formule ali i samu poentu sta se tu desava. Cinjenica je da ad8495 na izlazu pravi 5V kada mu je ref=gnd a temperatura na sondi 1000C i vcc=5V, znaci ako je na sondi 500C onda je na izlazu 2.5V, i to sam u ova dva primera i prakticno potvrdio da je sasvim kako treba i da je tvoja formula ok, malo sam je modifikovao ali u sustini je ista, uzeo sam 2.5V da vidim dali cu da dobijem ocekivanih 500C sa dva razlicita FSR:
Edit:
Probano i prakticno, rezultat na podesenih 220C merim 270C, na podesenih 40C merim 50C, znaci da ocigledno VCC nije 5V ili REF nije 0V, tu bi trebalo napraviti kalibraciju mislim da bi onda bilo ok.
Edit:
Tvoja formula nista drugacija od moje prvobitne formule sa kojom sam mislio da merim tacno temperaturu a ispostavilo se da dobijam gresku za 70C od realne temperature:
temperature = (float)((((val * 2.048) / 32768.0) - 0) / 0.005)
Samo sto sam ja umesto -0 stavio +0.0xx misleci da sam kalibrisao naspram telesne temperature. Opet sam na pocetku i nista mi nije jasno niti imam ideju kako da se odradi kalibracija jer na 40C dobijam 50C a na 200C dobijam 270C nesto tu ipak nedostaje u formuli a ja ne mogu da skontam sta. I kada bi u formulu ubacio realna izmerena stanja VCC i REF ne znam da sastavim novu formulu, katastrofa
Kako ja ovo vidim, nije tu problem merenja temperature, već kalibracije ADC-a.
Prema tome, dovedi na ulaz ADC-a 1V i vidi da li tvoj proračun daje taj 1V. Kada dobiješ korektan rezultat, proveri konverziju na još jednom naponu, napr. 2V.
Posle toga problem se svodi na rešenje jedne linearne jednačine s jednom nepoznatom (konverzija napona u temperaturu).
Ne naglašavam ovo gore kako bih pokazao kako sam bio u pravu, već da ukažem na opšti proces rešavanja problema - korak po korak.
Latini su to zvali "divide et impera" - u ovom slučaju "rastavi na delove i savladaj".
11-12-2022, 10:06 AM (This post was last modified: 11-12-2022, 10:16 AM by savan.)
Ili mozda ja nemam tacno 5V pa zato ad8495 nema 5mV/K nego tu treba odraditi kalibraciju na tih 5mV/C ?
temperatura = ((advalue * LSB) - VREF) / 0.005
Formula do ovih 0.005 je ok jer to je sto je tu nema greske neke posebne sem koliko je tacna interna referenca ads1115, sem mozda VREF koji bi takodje trebao izmeriti pa korigovati, nego je ovde naj kriticnije 0vih 0.005 i tu mozda treba napraviti dodatnu formulu naspram izmerenih vcc jer nemoguce da je fiksno 0.005 ako napon nije bukvalno tacno 5V. Ako je vcc recimo 5.11V ne moze da bude onda 0.005 zar ne?
Ostavi se temperature i koncentriši se na ADC.
Otkači AD8495 i dovedi na ADS1115 neki poznat napon, napr. 1V.
Kada tvoja konverzija rezultira tim naponom, glavni problem je rešen.
11-12-2022, 10:23 AM (This post was last modified: 11-12-2022, 10:41 AM by savan.)
Ovaj podatak:
Code:
The AD8494/AD8495/AD8496/AD8497 allow a wide variety of
supply voltages. With a 5 V single supply, the 5 mV/°C output
allows the devices to cover nearly 1000 degrees of a thermocouple’s temperature range.
The AD8494/AD8495/AD8496/AD8497 work with 3 V supplies,
allowing them to interface directly to lower supply ADCs. They
can also work with supplies as large as 36 V in industrial systems
that require a wide common-mode input range.
Ako VCC nije tacno 5V nego je 5.11V, dali je onda 5mV/C ili je malo drugacije?
11-12-2022, 10:27 AM (This post was last modified: 11-12-2022, 10:31 AM by savan.)
Ali Braco ads1115 ima internu referencu nebi trebalo da je glavni problem ads1115 nego je problem ad8495 koji nema internu referencu nego zavisi od vcc a offset od reference pina, mogu dovesti napon sa az431 na jedan od ulaza u ads1115 to cu i uraditi nego mislim da problem nije ads1115
Koliko ja razumem DS, AD4895 koristi REF pin samo ako je potrebno celu funkciju translatorno pomeriti, napr. ako jre potrebno merenje temperatura ispod nule.
Prema tome, u normalnom slučaju (napajanje od 5V, jednopolno) merni opseg ide od 15°C (75mV) do 900°C (4,75V), a konverzija napona u temperaturu se vrši formulom na str. 11 DS-a. °C°C
11-12-2022, 11:20 AM (This post was last modified: 11-12-2022, 11:21 AM by savan.)
Tako je, gledam bas u tu formulu ali stoji da ima fiksni gain od 122.4 na K tipu thermokoupla, i formula je TMJ = (VOUT − VREF)/(5 mV/°C) ali ako je 5V, kakav je slucaj ako nije 5V nego je 5.11V ? Ili recimo VCC=3.3V ?
Jednostavno ne znam kako ovo da resim, pocela je glava da me boli tako da odustajem! Jednostavno napravicu promenjivu VREF koja ce da krene on nule pa se povecava linearno za neki procenat naspram advalue sve do 300C i to je to
temperature = (float)(((val * (2.048 / 32767)) + VREF) / 0.005);
VREF = (val x 0.26) / 32767
Razumevanja i objasnjenje zasto sa ovako promenjivim VREF dobijam u +-10C tacnosti u rangu 36C - 220C jednostavno nemam.
11-12-2022, 12:13 PM (This post was last modified: 11-12-2022, 12:15 PM by savan.)
REF je na GND ali ne mogu da dodjem do merenja na skalameriji jer ima mnogo zica stvarno ne mogu da to rasturam jer je to sklepano cisto ono da se moze raditi neki pcb, cim stigne novi pcb bice onda lako meriti i igrati se. Nego ne mogu uopste da skontam u cemu je problem.
11-12-2022, 12:37 PM (This post was last modified: 11-12-2022, 12:44 PM by savan.)
Znamo da je pcb lose uradjen po losoj shemi https://forum.yu3ma.net/thread-2772-post...#pid123599 gde je jedan kraj termopara zajednicki sa gnd i sa jednim krajem grejaca sto je u startu pogresno, ali ovo sto sad pokusavam da razumem sta se dezava i zbog cega je (post 191) VREF tako funkcionalan je u stvari jedan odlican example i prakticno i teorijski da se neke stvari razumu do kraja, kako ja tako i drugi koji ovo citaju, zar ne?
Teorijski i gledano po data sheet ispadne da je na tacnih 5V VCC-a bez odstupanja, formula za izracunavanje temperature ovakva:
Ako je VREF na masi onda nema dodatnog ofseta i jednačina T = f(Vout) je vrlo jednostavna.
Ne moraš ništa da rasturaš, zalemi samo jednu žicu na izlaz iz AD4895 i izmeri napon.
Ako je sobna temperatura 22°C, trebalo bi da na DC voltmetru dobiješ oko 110mV.
11-12-2022, 02:15 PM (This post was last modified: 11-12-2022, 02:18 PM by savan.)
Odlemio sam R4 i stavio 22 ohm, malo se poigrao sa konstantom 0.75 koju sam ugurao u formulu da linearno povecava VREF u plus, dobijam u +-2 C na 220C, jedino sto je razlika vec malo veca na 35C tu je vec 10C u plusu vise. Mada ovo nije resenje problema.
^^^ To nije dobro, mora da bude isti napon pre i posle tog 100k otpornika, to samo znači:
- da je eventualno promašena ulazna impedansa A/D
- da je promasena vrednost tog otpornika (odakle on tu, ko je to postavio?)
- da je ostećen A/D ulaz
- da nije iskorišćen "SENSE" pin koji bi tu grešku mogao da kompenzuje
11-12-2022, 02:25 PM (This post was last modified: 11-12-2022, 02:29 PM by savan.)
Sense cini mi se da funkcionise jer imam isto merenje sa greskom +70 na +220 bez obzira dali je 22 ili 10k otpornik, to sam bas probao da vidim dali ima razlike, nema! Ovom formulom sam ustanovio.
temperatura = ((advalue * LSB) - VREF) / 0.005
Yugaja znam, uspeo sam stim sto nije ista greska na +35 i na +220 , na +220 imam gresku +-2C a na +35 imam gresku +10 tako da nije linearno bas ali bolje nego da imam gresku +70 na +220. Ali nije poenta u tome nego razumeti zbog cega pomenuta formula bez uguranog linearnog povecanja VREF ne funcionise. Post 194 !