teperaturni regulator
DESCRIPTION
sa lcd prikazomTRANSCRIPT
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
]
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
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
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.
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
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.
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:
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);
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*/
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.
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.
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
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“
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.
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
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.
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
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
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
20
2.6. Shema uređaja
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?
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.
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