Măsurăm temperatura cu un termocuplu

Scurt informații teoretice și afirmația problemei :)

Până în prezent, există două tipuri de senzori care măsoară temperatură: termistor (termistor) și termocuplu. Principiul de funcționare este aproape clar :) Nume: termistor - un rezistor schimbă rezistența sub acțiunea temperaturii, un termocuplu - două fire din materiale diferite sudate între ele, care prin încălzire, datorită diferenței de potențial apare CEM.






De obicei, în aplicații auto utilizate termistoare, deoarece acestea sunt capabile să opereze la sarcini mecanice semnificative, dar, de asemenea, cu acest avantaj au unele dezavantaje: sunt capabile să funcționeze numai într-un interval de temperatură îngust, iar acest interval este dependența de rezistență au temperaturi neliniare, în care În timpul vieții, această dependență se schimbă. Termocuplu în acest sens, mai ușor, iar în cazul în care nu este de încărcare mecanic, cu atât mai fiabile, iar intervalul de temperatură de funcționare de mai mult ei. Prin urmare, termocuplurile sunt adesea folosite în diferite sisteme de măsurare. Și dacă este folosit, atunci trebuie să înveți cum să ne aplicați - suntem roșii. )
În acest sens, cu teoria tuturor lucrurilor, mă îndrept spre practică. Cine vrea să citească în detaliu tipurile de senzori, pot recomanda articolul - www.picad.com.ua/0105/pdf/50-54.pdf

electronică
EMF produs de un termocuplu este foarte mic - de ordinul câtorva milivolți, deci este imposibil să faci fără un amplificator. După ce am căutat pe Internet, am găsit 5 circuite diferite de amplificator pentru un termocuplu și pe baza uneia dintre ele am desenat propria mea


Deoarece R3 a înțeles că este superfluă și este posibil să-l elimină din schemă, vom lua în calcul și factorul de câștig după program.

Ei bine, aici am fost norocos un pic - fier termocuplu de lipit (care trebuie să fie conectat) și disponibil în multimetru meu au aceleași caracteristici, așa că am crocodili multimetru „așezat“ la ieșire termocuplu, și un al doilea multimetru fixat în circuitul de ieșire. Încălzirea vârfului de lipire (și astfel termocuplului) valorile temperaturii arzătorului înregistrate și valorile corespunzătoare ale tensiunii de la ieșirea circuitului.







Cei pe care astfel de muff „nu merge“ au sau posedă ambele termocuplu (conectate la controler și contorul) în apropierea sau termocuplu pentru măsurarea temperaturii la corpurile cu temperatură cunoscută cu precizie (de exemplu gheață - 0 C, -36,6S corpul uman, apa de fierbere - 100C) .

Un pic de matematică
Înregistrați datele în Excel, selectați-le și faceți clic pe butonul "diagrame principale"


Apoi, alegeți tipul graficului "punct" și faceți clic pe "gata"


Am obținut grafic relația noastră de temperatură-tulpină.


În cazul în care punctele de date nu se află aproximativ pe o singură linie, înseamnă că avem nameryanno chegoy ceva greșit - Remasoara. Dacă totul este „OK“, apoi klatsat mouse-ul pe oricare dintre punctele reprezentate grafic și prin apăsarea butonului din dreapta, obținem o fereastră în care vom selecta „Add linie de trend.“


În fereastra deschisă, verificați dacă „tipul“ a fost „liniar“, iar fila „Settings“, aveți nevoie pentru a pune o căpușă lângă „ecuație pe display grafic“.


Ecuația adăugată pe grafic este "temperatura-temperatură" dorită,


Acum, amintiți-vă că ATmega ADC la 0V la intrare dă 0, iar la 5 V - 1024, și se recalculează „temperatura - tensiune“ în „ADC indicator - temperatura“ înmulțită cu 5/1023:
y = 206,36 * x * (5,0 / 1023,0) -13,263
unde x este citirea ADC, y este valoarea reală a temperaturii

asamblare
Descrie în acest paragraf nu este nimic special - ne prindem schema noastra de a MK sau fular Arduino, conectați la tabloul de bord aici - www.drive2.ru/b/2826794/

Programul
Programul este de asemenea utilizat pentru panoul digital, schimbând doar ciclul principal

void loop () nesemnate lung anteriorMillis = 0;
const lung interval = 1000;
int sensorValue;
int temp_real;
citiți citirile ADC
nesemnate curent lung Millis = millis ();

dacă (curentMillis - anteriorMillis> = interval)
// Citiți valoarea temperaturii reale
temp_real = abs (int (206,36 * sensorValue * (5,0 / 1023,0) -13,263));
>
numărul de afișare (temp_real);
>

rezultat
Ceva de genul asta


după cum puteți vedea imaginea ușor agită - este necesar să se medieze citirile, și nu să se măsoare printr-un anumit interval. Dar acest lucru va fi deja luat în considerare în versiunea finală







Articole similare

Trimiteți-le prietenilor: