Referat Fizica. Proiect BSAD Senzor de temperatura
label
Referate
calendar_month
2007-05-12, 00:00
autorenew
2025-09-29, 16:56
history_edu
Gabi Dobocan
Proiect Bazele Sistemelor de Achizitie de DateSenzor de temperaturaIndrumator:Marius PadureStudenti:Cismasu MariusPavel AndreiPopescu TudorGrupa:432DTema proiectului:Sistem de detectie a temperaturii, cu 8 canale, cu termocuplu tip B; gama de temperaturi masurate: 01600oC; se foloseste un microcontroller ATMEL AT90LS8535 si se va afisa temperatura maxima.Se va folosi schema bloc prezentata in figura 1: Figura11)TermocupluTermocuplu din punct de veder fizic reprezinta nici mai mult nici mai putin decat materiale care puse impreuna manifesta efect Seebeck.Intr-un fir metalic ale carui capete se afla la temperaturi diferite TA>TB apare o diferenta de potential UAB cauzata de faptul ca electronii de conductie din capatul cu temperatura mai mare au o energie cinetica mai mare si vor difuza catre capatul mai rece. In acest fel capatul cald se va incarca pozitiv iar capatul rece al firului se va incarca negativ. Tensiunea termoelectromotoare (t.t.e.m.) care apare UAB este direct proportionala cu diferenta de temperatura dintre capetele firului: UAB = VA VB = S*( TA TB ) unde S este coeficientul Seebeck, o proprietate a materialului din care este facut firul.In cazul practic in care am dori sa masuram aceasta diferenta de potential, daca pentru conexiunea cu aparatul de masura(foarte sensibil) vom folosi fire din acelasi material vom costata ca tensiune indicate va fi 0.Cauza este aceea aceea ca din tensiunea initiala UAB se scade tensiunea termoelectrica a firelor de legatura, in cazul de fata identica cu tensiunea initiala. Este ca si cum am lega doua baterii identice cu bornele "+" impreuna si bornele "-" impreuna, oriunde intrerupem circuitul si masuram tensiunea, aceasta va fi zero. Situatia se schimba daca intre punctele A si B avem un fir de nichel, iar de la punctele A si B plecam catre instrumentul de masura cu un fir din cupru, atunci voltmetrul va indica o diferenta de potential. In acest caz fiind vorba de metale diferite, cu coeficienti Seebeck diferiti, diferenta de potential masurata va fi: U = UAB(Ni) UAB(Cu) = SNi(TA TB) SCu(TA TB) = = (SNi SCu)(TA TB) De regula se dau in tabele coeficientii Seebeck relativi, masurati pentru materialul respectiv fata de un material de referinta (de cele mai multe ori platina). Coeficientul Seebeck al unui material nu ramane constant in functie de temperatura. Doua materiale poat fi folosite impreuna intr-un termocuplu doar daca coeficientul Seebeck al cuplului este relativ constant pe domeniul de temperaturi in care se lucreaza.In mod practic ,termocuplul se compune din doua fire din metale diferite, numite termoelectrozi, sudate la un capat 1. Capatul sudat se numeste sudura calda, iar celelalte capete 2 si 3, numite capete libere ale termocuplului, se leaga prin conductoarele de legatura c la aparatul electric pentru masurarea fortei termoelectromotoare. Legaturile dintre capetele libere si conductoarele de legatura constituie sudura rece. Temperatura sudurilor reci trebuie mentinuta la o valoare constanta. Deoarece termoelectrozii au o lungime maxima de 200 cm, din care 2/3 intra in cuptorul in care se masoara temperatura, sudura rece se va gasi totdeauna in apropierea cuptorului. Acesta fiind la temperatura ridicata, degaja caldura si creeaza in jurul lui o temperatura mai ridicata decat a camerei si variabila in timp. Din acest motiv, cat si pentru ca este incomod sa se realizeze sudura rece in imediata apropiere a cuptorului, s-a cautat sa se deplaseze sudura rece in alta parte, unde se poate mentine o temperatura constanta. Rezolvarea problemei in mod brutal(precizia are mult de suferit) ar fi presupus prelungirea termoelectrozilor cu alte conductoare de aceeasi natura, in general chiar din acelasi material. In felul acesta la contactul dintre conductoarele de prelungire si firele termocuplului nu se formeaza un termocuplu, deci nu ia nastere forta termoelectromotoare. Aceste fire se numesc cabluri de compensare si sunt complet separate de termocuplu, legatura executandu-se numai la montarea termocuplului. Cablul de compensare are rolul de a muta sudura rece din apropierea cuptorului intr-un loc cu temperatura constanta. Sudura rece se va forma acum la legatura dintre cablul de compensare si cablul de legatura.O rezolvare eleganta a problemei de compensare se poate face folosind inca un termocuplu de acelasi fel conectat in serie cu primul ca in figura de mai jos Despre modul in care s-a dimensionat acest circuit ne vom referi in partea in care am descris circuitul de conditionare.Termocuplul platina-platina rhodiu masoara temperaturi intre 0 si 1600 oC. Se mai obisnuieste formarea termocuplului platina cu platina-iridiu (10% Ir). Platina trebuie ferita insa de carbon, hidrogen si vapori de metale, care au efecte daunatoare asupra ei. In mod special trebuie evitata utilizarea platinei in atmosfera oxidanta sau reducatoare in care se gasesc oxizi metaliciAvand clarificate aceste probleme vom incheia acest prim capitol cu precizarea ca vom avea nevoie pentru realizarea acestei teme de 16 termocupluri tip B cu electrodul pozitiv 70% Pt+ 30% Rh si electrodul negativ 94% Pt +6%Rh cu sensibilitatea medie de circa 7V/ oC. 2)Circuitele de conditionare: Dupa cum s-a observat in capitolul anterior folosirea termocuplurilor ca traductoare de temperatura implica in principal doua probleme: -mentinerea sudurii reci la o temperatura constanta; -nivelul mic al iesirii termocuplului de ordinul 7V/ oC pentru o diferenta de temperatura de 1C. Rezolvarea acestor probleme este data de circuitul de conditionare,care va fi compus din doua etaje ca in schema electrica prezentata in figura 2. Figura 2 Dupa cum se observa circuitul format din IC1,IC2,R1 si R2 este un circuit de compensare a temperaturii jonctiunii de referinta cu sursa de curent dependent de temperatura (AD590),folosind tensiunea de referinta de 2.5V data de AD580.Tensiunea de pe rezistenta R1 realizeaza compensarea,iar tensiunea de referinta ofseteaza tensiunea de pe rezistenta R2 cu valoarea corespunzatoare celor 273.16A dati de sursa de curent la 0oC.Schema mai contine un etaj de amplificare , cu zgomot foarte redus format din IC3,IC4 si IC5(amplificatoare operationale de precizie) cu componentele aferente,cu amplificare reglabila in domeniul 5-1000.Reglajul amplificarii se obtine modificand valorile rezistentelor R11 si R12(acest pas se va efectua in cadrul operatiei de calibrare).Rationamentul de stabilire a amplificarii va fi prezentat cand se va analiza conversia analog/digitala,totusi mentionam ca aceasta valoare va fi de aproximativ 435.In primul bloc al circuitului deconditonare(cel in care se rezolva problema mentinerii jonctiunii reci la o temperatura constanta) avem doua rezistente care trebuie dimensionate astfel incat (1) pentru orice valoare a temperaturii ?RCurentul I dat de sursa de curent este (2)In aceste conditii se poate scrie = (3)Dar pe de alta parte: (4)Introducand ultimele doua relatii (4) in relatia (3)obtinem pentru valoarea curentului ce trece prin rezistenta R1 (5)Revenind la relatia (3) in care introducem relatia pentru curentul din R1 vom avea: = (6)Introducand acum in expresia (6) valoarea lui din relatia (2) obtinem in final pentru : (7)Acum pentru aceasta expresie avand conditia data de relatia(1) obtinem urmatorul sistem : Prin calcule se ajunge in final la urmatoarele expresii pentru valorile rezistentelor Calcule de mai sus trebuie completate cu urmatoarele precizari este tensiunea de intrare in etajul de amplificare, S este sensibilitatea circuitului integrat AD590(1A/oC),?R este temperatura jonctiunii de referinta care este in contact termic strans cu circuitul AD590, este o tensiune de referinta de 2.5 V generata de circuitul AD590, este sensibilitatea termocuplului (7V/oC), iar ?M este temperatura masurata3)Microcontroller-ul : Se foloseste un microcontroller de tipul AT90LS8535 avand urmatoarele caracteristici:-118 instructiuni puternice(cele mai multe executate pe un singur ciclu de clock),-32*8 registri ,-8 KB memoria non-volatila(programabila),-convertor analog/digital de 10 biti cu opt canale multiplexate,-4 porturi de cate 8 biti,adica de 32 de linii I/O programabile,-generator de semnal de ceas intern ,-frecventa maxima 4MHz,-tensiunea de alimentare 2.7V-6V.Dupa cum s-a observat si in schema de principiu a acestui proiect microcontroller-ul are integrat un multiplexor analogic pe 8 canale ,ceea ce rezolva problema introducerii treptate a semnalelor de pe iesirea celor 8 circuite de conditionare.De asemenea se mai observa ca iesirea acestui multiplexor analogic intra intr-un convertor A/D,rezolvandu-se astfel si conversia analogic digitala.Pornind de la structura interna a microcontroller-ului prezentata in figura 4,s-a obtinut schema din figura 3 Figura 3Descrierea schemei din figura 3:Microcontrollerul are incorporat un convertor A/D de 10 biti, cu posibilitatea de multiplexare a 8 canale; mai are si un circuit sample/hold, intercalat intre multiplexorul analogic si convertor. Convertorul foloseste algoritmul de conversie prin aproximari succesive.Se foloseste generatorul de semnal de ceas intern prin conectarea la XTAL1 si XTAL2 a unui cristal de cuart (pe frecventa de tact dorita).Convertorul A/D se alimenteaza prin intermediul filtrului trece-jos format din L1(10H) si C3(100nF) la aceeasi tensiune ca si restul microcontrollerului, conform indicatiilor din datele de cotalog ale acestuia.Tensiunea de referinta se va alege de 5V si din motive care tin de programarea microcontrollerului se va alege tensiunea maxima prezenta la iesirea circuitelor de conditionare (la cap de scara 1600oC) nu de 5V ci ceva mai mica. Daca s-ar stabili nivelul maxim de iesire al circuitelor de conditionare la 5V s-ar obtine un pas de cuantizare de 1600oC/1024=1.56oC, ceea ce ar presupune inmultirea valorii obtinute la iesirea convertorului A/D cu 1.56 ceea ce se realizeaza destul de greu cu ajutorul intructiunilor implementate in AT90LS8535; de aceea se prefera modificarea pasului de cuantizare la valoarea 1.6oC; se observa ca daca inmultim aceasta valoare cu 10 obtinem o putere a lui 2 (puterea a patra) si dupa cum se stie, o inmultire cu o putere a lui 2, in reprezentare binara inseamna o simpla deplasare spre stanga cu un numar de pozitii egal cu puterea cu care se face inmultirea; astfel cu un pas de cuantizare de 1.6oC se va obtine o temperatura cap de scara de 1.6*1024=1638.4oC care ar corespunde unei tensiuni de la iesirea etajului de amplificare din circuitele de conditionare de 5V-5V/1024?5V; limitarea la 1600oC se va face regland excursia maxima de tensiune la iesirea circuitelor de conditionare la valoarea 5V*1600/1638.4=4.88V; aceasta presupune reglarea amplificarii la valoarea de 4.88/(1600*7*10-6)=435.7.Figura 4Celelalte porturi ale microcontrollerului se vor folosi pentru afisarea rezultatului.4)Sistemul de afisare:Sistemul de afisare este un convertor ZCB - 7 segmente prin intermediul caruia se vor afisa cele 4 cifre ale temperaturii (valoare rotunjita prin algoritmul de conversie 16 biti 5 cifre zecimale, ultima fiind prima cifra dupa virgula, care nu se va afisa, nefiind semnificativa din punctul de vedere al erorilor). Se va folosi schema din figura 5: Figura 5Schema completa este atasata lucrarii.Cea mai importanta parte a acestui sistem de achizitie de date este microcontrollerul care supervizeaza desfasurarea procesului de achzitie de date.Algoritmul dupa care se desfasoara achizitia de date este:1.se citeste tensiunea generata de fiecare dintre cele 8 canale;2.se convertesc numeric binar, aceste tensiuni, pe 10 biti;3.se determina maximul acestei tensiuni (prin compararea unor cuvinte binare de 10 biti);4.se converteste tensiunea maxima in valoare in grade Celsius pe 4 digiti;5.se afiseaza valoarea temperaturii.Sursa in instructiuni specifice AT90LS8535 este:main cbi adcsr,3;intreruperea de sfarsit conversie ;dezactivatacbi adcsr,0cbi adcsr,1;stabilirea frecventei de lucru a cbi adcsr,2;convertorului A/Dsbi adcsr,7;conversia A/D activatacbi adcsr,5;mod conversie unica (single conversion)ldi admux,0x00;selectare canalul 0sbi adcsr,6;start conversieconvcomplsbrc adcsr,6rjmp convcompl;asteptare sfarsit conversiemov r1,adchmov r2,adclmov r6,admuxldi r5,0x01conversiemov admux,r5;selectare canalul isbi adcsr,6;start conversieconvcompl1sbrc adcsr,6rjmp convcompl1;asteptare sfarsit conversiemov r3,adchmov r4,adclsub r3,r1breq testlow;daca octetii high sunt egali se testeaza si;cei inferioribrge scrie;se retine noua valoare daca este mai mareinc r5cpi admux,0x08;conditia de iesire din ciclul de conversiesbrs sreg,1rjmp conversietestlowsub R4,R2brge scrieretscriemov R1,adchmov R2,adclmov R6,admuxret;aici se incheie un ciclu in care au fost masurate;temperaturile tuturor canalelor, retinandu-se doar ;valoarea maxima;procedura de afisare a rezultatului:;se incepe prin inmultirea valorii convertite a tensiunii;cu 16=2^4, adica o deplasare stanga cu 4 pozitii;inmultirea cu 16 se prefera unei inmultiri cu 1.6 care;corespunde rezolutiei in temperatura, care este;echivalenta unei inmultiri cu 16 urmata de o impartire cu;10, care se va efectua la nivel de circuit prin retinerea;primilor 4 digiti din cei 5 (care ar rezulta din 16 biti). ;valoarea maxima ce se va converti din binar in zecimal fi;1024*16=16384 adica 5 digiti, din care se vor afisa primii;patru clcrol r1rol r2rol r1rol r2rol r1rol r2rol r1rol r2;procedura de inmultire cu 16 incheiatarcall bin2BCD16;se converteste in zecimal;afiseazaldi ddrb,0xffldi ddrc,0xff;se seteaza porturile ca iesirildi ddrd,0xff;R7 va avea continutul portb adica cifrele 3 si 2mov R7,R15swap R7andi r7,b11110000 ;se reseteaza niblul lowldi r8,r14andi r8,b11110000swap r8or r7,r8out portb,r7;R7 va avea continutul portc adica cifra 0 si canalulmov r7,r13andi r7,b11110000 ;se reseteaza niblul lowldi r8,admuxandi r8,b00001111or r7,r8out portc,r7;R7 va avea continutul portd high adica cifra 1mov r7,r14andi r7,b00001111 ;se reseteaza niblul highout portd,r7rjmp main;se reincepe un ciclu de achizitie;algoritmul de conversie in zecimal;definitii.equAtBCD0=13;adresa tBCD0.equAtBCD2=15;adresa tBCD1.deftBCD0=r13;digitii BCD 1 and 0.deftBCD1=r14;digitii BCD 3 and 2.deftBCD2=r15;digitul BCD 4.deffbinL=r2;octetul low.deffbinH=r1;octetul high.defcnt16a=r18;contor de iteratii.deftmp16a=r19;valoare temporara;codbin2BCD16:ldicnt16a,16;initializarea contoruluiclrtBCD2;se sterg octetii in care ;se va stoca rezultatulclrtBCD1clrtBCD0bBCDx_1:lslfbinL;se deplaseaza valoarea de intrarerolfbinHroltBCD0roltBCD1roltBCD2deccnt16a;se decrementeaza contorulbrnebBCDx_2;daca contorul nu e 0ret;returnbBCDx_2:ldir30,AtBCD2+1;Z este MSB + 1bBCDx_3:ldtmp16a,-Zsubitmp16a,-$03sbrctmp16a,3stZ,tmp16aldtmp16a,Zsubitmp16a,-$30sbrctmp16a,7stZ,tmp16acpiZL,AtBCD0brnebBCDx_3rjmpbBCDx_1