PROJEKAT SISTEM ZA MERENJE TEMPERATURE POMOĆU NTC OTPORNIKA

Similar documents
SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

Podešavanje za eduroam ios

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

Sl.1.Razvojna ploča-interfejs

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

DC MILIAMPERSKA MERNA KLJESTA,Procesna merna kljesta KEW KYORITSU ELECTRICAL INSTRUMENTS WORKS, LTD. All rights reserved.

Priprema podataka. NIKOLA MILIKIĆ URL:

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

Otpremanje video snimka na YouTube

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Nejednakosti s faktorijelima

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

Uvod u relacione baze podataka

ISO-422/485 OPTIČKI IZOLOVAN KONVERTOR RS-232 U RS-422/485 V1.11

PROFOMETER 5+ lokator armature

MIKROKONTROLER PIC 16F877A I NJEGOVA PRIMJENA U TELEOPERACIJAMA PREKO INTERNETA UPOTREBOM VALNIH VARIJABLI

RANI BOOKING TURSKA LJETO 2017

X SIMPOZIJUM Energetska elektronika 10 th SYMPOSIUM on Power Electronics. Novi Sad, Yugoslavia,

BENCHMARKING HOSTELA

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Automatske Maske za zavarivanje. Stella, black carbon. chain and skull. clown. blue carbon

Bušilice nove generacije. ImpactDrill

Eksperimenti sa sistemom za merenje Edaq530

DEFINISANJE TURISTIČKE TRAŽNJE

PRIMENA MIKROKONTROLERA- MS1PMK 5. deo. Nenad Jovičić

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

14. Merenja na optičkim komunikacionim sistemima

DIGITALNE METODE MERENJA UGAONE BRZINE MOTORA I POGONSKIH MEHANIZAMA

Regulator sa stepenastom regulacijom MR200MS

Port Community System

SAS On Demand. Video: Upute za registraciju:

preporuke - obavezan bazični RTV sistem za prijem nacionalnih, regionalnih i lokalnih RTV programa nezavisno od operatera.

PROJEKTNI PRORAČUN 1

9L6l I A 0. o ^ ti 9

CommLab 12. CommLab /2016 ( )

Hardver pogona zasnovanog na trofaznom asinhronom motoru (II deo)

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

Upotreba selektora. June 04

Testiranje i upoređivanje interleaving i bridgeless kola za popravku faktora snage (PFC)

Tutorijal za Štefice za upload slika na forum.

AKVIZICIJA PODATAKA SA MERNIH PRETVARAČA UZ PRIMENU ZIGBIT BEŽIČNIH MODULA*

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

Klasterizacija. NIKOLA MILIKIĆ URL:

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

Elektrotehnički fakultet Univerziteta u Beogradu Katedra za energetske pretvarače i pogone

Windows Easy Transfer

TEHNO SISTEM d.o.o. PRODUCT CATALOGUE KATALOG PROIZVODA TOPLOSKUPLJAJUĆI KABLOVSKI PRIBOR HEAT-SHRINKABLE CABLE ACCESSORIES

LINEARIZACIJA NAPONSKI KONTROLISANE LINIJE

STRUČNA PRAKSA B-PRO TEMA 13

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

IMPLEMENTACIJA SERIJSKOG INTERFEJSA ZA KOMUNIKACIJU RAZVOJNE PLOČE I RAČUNARA

Advertising on the Web

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD. Marko Pranjić. Zagreb, 2017.

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

Uputstvo za konfigurisanje uređaja Roadstar

SimPal-T3 GSM UPRAVLJAČKI MODUL-TERMOSTAT

Specification Details: Coded Dash Number M28803/1 -MC PART LISTINGS MANUFACTURER'S DESIGNATION OR TYPE NUMBER TEST OR QUALIFICATION REFERENCE

Republika Srbija. Ministarstvo za nauku i tehnološki razvoj. Godišnji izveštaj o radu na projektu u 2011 godini

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja.

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

ДИПЛОМСКИ МАСТЕР РАД

1. Instalacija programske podrške

SADRŽAJ. strana 1. strana 2. Hadži Đerina 2, tel.011 / Cvijićeva 98, tel.011 / e mail:

ARHITEKTURA RAČUNARA

UTG 9005 GENERATOR FUNKCIJA UPUTE ZA KORIŠTENJE

Trostruki savijeni dipol za napajanje Yagi antena Dragoslav Dobričić, YU1AW

1. MODEL (Ulaz / Zadržavanje / Stanje)

KABUPLAST, AGROPLAST, AGROSIL 2500

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Pravljenje Screenshota. 1. Korak

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

IMPLEMENTACIJA JEFTINOG HARDVERSKOG SISTEMA ZA MONITORING PROIZVODNJE SOLARNE ENERGIJE

SimPal-T3 GSM UPRAVLJAČKI MODUL-TERMOSTAT

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU

3D GRAFIKA I ANIMACIJA

TEHNIČKO (TEHNOLOŠKO) OBRAZOVANJE U SRBIJI

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

Uređaj je elektronski kontroler za

Nikša Maslović

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

UPUTSTVO ZA PODESAVANJE AUTOMATIKE GORIONIKA TERMIS PG-1

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

Dr Dejan Bogićević, dipl. inž. saob., VTŠSS Niš Dušan Radosavljević, dipl. inž. saob., VTŠSS Niš; Nebojša Čergić, dipl. inž. saob.

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum:

Uticaj parametara PID regulatora i vremenskog kašnjenja na odziv i amplitudno-faznu karakteristiku sistema Simulink

- Italy. UNIVERZALNA STANICA ZA ZAVARIVANJE, SPOTER - sa pneumatskim pištoljem sa kontrolnom jedinicom TE95-10 KVA - šifra 3450

JavaScript podrska u radu sa greskama

DIPLOMSKI RAD. Konstrukcija i analiza hardverskog USB generatora slučajnih brojeva sa primenom u kriptografiji

ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP

UNIVERZITET U KRAGUJEVCU MAŠINSKI FAKULTET KATEDRA ZA PRIMENJENU MEHANIKU I AUTOMATSKO UPRAVLJANJE. Lego robotika. Uputstvo i praktični primeri

Transcription:

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU SMER: EMT PREDMET: SISTEMI ZA AKIVIZICIJU PODATAKA PROJEKAT SISTEM ZA MERENJE TEMPERATURE POMOĆU NTC OTPORNIKA PROFESOR Prof. Dr Branislav Petrović ASISTENT STUDENTI Mr Goran Nikolić Dušan Petrović 13509 Aleksandar Zlatković 13510 u Nišu 24.6.2013 godine

Sadržaj 1. Zadatak... 3 2. Blok šema i princip rada sistema... 4 3. Električna šema sistema... 5 3 Linearizacija prenosne funkcije NTC otpornika... 9 4 Procedeure za izračunavanje temperature na osnovu odmerenih vrednosti sa ADC... 14 4.1. Konfiguracija kontrolera... 14 4.2. Glavni program... 17 2 P a g e

1. Zadatak Projektovati sistem za akviziciju podataka koji treba da omogući merenje do osam temperature, prikaz rezultata merenja na LCD displeju I vezu ka drugim sistemima preko dva nezavisna RS485 komunikaciona kanala. SIstem prijektovati na bazi mikrokotrolera C8051F545. Temperaturni merni opseg treba da iznosi najmanje 25+/-55 stepeni a rezolucija merenja 0.1 stepen. Rezultate merenja treba ažurirati na svaku sekundu. Kao temperaturne senzore koristiti NTC otpornike nominalne otpornosti 2.2k i koeficienta B =3900. Otporna mreža za polarizaciju NTC otpornika treba da se napaja stabilnim izvorom od 5V. Obezbediti prenaponsku zaštitu senzorskih ulaza od napona većih od 5V i manjih od 0V. Multipleksiranje analognih signala realizovati pomoću kola CD4051. AD konverziju vršiti pomoću ugrađenog 12-bitnog ADC u mikrokontroleru, koji ima merni opseg od 0-2.5V. Koristiti unutrašnji izvor referentnog napona Vref=2.5V. Kao rezultat, projekat sadrži: 1. Električnu šemu sistema 2. Linearizaciju NTC otpornika 3. Osnovne procedure za izračunavanje temperature na osnovu odmerenih vrednosti sa ADC 3 P a g e

2. Blok šema i princip rada sistema Senzor 1 Senzor 2. AMUX Kondicioner ADC.. Senzor 8 LCD uc C8051F545 Slika 1. Blok šema sistema Sistem koji projektujemo meri temperature pomoću senzora. U našem slučaju imamo 8 NTC otpornika koji predstavljaju senzore. Svaki od njih je povezan na jedan od analognih ulaza multipleksera. Selektorski ulazi multipleksera su povezani sa mikrokontrolerom tako da on određuje koji će senzor biti selektovan. Svakih 100ms se čita po jedan senzor, što je realizovano tajmerom koji se nalazi u mikrokontroleru. Svakih 100ms čita se jedan ulaz multipleksera, tj napon na jednom senzoru. Izlaz multipleksera vodi se preko kondicionera na AD konvertor. Kondicioner podešava nivo napona na granicu referentnog napona AD konvertora. AD konvertor vrši konverziju analognog ulaza u 12 bitnu digitalnu reč. Ova reč se nakon određenih transformacija vodi na LCD displej gde se prikazuje kao krajnji rezultat merenja temperature. 4 P a g e

3. Električna šema sistema U nastavku će biti data detaljna šema sistema i objašnjeni njeni delovi. Slika 2. Šema zaštite jednog senzora Senzor se može direktno povezati na multiplekser, ali postoji mogućnost da dodje do njegovog pregorevanja u slučaju da je na njega doveden napon veći od 5V, ili manji od 0V. Ukoliko se takav napon javi, može da se desi da ne pregori samo senzor već i neke druge komponente kao što su multiplekser, kondicioner ili čak i mikrokontroler. Zbog toga moramo obezbediti adekvatnu zaštitu, kako od napona većih od 5V, tako i od onih manjih od 0V. Ta zaštita se sastoji od dve diode i otpornika. Ako na ulaz dodje napon veći od 5V, provodi dioda D1, jer je njena katoda povezana na 5V. Time će sprečiti da visok napon stigne do ostalih komponenata i uništi ih. Sa druge strane, ako se javi negativan napon, provešće dioda D2, jer je njena anoda povezana na masu. Otpornik R2 služi da ograniči vrednost struje ukoliko dodje do napona dosta većeg od 5V (reda veličine 12V), i time zaštiti diode od pregorevanja. 5 P a g e

Slika 3. Senzori sa zaštitom, multiplekser, I kondicioner Na Slici 3 prikazana je detaljna električna šema ulaznog stepena sa multiplekserom, otpornicima za polarizaciju senzora i zaštitnim diodama. Svaki senzor povezan je na jedan od analognih ulaza multipleksera. Između izlaza multipleksera i ulaza AD konvertora nalazi se kolo za kondicioniranje. Kolo za kondicioniranje u ovom slučaju ima funkciju da prilagodi dinamički opseg signala sa izlaza senzora, odnosno multipleksera, na merni opseg AD konvertora. Dinamički opseg na izlazu senzora, na osnovu šeme sa Sl. 2, iznosi od 0 do 5 V. Merni opseg AD konvertora definisan je referentnim naponom ugrađenog ADC i iznosi 2.5 V. Kondicioner se sastoji od operacionog pojačavača (neinvertujućeg) i od dva otpornika vrednosti 2.2K, koji predstavljaju prosti razdelnik napona i na izlazu obezbeđuju napon od 2.5V. Ispred razdelnika neophodno je staviti operacioni pojačavač čija je ulazna impedansa beskonačna, da bi se sprečio uticaj otpornosti prethodnog stepena na otpornike razdelnika napona. 6 P a g e

Slika 4. Mikrokontroler, napajanje, LCD displej I blok za serijski prenos Na Slici 4 prikazan je mikrokontroler C8051F545 sa svim svojim periferijama. Pin P2.2 predstavlja analogni ulaz AD konvertora. Pinovi P2.5-P2.7 su selektorski izlazi koji su povezani na selektorske ulaze multipleksera. Ovim pinovima se kontroliše koji će senzor biti selektovan. Sistem se napaja preko dvopinskog konektora. Kako se mikrokontoler napaja sa 5V, potreban nam je stabilan napon od 5V. Upravo u te svrhe koristimo kolo stabilizatora napona LM7805. Dioda D1, postavljena je kao test dioda. Ona služi za proveru napajanja. Kada je napajanje uključeno, dioda svetli. Mikrokontroler vrši neka podešavanja displeja pre samog početka rada. Potrebno je izvršiti odredjenu inicijalizaciju, slanjem odredjenih vrednosti na RS(Register Select), E(Enable) i RW(Read/Write). Pinovi RS i E povezani sun a pinove kontrolera P0.6 i P0.7, respektivno. Displeju se podaci šalju preko pinova DB0-DB7, koji su povezani na pinove kontrolera P1.0-P1.7. Displej takodje ima pin za podešavanje pozadinskog osvetljenja. Pozadinsko osvetljenje se podešava potenciometrom. Na ovoj šemi P1 ne predstavlja sam displej, već konektor na ploči na koji se postavlja displej. Header 4 je konektor za programiranje kontrolera. 7 P a g e

Kolo MAX485 se koristi za serijsku komunikaciju RS485 ili RS422. Povezano je na pinove UART0RX i UART0TX mikrokontrolera. To je ustvari primopredajnik male snage. Svako kolo poseduje drajver i jedan prijemnik. Slew Rate drajvera ovog kola nije ograničen, i dozvoljava prenos brzinom i do 2,5 Mbps. Svi delovi kola koriste napajanje od 5V. Zaštićena su od preterane potrošnje snage mogućnošću termalnog gašenja kola. Uglavnom se koriste za poludupleks komunikaciju. Ovo kolo ustvari predstavlja interfejs ka fizičkom sloju za prenos podataka pri RS485 komunikaciji. RS485 interfejs se sastoji iz upredene parice s oznakama A i B i zajedničkog uzemljenja GND. Kondenzator se koristi za filtriranje napona i eliminisanje smetnji na napajanju. Opcioni otpornik R3 koji se nalazi na priključnim krajevima RS485 interfejsa služi za prilagodjenje impedanse. On se stavlja u slučaju da se sistem nalazi na kraju komunikacionog interfejsa. 8 P a g e

3 Linearizacija prenosne funkcije NTC otpornika Neki tipovi senzora imaju tipičnu nelinearnu karakteristiku, koja se može objasniti na osnovu fizičkog modela. U ovom slučaju kalibracija se može upotrebiti tako što se najpre primeni sistemska linearizacija. Zaostale slučajne varijacije nelinearnosti se onda mogu kalibrisati korišćenjem neke generalne linearizacione metode. Postojeća sistemska greška lakše će biti korigovana sistemskom linearizacijom nego interpolacijom zasnovanom na višesturkim kalibracionim merenjima. U našem slučaju koristićemo Piece-wise metodu za linearizaciju koja se vrši na sledeći način: Umesto pamćenja kompletne prenosne karakteristike senzora u velikoj memoriji, može se koristiti manja memorija i pamtiti samo koeficijenti modela koje opisuje senzor. Možemo izvršiti merenja izlaznog signala senzora za mali skup poznatih ulaznih signala. Ovim merenjima dobijamo čvorove prenosne karakteristike senzora. Između susednih čvorova se povlače prave linije definisane sa y = a n *x+b n. Ovim linijama vršimo Piece-wise linearnu interpolaciju (PW), i dobijamo f pwl (x). Na osnovu ovih linearnih segmenata može se izvršiti jednostavno procesiranje da bi se dobila linearna prenosna kriva. U svakom podopsegu se primenjuje korekcija pojačanja i ofseta. Sada je potrebno samo upamtiti tačke koje definišu granice podopsega. MEMORIJA Izlazni signal senzora PWL Detektovani ospeg ofset i pojacanje Kalibrisani izlazni signal f(x) Ulazni signal ADC ASP ili DSP DAC Ulazni signal Slika 5. Piece wise linearni metod za kalibraciju linearnosti Kao senzor temperature koristi se NTC otpornik. 9 P a g e

Slika 6. Zavisnost otpornost NTC otpornika od temperature Zavisnost otpornosti NTC otpornika od temperature data je sledećom formulom: R T R N e 1 B( T 1 T N ) R T : otpornost NTC termistora na temperaturi T R N : otpornost NTC termistora na relativnoj temperaturi TN B : konstanta koja predstavlja nagib R/T krive i koja zavisi od materijala od koga je napravljen NTC otpornik. e : osnova prirodnog logaritma ( e = 2.71828) T1 T 2 B ln T 2 T1 R1 R2 dt dr R 1 10 P a g e

Slika 7. Zavisnost napona NTC otpornika od temperature Zavisnost napona NTC otpornika od temperature data je sledećom formulom(rx je polarizacioni otpornik): Rt Vo Vcc Rt Rx 11 P a g e

Slika 8. Zavisnost temperature od napona koji je predstavljen kao 12-bitni ceo broj Grafici na slikama 6, 7 i 8, dobijeni su u Matlab-u, pomoću sledećeg koda. U zadatku su date vrednosti R 0, opseg temperatura, B, T c0, T 0 i T, ostale vrednosti su dobijene su pomoću gore navedenih formula. Rp=6000; t=(-30:0.1:80); Ro=2200; Tco=25; To=273.15+Tco; T=273.15+t; B=3900; Rt=Ro.*exp(B.*((1./T)-(1./To))); plot(t,rt); xlabel ('Temperatura(C)'); ylabel ('Otpornost(kOhm)'); Vo=5*(Rt./(Rp+Rt)); figure; plot(t,vo); xlabel ('Temperatura(C)'); ylabel ('Napon(V)'); Do = round(4096*(vo./5)); figure; plot(t,do); xlabel ('Temperatura(C)'); ylabel ('Do'); 12 P a g e

Zavisnost temperature od napona koji je predstavljen kao 12-bitni ceo broj nam je od značaja jer je koristimo za dobijanje vrednosti temperature na osnovu izlaza AD konvertora. Međutim, vrednost temperature nije moguće direktno odrediti na osnovu D o, već je potrebna određena linearizacija. Nju vršimo gore pomenutom Piece-Wise metodom, pravimo određeni broj podopsega koje aproksimiramo pravama čije su jednačine y = a n *x+b n. U ovoj jednačini x je vrednost očitana sa AD konvertora, a y krajnja vrednost temperature. Tačke (-30, y 1 ), (-15, y 2 ), (15, y 3 ), (20, y 4 ), (30, y 5 ), (45, y 6 ), (60, y 7 ), (80, y 8 ) predstavljaju granice izabranih podopsega a vrednosti y su vrednosti D o za određene temperature očitane sa grafika sa Slike 8. Drugi, lakši način za dobijanje ovih vrednosti je preko formule za y napisane u ko du. Koeficijenti a n i b n se dobijaju tako što se iz jednačine prave kroz dve tačke računa inverzna funkcija po x. U ovoj jednačini y predstavlja vrednost D o, a x vrednost temperature. Pošto je nama potrebna vrednost temperature na osnovu očitanog D o sa AD konvertora, moramo naći inverznu zavisnost. Sledeći deo koda sadrži konačne izraze za a n i b n, kao i granične tačke izabranih podopsega. Koeficijenti su pomnoženi sa vrednošću 2560 da bi bili celi brojevi i time smo omogućili izračunavanja sa integer brojevima. Temp = [-30, -15, 15, 20, 30, 45, 60, 80]; for i=1:8 y(i) = Do((Temp(i) - Temp(1))*10 + 1); end for j=1:7 a(j) = round(((temp(j+1)-temp(j))/((y(j+1)-y(j))))*2560); b(j) = round(temp(j)*2560 - y(j) * a(j)); end S obzirom na nesavršenosti prilikom linearizacije javlja se određena greška. Najveća greška se javlja na sredinama opsega pa smo uzeli proizvoljne vrednosti temperatura iz tih delova, i za njih izračunali vrednost dobijene temperature na osnovu formule, a ne sa grafika. Na taj način smo uvideli razliku između vrednosti temperatura računatih na ova dva načina. Sledeći kod to predstavlja: Temp1 = (a(1)*3314 + b(1))/256; % -22 stepena, izračunato -22.82 stepeni Temp2 = (a(2)*2246 + b(2))/256; % 0 stepeni, izračunato 0,28 stepena Temp3 = (a(3)*1390 + b(3))/256; % 17.5 stepeni, izračunato 17,54 stepena Temp4 = (a(4)*1099 + b(4))/256; % 25 stepeni, izračunato 25,36 stepeni Temp5 = (a(5)*717 + b(5))/256; % 38 stepeni, izračunato 38,90 stepeni Temp6 = (a(6)*437 + b(6))/256; % 53 stepena, izračunato 53,95 stepeni Temp7 = (a(7)*253 + b(7))/256; % 70 stepeni, izračunato 71,8 stepeni 13 P a g e

4 Procedeure za izračunavanje temperature na osnovu odmerenih vrednosti sa ADC Najpre je potrebno izvršiti konfiguraciju kontrolera, i to: konfiguracija oscilatora, tajmera, i AD konvertora. Treba podesiti da frekvencija takta procesora bude 3MHz, dozvoliti rad AD konvertora, i podesiti da tajmer odbrojava 100ms. 4.1. Konfiguracija kontrolera Konfiguraciju vršimo pomoću programa Configuration Wizzard. Na sledećim slikama su prikazana podešavanja za AD konvertor, tajmer i oscilator. Vrednost frekvencije oscilatora treba podesiti na 3MHz. Slika 9. Podašavanje oscilatora 14 P a g e

Potrebno je omogućiti rad AD konvertora i podesiti da analogni ulaz mikrokontrolera za AD konvertor bude pin P2.2. Slika 10. Podašavanje AD konvertora. Tajmer treba da odbrojava 100ms, jer na svakih 100ms treba čitati vrednost sa NTC otpornika. Tajmer može biti podešen u jedan od više mogućih režima rada. Za naš projekat, odabrali smo 16-bitni auto reload mode. Dakle, on će početi da broji od 0000h, brojaće do FFFFh, zatim će fleg TF2 postaviti na jedinicu, i time obavestiti da je odbrojao do kraja, i da kreće opet od 0000h. Medjutim, nama treba obaveštenje na 100ms. Kako to podesiti? U podešavanjima za tajmer, postoji opcija odabira takta za tajmer. U projektu, odabrana je frekvencija SYSCLK/12, što znači da je naš sistemski takt podeljen sa 12. 1. Dakle imamo frekvenciju takta: 3MHz/12 = 250KHz 2. Perioda takta je: 1/250KHz = 4us 15 P a g e

3. Nama treba 100ms, dakle: 100ms/4us = 25*10 3 = 25000 taktova potrebno za 100ms. Dakle, kada brojač odbroji do FFFFh, on bi se po rutini vratio na 0000h. Medjutim, postoji mogućnost zadavanja početne vrednosti brojača(slika 11.). U ovom slučaju, za 100ms, mi ćemo mu zadati 65545-25000 = 40535 = 9E57h. Slika 11. Zadavanje početne vrednosti brojaču u auto reload režimu rada. Slika 12. Konfiguracija tajmera. 16 P a g e

4.2. Glavni program U glavnom programu, na svakih 100ms čita se vrednost AD konvertora, funkcijom Read_ADC. Nakon čitanja 12-bitne vrednosti sa AD konvertora, vrši se ispitivanje u kom opsegu se nalazi pročitana vrednost. Opseg se određuje u for petlji tako što se vrednost očitana sa AD konvertora poredi sa graničnim vrednostima svakog opsega. Promenljiva index se inkrementira u svakom prolasku kroz petlju ako je vrednost na AD konvertoru manja od granične vrednosti Do za taj opseg. Ove granične vrednosti su prethodno izračunate u Matlab-u i unete u niz y. Posle prepoznavanja opsega, očitana vrednost se ubacuje u inverznu funkciju x=a n *y+b n, gde su koeficijenti a i b u Matlab-u unapred određeni za svaki opseg i uneti u nizove a i b respektivno. X predstavlja konačnu vrednost očitane temperature, a y vrednost sa AD konvertora. Nakon izračunavanja, dobijena vrednost temperature se smešta na određenu poziciju niza Temp. Kada se čita vrednost sa senzora, potrebno je vratiti fleg TF na nulu, da bi on mogao da broji od početka. Ako ne bismo vratili ovaj fleg na nulu, tajmer bi se ukocio i fleg bi ostao na jedinici, pa bi se pri svakom prolasku kroz petlju očitavala vrednost senzora, što nam nije potrebno. Potrebno je ispitivati fleg TF2H jer je specifikacija tajmera takva da ima dva marker TF2L, koji će se postaviti kada nižih 8 bitova brojača dostignu vrednost FFh(tajmer dostigne vrednost 00FFh), i marker TF2H, koji će se postaviti kada viših i nižih 8 bitova brojača dostignu vrednost FFh, odnosno kada brojač dostigne vrednost FFFFh. S obzirom na to da se na svakih 100ms čita vrednost jednog senzora, tj čita se vrednost sa jednog ulaza AMUX-a, potrebno je uvesti brojač koji će se inkrementirati na svakih 100ms. Brojač broji od 0-7, jer ima 8 senzora. Naime, pošto su nam selektorski signali povezani na pinove P2.5-P2.7, u svakom ciklusu treba postaviti određenu vrednost na te pinove, tj vrednost selektorskih signala. Na primer, pri čitanju trećeg senzora treba postaviti vrednost 010 na ove pinove. Postavljanje ovih vrednosti na selekcione signale postižemo određenim and i or logičkim operacijama. Najpre maskiramo port P2 vršeći nad njim and operaciju sa vrednošću 00011111 da bismo sačuvali vrednosti pinova od P2.0-P2.4. To pamtimo u promenljivoj prom nad kojom nakon toga vršimo or operaciju sa vrednošću promenljive selekcija šiftovane za pet pozicija ulevo. Promenljiva selekcija predsavlja gore pomenuti brojač. U zadatku je definisano da rezolucija merenja temperature bude 0.1 o C. Kao što smo već pomenuli, u Matlab-u se vrednosti koeficijenata množe sa 2560 da bi dobili cele brojeve, a ovde ćemo vrednost temperature podeliti sa 256, i time podesiti traženu rezoluciju. Na primer, za vrednost temperature od 30 o C, u programu ćemo dobiti vrednost 300, a na ekranu će biti prikazano 30.0 stepeni. 17 P a g e

18 P a g e