teperaturni regulator

23
2008 Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za mehatroniku [TEMPERATURNI REGULATOR SA LCD PRIKAZOM I RS232 KOMUNIKACIJOM ] Projekat iz predmeta : Digitalna upravljačka elektronika [ VLADAN NIKOLID H150 DANILO GRK H151 ENDRE KENDEREŠI H153 ZORAN STANKOVID H154 NENAD BANJAC H182 ]

Upload: vladan-nikolic

Post on 18-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

sa lcd prikazom

TRANSCRIPT

Page 1: Teperaturni regulator

1

2008

Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za mehatroniku

[TEMPERATURNI REGULATOR SA LCD PRIKAZOM I RS232 KOMUNIKACIJOM ] Projekat iz predmeta : Digitalna upravljačka elektronika

[ VLADAN NIKOLID H150

DANILO GRK H151 ENDRE KENDEREŠI H153 ZORAN STANKOVID H154 NENAD BANJAC H182

]

Page 2: Teperaturni regulator

2

Sadržaj

1.Projektni zadatak..................................................................................... 3

1.1.Blok shema uređaja..................................................................... 3

1.2. Uvod u On/Off kontrolu............................................................. 4

2.Hardware................................................................................................. 5

2.1.Mikrokontroler PIC16F877A........................................................ 5

2.1.1. Pin dijagram mikrokontrolera....................................... 6

2.1.2. I/O portovi..................................................................... 6

2.1.3. USART modul............................................................... 7

Prilog - Softverske funkcije za upotrebu USART modula..... 8

2.2. Senzor DS1820.......................................................................... 10

2.2.1. Blok dijagram DS1820................................................... 11

2.2.2. Primenjeni postupak za merenje temperature............. 12

2.2.3. One wire protokol......................................................... 13

2.3. LCD modul................................................................................. 15

2.4. Serijski port................................................................................ 17

2.5. Max232, kolo za prilagođavanje RS232 i TTL nivoa................... 19

2.6. Shema uređaja........................................................................... 20

4.Software.................................................................................................. 21

4.1. Osnovni algoritam...................................................................... 22

5.Zaključak.................................................................................................. 23

6.Literatura................................................................................................. 23

Page 3: Teperaturni regulator

3

1.Projektni zadatak

Predmet ovog rada je razvoj uređaja koji de omoguditi automatsku kontrolu temperature u željenom objektu, tj. prostoriji. Uređaj je nazvan temperaturni regulator. Ovaj uređaj je sposoban da potpuno samostalno prati i reguliše temperaturu. Regulacija je ON/OFF tipa. Uređaj ima LCD ekran preko kojeg se prikazuju svi važni parametri. Ovi parametri se takođe mogu pratiti i podešavati putem računara preko RS232 komunikacije. Temperaturni regulator može da radi u kombinaciji sa PC računarom, ali je takođe sposoban da radi samostalno. Mogude je i povezivanje sa industrijskim PLC-om. U tom slučaju je izbegnuta direktna veza između ovog regulatora i grejača, ved se signal sa releja vodi na ulaz PLC-a. Ovom kombinacijom moguda je regulacija temperature u sistemima koji ne koriste električnu energiju za stvaranje toplote. Poseduje 4 tastera za podešavanje željene temperature i histerezisa. Dva tastera služe za ulazak i izlazak iz menija, dok su preostala dva tastera za unos željenih vrednosti.

Najveda vrednost koja se može zadati je 120°C, a najmanja 0°C. Prikaz temperature je sa

preciznošdu od ±0,5°C. Najveda vrednost histerezisa koja se može zadati je 3°C, a najmanja 0°C.

Podešene vrednosti se automatski čuvaju u internoj EEPROM memoriji mikrokontrolera, tako da se u slučaju resetovanja Ili nestanka struje, podešavanja nede izgubiti. Temperaturni regulator je projektovan tako da stalno vrši merenje temperature i prikazuje izmerenu vrednost na LCD ekranu i šalje izmerene vrednosti putem RS232 komunikacije. Izmerene vrednosti upoređuje sa zadatim vrednostima i na osnovu rezultata donosi odluku o uključivanju ili isključivanju grejača. Grejač je galvanski odvojen od upravljačkog dela i njegovo uključenje se vrši putem releja. Uređaj se sastoji iz hardvera koji je eksperimentalno verifikovan, softvera za mikrokontroler koji je napisan u C-u i namenskog softvera za PC koji je napisan u Visual Basic-u i služi kao M2M (Man To Machine – Machine To Man) interfejs.

1.1. Blok shema uređaja

Napajanje

grejača

TX PC

RX PC

Kolo za

prilagođenje

naponskih nivoa

RS232 - TTL

TX

RX

Napajanje regulatora

PIC

16F877A

Grejač

DS 1820

LCD

Page 4: Teperaturni regulator

4

1.2. Uvod u On/Off kontrolu

Kada je ulazna vrednost manja od zadate vrednosti, izlaz je uključen i grejač de biti

priključen na napajanje. Kada vrednost temperature ode preko zadate vrednosti, izlazni napon

je nula i gasi se grejač. Ovim metodom veličina je kontrolisana sa dve vrednosti (0 i 100%). Zbog

toga se ON/OFF metod upravljanja često naziva kao “two-position control action”. Ukoliko se

izlazni relej uključuje i isključuje u jednoj zadatoj tački, može dodi do treperenja izlaza, usled

čega kontrolni sistem postaje podložen uticaju smetnji. Iz ovog razloga se na izlazu dodaje

histerezis između ON i OFF stanja. Ovakav histerezis se naziva „korektivna osetljivost“

(adjustment sensitivity) ili „dead band zone“ ili „insensitive zone“. Veda korektivna osetljivost

je potrebna kod uređaja kao što su vazdušni kompresori i frižideri, gde je neophodno izbedi

čestu ON/OFF operaciju.

Sa slike se može primetiti da nakon isključenja grejača, temperatura i dalje raste, sve dok se

energija grejača ne preda procesu. Posle toga temperatura de početi da opada sve dok ne

postane manja od postavljene vrednosti. Kada temperatura opadne ispod postavljene, izlaz de

se ponovo uključiti.Grejač de se ponovo uključiti, ali je potrebno neko vreme dok procesna

vrednost ne počne da se povedava. Potrebno je da grejač ponovo preda energiju procesu.

Temperatura de ponovo rasti sve dok se ne poveda iznad postavljene vrednosti. Tada de se izlaz

ponovo isključiti. Sve dok temperatura ne opadne ispod postavljene vrednosti, kada se izlaz

opet uključuje (ON). Ovo “ON i OFF” uključivanje/isključivanje se nastavlja sve vreme, oko

postavljene temperature. Posle “prebacivanja” i “podbacivanja” proces se “stabilizuje” i

“osciluje” oko postavljene vrednosti. Ovo se naziva “lov”. Kada je grejač “korektno

dimenzionisan” (ne prevelike snage) “lov“ de biti ograničen, a odstupanje od postavljene

vrednosti bide prihvatljivo za odgovarajudu aplikaciju.

Page 5: Teperaturni regulator

5

2.Hardware

Hijerarhijski gledano uređaj se može podeliti u 5 funkcionalnih celina:

kolo za prilagođenje naponskih nivoa RS232 na TTL

temperaturni senzor DS1820

mikrokontroler PIC 16F877A

LCD modul

Relejni izlaz

2.1. Mikrokontroler PIC 16F877A Jedan od novijih proizvoda kompanije Microchip je PIC 16F877A i u njega je ugrađeno sve što poseduju savremeni mikrokontroleri. Zbog svojih velikih mogudnosti i lake nabavke, on predstavlja idealan izbor u primenama kao što su: kontrola različitih procesa u industriji, upravljanje mašinama i uređajima, merenje različitih veličina itd. Spisak koji sledi predstavlja samo kratak pregled njegovih karakteristika. RISC arhitektura:

-potrebno je poznavati samo 35 različitih instrukcija. -sve instrukcije osim instrukcija grananja se izvršavaju za isto vreme.

Radna frekvencija 0 - 20MHz Ugrađen interni oscilator Napon napajanja 2.0 - 5.5V

-potrošnja: 220µA (2.0V, 4MHz) 11µA (2.0V, 32kHz) 50nA (stand-by )

Mod smanjene potrošnje - Sleep mode

Detekcija smetnji u napajanju 33 I/O linije:

-moguda je direktna pobuda LED dioda -softversko omogudavanje interapta pri promeni stanja na pinovima -softversko uključivanje pull-up otpornika

8k ROM memorije u FLASH tehnologiji: -čip je mogude reprogramirati i do 100.000 puta!

Opcija In-Circuit Serial Programming:

- čip je mogude programirati i kada je ved ugrađen u finalni uređaj.

256 bajtova EEPROM memorije: - podaci se mogu upisati više od 1.000.000 puta

368 bajtova RAM memorije Ugrađen 8-kanalni A/D konvertor

- 10-bitna rezolucija

3 nezavisna tajmera/brojača Ugrađen watchdog tajmer Ugrađen modul analognog

komparatora: - 2 analogna komparatora - ugrađen fiksni izvor referentnog napona 0.6V - programski podesiv izvor referentnog napona

Ugrađen PWM modul USART modul za serijsku vezu

- RS485, RS232 -automatska detekcija brzine.

Sinhroni serijski port MSSP: -podržava SPI i I2C način rada

Page 6: Teperaturni regulator

6

2.1.1. Pin dijagram mikrokontrolera PIC 16F877A

2.1.2 I/O portovi Jedna od najvažnijih osobina svakog mikrokontrolera je broj ulazno/izlaznih pinova koji ga povezuju sa okruženjem. U ovom slučaju, korisniku na raspolaganju stoji 33 takve linije što je sasvim dovoljno za vedinu primena. Da bi se olakšao rad sa unutrašnjom 8-bitnom organizacijom mikrokontrolera PIC 16F877A, svi ovi vodovi su svrstani po principu registara u 5 tzv. portova, koji nose oznake PORTA, PORTB, PORTC, PORTD i PORTE. PORTB, PORTC i PORTD su osmopinski, dok PORTA ima 5 pinova, a PORTE 3 pina. Zbog uštede u prostoru, mnoge I/O linije imaju dvostruku ili trostruku namenu. U slučaju da se koristi neka od ovih alternativnih uloga, odgovarajudi pin na kudištu se ne može koristiti u isto vreme kao univerzalni ulaz/izlaz. Svim portovima se upravlja pomodu 2 registra, a to su TRISx i PORTx, gde umesto x stoji oznaka porta. Registar TRISx je Data Direction Register i koristi se za određivanje smera podataka, tj. služi za određivanje da li de port biti ulazni ili izlazni. Mogude je pojedinačno definisanje smera za svaki bit porta. Ovaj registar je osmobitni i svaki bit u ovom registru odeređuje koji de pin biti ulazni, a koji izlazni. Npr. ako je potrebno da svi pinovi porta C budu ulazni, onda je potrebno napisati TRISC=0b11111111 ili TRISC=0xFF. Ako se određeni bit podesi na nulu, tada je odgovarajudi pin definisan kao izlaz. Svi pinovi su izlazni kada je TRISC=0x00. Registar PORTx je registar podataka. Ako je prethodno podešeno da su pinovi izlazni i ako se upiše neka vrednost u PORTx, promena se odmah preslikava na izlazu. Registar PORTx se može koristiti i za očitavanje stanja porta, tj. stanje porta se može očitati i dodeliti nekoj promenljvoj. Npr. stanje=PORTB. Na ovaj način se vrednost sa porta B smešta u promenljivu stanje.Očitavanje porta je mogude vršiti bez obzira da li je definisan kao ulaz ili izlaz.

Page 7: Teperaturni regulator

7

2.1.3. Modul serijske veze USART

Universal Asynchronous Receiver Transmitter (USART) je komunikacioni interfejs. Kao što se ved

iz samog naziva vidi, pored toga što koristi taktni signal za sinhronizaciju, ovaj modul može da

ostvari i asinhronu vezu što ga čini nezamenljivim u nekim situacijama. Na primer, u slučaju da je

otežano ili nemogude ostvariti posebne kanale za prenos takta i podataka (npr: daljinsko

upravljanje radio vezom, infracrvenim zracima itd.) USART veza se namede kao očigledno

rešenje.

Karakteristike USART sistema koji je ugrađen u ovaj mikrokontroler su sledede:

Asinhroni prijem i predaja su Full-duplex tipa.

Svaki podatak se sastoji iz 8 ili 9 bitova.

Moguda je detekcija greške u primljenom podatku.

Kada radi u sinhronom modu (master ili slave), komunikacija je Half-duplex tipa.

U ovom slučaju korišden je USART u Asinhronom modu. U toku razmene podataka, koristi se

standardni NRZ (Not Return Zero) format. U komunikaciji se ne koristi signal takta, dok je format

podataka koji se šalje ili prima vrlo jednostavan.

Ukratko, svaki podatak se šalje na slededi način:

U stanju mirovanja na liniji za prenos je visok logički nivo (1).

Prvi bit je uvek logička nula. Time se označava početak prenosa podataka(START bit).

Svaki podatak se sastoji iz 8 bitova (prvo se prenosi LSB bit).

Slanje svakog podatka se završava logičkom jedinicom (STOP bit).

Blok dijagram Asinhronog Usart predajnika:

Page 8: Teperaturni regulator

8

Blok dijagram Asinhronog Usart prijemnika:

Za potrebe ovog projekta korišden je MikroC kompajler za PIC mikrokontrolere koji u sebi ima

integrisanu biblioteku za upotrebu USART modula. U okviru ove biblioteke nalaze se naredbe za

inicijalizaciju i upotrebu pic USART hardvera.

Prilog: Naredbe za upotrebu Usart hardverskog modula

Prototip funkcije void Usart_Init(const unsigned long baud_rate);

Vraća Ništa

Opis Inicijalizuje Usart harderski modul sa željenim baud rate-om. U slučaju da je

specificiran pogrešan Baud rate, kompajler de prijaviti grešku

Zahteva PIC mikrokontroler sa hardverskim usart modulom. Usart_Init mora biti

pozvan pre korišdenja ostalih usart naredbi

Primer Ovo de inicijalizovati usart hardver i uspostaviti komunikaciju na 2400bps

Usart_Init(2400);

Page 9: Teperaturni regulator

9

Protoptip funkcije unsigned short Usart_Data_Ready(void);

Vraća Funkcija vrada 1 ako je podatak spreman i 0 ako nema podatka.

Opis Koristi se za proveru da li je podatak u ulaznom baferu spreman za čitanje

Zahteva USART hardverski modul mora biti inicijalizovan i komunikacija uspostavljena pre pozivanja ove funkcije. Pogledati „Usart_Init“.

Primer Ako je podatak spreman pročitaj ga: int receive; ... if (Usart_Data_Ready()) receive = Usart_Read;

Protoptip funkcije unsigned short Usart_Read(void);

Vraća Funkcija vrada primljeni bajt ili 0 ako nema primljenih podataka

Opis Funkcija prihvata bajt putem Usart-a. Prethodno koristiti Usart_Data_Ready za proveru da li je podatak spreman za čitanje

Zahteva USART hardverski modul mora biti inicijalizovan i komunikacija uspostavljena pre pozivanja ove funkcije. Pogledati „Usart_Init“.

Primer Ako je podatak spreman pročitaj ga: int receive; ... if (Usart_Data_Ready()) receive = Usart_Read;

Protoptip funkcije void Usart_Write(unsigned short data);

Vraća Ništa

Opis Funkcija šalje bajt (data) putem Usart-a

Zahteva USART hardverski modul mora biti inicijalizovan i komunikacija uspostavljena pre pozivanja ove funkcije. Pogledati „Usart_Init“.

Primer int chunk = 0x1E; Usart_Write(chunk); /* posalji chunk putem USART -a*/

Page 10: Teperaturni regulator

10

2.2. Temperaturni senzor DS1820

Jedinstveni 1-Wire® interfejs, zahteva samo 1 pin za

komunikaciju.

Digitalni ulaz/izlaz

Svaki uređaj ima jedinstveni 64-bitni serijski kod smešten u

internoj ROM memoriji.

Ne zahteva eksterne komponente

Može biti napajan preko <data> linije. Napon napajanja od 3 do

5.5V

Merenje temperature od -55:C do 125:C

±0.5:C tačnost u opsegu od -10 do +85:C

9 –bitna rezolucija

Vreme konverzije max 750ms

Primena u aplikacijama koje uključuju termostatsku kontrolu, u

industrijskim sistemima, potrošačkim proizvodima,

termometrima ili bilo kom termalno osetljivom sistemu.

DS1820, digitalni termometar obezbeđuje 9-bitno merenje temperature i poseduje

alarmnu funkciju sa korisnički – programabilnom gornjom (upper) i donjom (lower) okidnom

granicom (trigger point). DS1820 komunicira putem 1-wire magistrale, koja po definiciji zahteva

samo jednu data liniju (i masu ) za komunikaciju sa centralnim mikroprocesorom. DS1820 može

biti napajan direktno sa data linije (parazitno napajanje), eliminišudi na taj način potrebu za

eksternim napajanjem. Svaki DS1820 termometar poseduje jedinstveni 64-bitni serijski kod, što

omogudava povezivanje više DS1820 uređaja na istu 1-wire magistralu.

DS1820 koristi Dallas-ov ekskluzivni 1-wire bus protokol koji implementira komunikaciju

putem magistrale koja koristi samo jedan kontrolni signal. Kontrolna linija zahteva slab pull-up

otpornik, jer su svi uređaji povezani na magistralu preko 3-state ili Open-drain porta (DQ pin u

slučaju DS1820). U sistemu sa ovom magistralom, mikroprocesor identifikuje i aresira uređaje

putem jedinstvenog 64-bitnog serijskog koda. Zbog toga što svaki uređaj ima jedinstveni kod,

broj uređaja koji može biti adresiran na ovoj magistrali je virtuelno neograničen.

Page 11: Teperaturni regulator

11

2.2.1. Blok dijagram digitalnog termometra DS1820

64-bitni ROM, čuva jedinstven serijski kod. Strachpad memorija se sastoji od dvobajtnog

temperaturog registra u koji se smešta vrednost izmerene temperature, tj. digitalni izlaz sa

temperaturnog senzora. Strachpad, takođe, obezbeđuje pristup jednobajtom gornjem (upper) i

donjem (lower) alarm trigger registru (TH i TL ). TH i TL su EEPROM tipa, tako da de upisane

vrednosti ostati sačuvane i nakon nestanka napona napajanja.

Prva dva bajta u Strachpad memoriji se koriste za smeštanje vrednosti izmerene

temperature, kada kolo meri temperaturu u koracima po 0.5:C. Sve dok se ne pozove komanda

za merenje temperature sadržaj prvog bajta je AAh, a drugog 00h što odgovara temperaturi od

85:C. Sadržaj LS bajta i MS bajta prikazan je u slededoj tabeli.

Page 12: Teperaturni regulator

12

Na osnovu sadržaja ova dva bajta primeduje se da niži bajt (LSB) sadrži očitanu

temperaturu, pri čemu bit najniže težine predstavlja vrednost iza decimalnog mesta. Bajt više

težine sadrži sve nule ili jedinice i određuje da li je temperatura pozitivna ili negativna. Ako su

sve nule, temperatura je pozitivna, a ako su sve jedinice, onda je negativna. U tabeli ispod je

dato nekoliko primera očitane temperature.

*Power-on reset vrednost temperaturnog registra je +85:C

2.2.2.Primenjeni postupak za merenje temperature

*Mod

Podatak

Opis naredbe

TX Reset Mikrokontroler resetuje DS1820.

TX 0xCC Mikrokontroler šalje „Skip Rom“ komandu.

TX 0x44 Mikrokontroler šalje „Convert T“ naredbu.

TX Reset Mikrokontroler resetuje DS1820.

TX 0xCC Mikrokontroler šalje „Skip Rom“ komandu.

TX 0xBE Mikrokontroler šalje „Read StratchPad“ komandu.

RX 9 bajtova DS 1820 šalje sadržaj Stratchpad memorije

RX Read Mikrokontroler čita 1.bajt sa senzora (temperatura)

RX Read Mikrokontroler čita 2.bajt sa senzora (znak) *Mod rada mikrokontrolera u toku serijske komunikacije: TX – slanje podatka, RX - prijem

Page 13: Teperaturni regulator

13

2.2.3. One Wire protokol

Protokol za serijsku komunikaciju 1-wire predstavlja vlasništvo firme „Dallas Semiconductor“.

Ovo je još jedan od protokola orijentisanih primeni, koji ne vode računa o funkcijama

komunikacije, ved on koordinira određenim aktivnostima koje se odigravaju između dva uređaja

koji međusobno komuniciraju. Predviđen je za ostvarivanje polu dupleks (half duplex)

bidirekcione serijske komunikacije između master uređaja i jednog ili više slave uređaja u mreži.

Pored toga što je master i slave uređaju ista komunikaciona linija, ta linija ima još jednu dodatnu

ulogu, a to je da služi kao i linija za napajanje slave komponenata. Pošto je ista linija iskorišdena i

za komunikaciju i napajanje komponenata, bilo je neophodno obezbediti interno napajanje slave

komponenata.

1-Wire koristi standardne CMOS/TTL logičke nivoe, gde logičku nulu predstavlja naponski nivo

manji od 0.8V, a nivo logičke jedinice svaki napon vedi od 2.2V. Da bi se navedeni nivoi mogli

postidi neophodno je obezbediti napajanje komponenata koje treba da bude iz opsega od 2.8V

do 6V. Radni opseg temperatura u kojima 1-wire mreža može ispravno da radi je od -40:C do

+80:C.

Komunikacija između master i 1-wire slave uređaja sastoji se iz 4 slučaja: pisanje 1 (write 1),

pisanje 0 (write 0), čitanje bita (read bit) i Reset 1-wire komponente. Digitalni podaci 0 i 1

definisani su vremenskim intervalima trajanja niskog naponskog nivoa na magistrali.

Da bi se ostvarilo slanje logičke jedinice, tj ostvario slučaj „Pisanje 1“, potrebno je obezbediti

trajanje niskog logičkog nivoa na magistrali krade od 15µs, dok je za ostvarivanje slučaja „pisanje

0“ neophodno obezbediti trajanje niskog logičkog nivoa na magistrali najmanje 60µs, a ne vede

od 120µs. Gornja granica je određena potrebnim vremenskim intervalom niskog logičkog nivoa

za Reset 1-Wire komponente koji iznosi 480µs, ali i pauza od 120µs može biti dovoljna da izazove

Reset komponente.

Početak komunikacije u okviru 1-Wire mreže počinje sekvencom inicijalizacije. Reset impuls u

trajanju od 480µs predstavlja početak sekvence inicijalizacije. Slanje Reset impulsa od strane

master uređaja može se shvatiti kao poziv pitanje, jer nakon „pitanja“ sledi i obavezan „odgovor“

Page 14: Teperaturni regulator

14

slave komponenata u obliku impulsa prisutnosti, koji predstavlja impuls niskog logičkog nivoa na

magistrali trajanja od 60µs do 240µs. Vremenski dijagram prikazan je na slici ispod.

Komunikacija se odvija slanjem bit po bit. Kada se ostvari slanje jednog bita, do slanja slededeg,

neophodno je obezbediti „oporavak“ magistrale i pripremu komponente za prijem novog bita.

Vreme oporavka ne sme biti manje od 1µs, što znači da posle slanja jednog bita, magistrala mora

biti na visokom nivou u trajanju vremena oporavka.

Da bi došlo do očitavanja bita iz 1-Wire komponente, potrebno je da master obezbedi nizak

logički nivo na magistrali u trajanju od najmanje 1µs i zatim vrati visoki logički nivo. Tada je

magistrala prepuštena 1-Wire komponenti koja je dobila komandu da posalje bit. Ukoliko de biti

poslata logička jedinica, tada se nivo magistrale nede menjati i ostade na visokom nivou. U

slučaju da de biti poslata logička 0, tada de nivo magistrale od strane slave 1-Wire komponente

biti oboren na nizak logički nivo u trajanju od 0µs do 45µs, pri čemu je nominalna vrednost 15µs.

Vremenski dijagram prikazan je na slededoj slici.

1-Wire protokol koriste komponente određene namene, a skup komponenata je ograničen,

pogotovo što je protokol vlasništvo jedne firme. S obzirom na to, protokol mogu da koriste samo

komponente tog proizvođača. Na sredu korisnika, proizvođač je pripremio poprilično veliki skup

komponenata sa više namena. Opširnija literatura vezana za 1-Wire protokol, kao i literatura

koja je korišdena za izradu ovog projekta može se pronadi na sajtu firme MAXIM, www.maxim-

ic.com.

Page 15: Teperaturni regulator

15

2.3. LCD modul

Ova komponenta je specijalizovana za rad sa

mikrokontrolerom, što znači da ne može biti

aktivirana klasičnim integrisanim kolima. Služi za

ispisivanje različitih poruka na minijaturnom ekranu

od tečnog kristala. Ovde je opisan model koji se zbog

niske cene i velikih mogudnosti najčešde koristi u

praksi. Osnovu ovog LCD modula čini kontroler

HD44780, proizvođača Hitachi.

Može da ispisuje poruke u dva reda sa po 16 karaktera. Prikazuje sva slova abecede, grčka slova,

znake interpunkcije, matematičke simbole itd. Pored toga mogude je prikazati i simbole koje

korisnik sam „isprojektuje“. U korisne sitnice spada i automatsko pomeranje poruke preko

ekrana (šiftovanje u levo ili desno), pojavljivanje kursora, kao i pozadinsko osvetljenje.

Izvodi na kućištu LCD-a

Uz jednu od ivica štampane ploče se nalaze izvodi za povezivanje sa mikrokontrolerom. Ima ih 14

(odnosno 16 ako postoji pozadinsko osvetljenje) i obeleženi su brojevima. Njihova uloga je

opisana u slededoj tabeli:

Uloga Broj pina

Naziv Logičko stanje Opis

Masa 1 Vss - 0V

Napajanje 2 Vdd - +5V

Kontrast 3 Vee - 0 – Vdd

Ko

ntr

ola

rad

a 4 RS 0 D0 – D7 se tumače kao komande

1 D0 – D7 se tumače kao podaci

5 R/W 0 Upis podataka (iz kontrolera u LCD)

1 Čitanje podataka (iz LCD-a u kontroler)

6 E

0 Onemoguden pristup LCD-u

1 Normalan rad

Iz 1 u 0 Podaci/komande se prenose u LCD

Po

dac

i/ko

man

de

7 D0 0/1 Bit 0 LSB

8 D1 0/1 Bit 1

9 D2 0/1 Bit 2

10 D3 0/1 Bit 3

11 D4 0/1 Bit 4

12 D5 0/1 Bit 5

13 D6 0/1 Bit 6

14 D7 0/1 Bit 7 MSB

Page 16: Teperaturni regulator

16

LCD ekran se sastoji iz dva reda sa po 16 polja u kojima se ispisuju karakteri, dok se svako od ovih

polja sastoji od matrice 5 x 8 piksela.

Kontrast na ekranu zavisi od napona napajanja i od toga da li se poruke ispisuju u jednom ili dva

reda. Zbog toga se na izvod označen sa Vee priključuje promenljivi napon 0 – Vdd (obično se za

ovo koristi trimer potenciometar). Kod nekih verzija displeja, ispod LCD ekrana je ugrađeno

pozadinsko osvetljenje (plave ili zelene LED diode). Ako se koristi u toku rada, redno sa jednim

od izvoda treba povezati otpornik za ograničenje struje.

Povezivanje LCD-a

U ovom slučaju, zbog uštede I/O linija mikrokontrolera, za komunikaciju se koriste samo viša

4 bita (D4 - D7) dok se ostali mogu ostaviti nepovezani, odnosno povezati na masu. Pri ovakvom

načinu rada, svaki podatak se LCD-u šalje u dva koraka: prvo se šalju viša 4 bita, a zatim niža 4

bita. Potrebno je inicijalizovati LCD za rad u 4-bitnom modu i nakon toga on de pravilno

protumačiti svaki podatak koji primi.

Na slici iznad je prikazan način povezivanja LCD modula za rad u 4-bitnom modu sa trimerom

potenciometrom za podešavanje kontrasta na ekranu.

Ako se prilikom prvog uključenja displeja na ekranu ne pojavi nijedan karakter ili su sva polja

zatamnjena, prvo treba proveriti da li je pravilno podešen potenciometar za kontrolu kontrasta.

Za potrebe ovog projekta upotrebljen je MikroC kompajler koji u sebi ima integrisane softverske

biblioteke za rad sa ovim tipom LCD modula. Više detalja o ovome može se pronadi u poglavlju

Softver.

Page 17: Teperaturni regulator

17

2.4. Serijski port

Serijski port PC računara se koristi za serijski prenos podataka (bit po bit) i samim tim je

sporiji od paralelnog porta. RS -232 standard nastao je daleke 1960. godine. Standard se stalno

dopunjavao i poslednja revizija standarda potiče iz 1991. godine i nosi naziv RS232-E.

Električne osobine serijskog porta (prema standardu RS232-C iz 1969. god.) su sledede:

Logička nula „SPACE“ nalazi se u opsegu napona +3 do +25V

Logička jedinica „Mark“ je u opsegu -3 do -25V

Oblast između -3 do +3V nije definisana

Struja kola ne sme predi 500mA.

Oblik signala prema RS232 standardu prikazan je na slici ispod.

Kada nema slanja podataka, tj. linija je slobodna, označeno je MARK naponom. Prenos počinje

kada linija pređe u SPACE stanje, što predstavlja START bit. Iza start bita dolaze bitovi podataka, i

to tako da je jedinica predstavljena negativnim naponom, a nula pozitivnim. Ovo je najčešde u

suprotnosti sa ustaljenom logikom gde je +5V logička jedinica, a 0V logička nula. Problem rešava

prijemno kolo konvertujudi napone tako da su prilagođeni naponima interefejsa koji se koristi.

Protokol za prenos se može izvesti na dva načina: hardverski i softverski. Za realizaciju

hardverskog protokola neophodne su RTS, CTS i linija za prenos bitova poruke. Softverska

realizacija koristi umesto RTS i CTS linija ASCII znakove XON i XOFF (nazivaju se DC1 i DC3), zbog

čega je umesto tri dovoljna samo jedna linija. Kada se primenjuje ovaj protokol prijemnici i na

predaji i na prijemu proveravaju svaki prispeli znak radi utvrđivanja da li je to XON, XOFF ili

karakter. Strana koja ne može da primi karakter, kao indikator tog stanja drugoj strani šalje XOFF

karakter. Ovaj način prenosa u zavisnosti od odabrane brzine, može da se koristi do nekoliko

desetina metara rastojanja između predajnika i prijemnika.

Bitovi podataka (data bits)

START

bit

Parity

bit

STOP bitovi

Period trajanja

1 bita

+V SPACE

-V MARK

Page 18: Teperaturni regulator

18

U ovom slučaju korišden je D-SUB 9 pinski konektor. Raspored pinova na konektoru i glavni

signali dati su u slededoj tabeli.

D-SUB 9 Signal Opis signala

Pin 3 TxD Transmit Data

Pin 2 RxD Receive Data

Pin 7 RTS Request To Send

Pin 8 CTS Clear To Send

Pin 6 DSR Data Set Ready

Pin 5 SG Signal Ground

Pin 1 CD Carrier Detect

Pin 4 DTR Data Terminal Ready

Pin 9 RI Ring indikator

Page 19: Teperaturni regulator

19

2.5. MAX 232 – kolo za prilagođavanje RS232 i TTL nivoa

Max 232 je dvostruki drajver/prijemnik koji sadrži

kondenzatorski generator napona za obezbeđivanje

EIA232 nivoa iz jednostranog napajanja od 5V. Oba

prijemnika konvertuju EIA232 ulazne nivoe u TTL/CMOS

nivoe. Ovi prijemnici tipično imaju prag provođenja od

1.3V, histerezis od 0.5V i mogu da prihvate ulazne signale

od ±30V. Oba drajvera konvertuju ulazne TTL/CMOS u

EIA232 signale. Na slikama ispod dat je prikaz unutrašnje

strukture i tipična primena MAX 232 integrisanog kola.

Pin dijagram integrisanog

kola Max232

Unutrašnjost Max 232

Tipična primena kola Max 232

Page 20: Teperaturni regulator

20

2.6. Shema uređaja

Page 21: Teperaturni regulator

21

4. Software

4.1. Osnovni algoritam programa upisanog u mikrokontroler

Da Da

Ne

Da

Greška

Ne

Ne

Da

Početak

Učitavanje sačuvanih vrednosti zadate

temperature i histerezisa iz EEPROM-a

Ispis vrednosti podešene

temperature na LCD-u

Taster pritisnut

ili detektovan

podatak na

USART-u

Izmeri temperaturu i

prikaži na LCD-u

Izmerena temp

je manja od

zadate temp?

Uključi grejač

Grejač isključen

Pošalji

podatke na

PC

Taster

pritisnut?

Sacuvaj unete

podatke u eeprom

Sacuvaj primljene

podatke u eeprom

Usart?

Page 22: Teperaturni regulator

22

4.1. Software za PC

Software za kontrolu temperaturnog regulatora putem PC-a je pisan u Visual Basic-u i

funkcioniše isključivo pod Windows operativnim sistemom. Upotrebom ovog softwera mogude

je na monitoru PC-a prikazivati merenu temperaturu. Ovo je važna osobina u slučaju da je

potrebno merenje temperature sa određene udaljenosti ili iz druge prostorije. Ovaj software,

takođe, omogudava podešavanje željene temperature i histerezisa upotrebom PC-a.

Izgled korisničkog interfejsa prikazan je na slici ispod.

Pomodu korisničkog interfejsa prati se temperatura željenog objekta kao i stanje grejača koje je

prikazano u donjem levom uglu. Stanje grejača može biti ON – uključen ili OFF - isključen.

U gornjem levom uglu korisničkog interfejsa nalazi se meni bar u kojem su opcije za podešavanje

programa i parametara temperaturnog regulatora. Njihove funkcije opisane su u okviru meni bar

opcije „Pomod“.

Kompletan izvorni kod mikrokontrolerskog programa i PC programa dat je u prilogu.

Page 23: Teperaturni regulator

23

5. Zaključak

Mogudnosti primene ovog projekta su zaista velike. Niska cena izrade čini ga lako dostupnim,

a brojne opcije idealnim izborom za određene aplikacije. Može se primenjivati u električnim

pedima, u mašinama za sušenje, za održavanje temperature u prostorijama, u aplikacijama gde je

potrebno pradenje temperature putem PC-a, kao i merenje sa određene udaljenosti ili iz druge

prostorije. Promenom senzora i malom izmenom software-a, može se povedati merni i

regulacioni opseg. Izmenom namenskog softvera za PC, mogudnosti se još više povedavaju. U

tom slučaju mogude je dodati pradenje temperature i čuvanje u bazi podataka, slanje putem

TCP/IP komunikacije na server ili bilo koji drugi računar. Mogudnosti primene i nadogradnje

ograničene su isključivo granicama ljudske mašte.

6. Literatura

DS1820 data sheet, Maxim Dallas semiconductor

PIC 16F87xA data sheet, Microchip

EasyPic4 User's manual, MikroElektronika

MikroC language reference, MikroElektronika

PC interfejsi, Vojo Milanovid

Visual Basic 6.0, Peter Norton

Max 232 data sheet, Maxim Dallas semiconductor