Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Diy duvaljka, jbc lemilica, led svetlo, mikroskop
(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
Reply
@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.

[Image: attachment.php?aid=38756]

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 Wink

[Image: attachment.php?aid=38757]


Attached Files Thumbnail(s)

Reply
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:

temperatura_FSR2048 = ((2.5 / (2.048 / 32767) * (2.048 / 32767)) - 0) / 0.005
temperatura_FSR4096 = ((2.5 / (4.096 / 32767) * (4.096 / 32767)) - 0) / 0.005

To je to! Ddanijel svaka cast! Konacna formula koju cu da stavim u programski kod glasi:

LSB = FSR / 32767;
temperatura = ((advalue * LSB) - VREF) / 0.005

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 Sad
Reply
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).

To je pristup koji sam predložio u prilogu 137:
https://forum.yu3ma.net/thread-2772-post...#pid123779

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".
Reply
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?
Reply
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.
Reply
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?
Reply
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
Reply
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
Reply
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 ?
Reply
Recimo ovom formulom dobijam +-10 C na 200C podesenih ali zato onda imam gresku +50C na 37C podesenih.

temperature = (float)(((val * (2.048 / 32767)) + 0.257) / 0.005);

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.
Reply
Koliki napon dobijaš na izlazu iz AD4895 pri napajanju od 5V ako ti je senzor na sobnoj temperaturi?
Da li ti je REF pin na masi?
Reply
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.
Reply
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:

temperatura = ((advalue * LSB) - VREF) / 0.005

Ali prakticno gledano ni priblizno.
Reply
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.

Po ovom dokumentu:
https://www.analog.com/media/en/referenc...CN0271.pdf
greška bi morala da bude vrlo mala (v. Fig. 2).

Ta kontrola bi nam bitno olakšala dijagnostiku.
Reply
118.9mV merim ali to ide preko 100k otpornika na ulaz u ads115 gde na drugom kraju otpornika sada nije vise ovaj napon nego merim 254mV

U10,U12 je ferit https://www.lcsc.com/product-detail/Ferr...75472.html , ne znam zasto sam uopste stavio R4 100K, bice da je on glavni problem


Attached Files Thumbnail(s)

Reply
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.

temperature = (float)(((val * (2.048 / 32767)) + ((val * 0.75) / 32767.0)) / 0.005);

Sa normalnom formulom "temperatura = ((advalue * LSB) - VREF) / 0.005" nema nikakve razlike promenom R4, i dalje je +70 vise nego sto treba na +220
Reply
^^^ 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
Reply
Ako već steluješ rezultat uradi to kako treba. Npr najprostije linearna aprox, formula za pravu kroz dve tačke.. Tačke su npr u 30C i 220C
Reply
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 !
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)