petar vlahek seminarski rad - spvp...

24
Petar Vlahek 0036428638 Tekst je namjenjen studentima elektronike i komunikacijskh tehnologija Potrebno je znanje elektronike i arhitekture računala Opisan je sustav za automatsko upravljanje temperaturom u kući SEMINARSKI RAD - SPVP 18. lipanj 2010

Upload: others

Post on 05-Nov-2019

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Petar Vlahek

0036428638

Tekst je namjenjen studentima

elektronike i komunikacijskh

tehnologija

Potrebno je znanje elektronike i

arhitekture računala

Opisan je sustav za automatsko

upravljanje temperaturom u kući

SEMINARSKI RAD - SPVP

18. lipanj 2010

Page 2: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

2

Sažetak

Ovaj rad opisuje elektronsku realizaciju sustava „Sustav za grijanje i hlaĎenje zraka“ koji je jedan od mnogobrojnih sustava inteligentne kuće.

Sustav omogućuje ukućanima da u svakoj sobi podese temperaturu po vlastitim željama u odnosu na vanjsku temperaturu. Temperaturni senzori

nalaze se izvan i unutar kuće, trenutna vanjska i unutrašnja temperatura ispisuje se na LCD-u, paljenje/gašenje klima ureĎaja kontrolira

mikrokontroler putem IR komunikacije, a korisnik željenu temperaturu podešava preko komunikacijskog sustava inteligentne kuće.

Sadržaj

1. UVOD ............................................................................................................ 3

2. OPIS SUSTAVA ............................................................................................... 4

2.1. Temperaturni senzori ................................................................................ 4

2.2. LCD ........................................................................................................ 4

2.3. Infracrveni odašiljač ................................................................................. 4

3. TISKANE PLOČICE .......................................................................................... 8

4. ZAKLJUČAK ...................................................................................................13

5. LITERATURA..................................................................................................13

6. POJMOVNIK ..................................................................................................14

DODATAK A: OPIS TEMPERATURNOG SENZORA .......................................................15

DODATAK B: OPIS LCD-A ......................................................................................18

DODATAK C: PROGRAMSKI KOD ............................................................................21

Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi za praćenje i voĎenje procesa“ na Zavodu za elektroničke sustave i obradbu informacija, Fakulteta elektrotehnike i računarstva, Sveučilišta u Zagrebu. Sadržaj ovog rada može se slobodno koristiti, umnožavati i distribuirati djelomično ili u cijelosti, uz uvjet da je uvijek naveden izvor dokumenta i autor, te da se time ne ostvaruje materijalna korist, a rezultirajuće djelo daje na korištenje pod istim ili sličnim ovakvim uvjetima.

Page 3: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

3

1. Uvod

Sustav za grijanje i hlaĎenje zraka je jedan od mnogobrojnih sustava inteligentne kuće koji su meĎusobno povezani što znači da

meĎusobno komuniciraju i izmjenjuju podatke. Inteligentna kuća je kuća koja prikuplja razne informacije o samim ukućanima, uvjetima unutar i

izvan nje te na temelju njih pokušava život ukućana učiniti ugodnijim i jednostavnijim.

Sustav za grijanje i hlaĎenje omogučava automatsko reguliranje

temperature unutar cijele kuće ili pojedine prostorije. Jedina briga

ukućana je odabir željene temperature ili načina rada.

Sustav se sastoji od vanjskih i unutrašnjih temperaturnih senzora, LCD-a, mikrokontrolera, infracrvenog odašiljača i klima ureĎaja s

infracrvenim prijemnikom. Komunikacija od strane ukućana prema sustavu za grijanje i hlaĎenje zraka ovdje nije ostvarena, ali se može

povezati s komunikacijskim sučeljem putem Etherneta ili ZigBee-a .

Page 4: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

4

2. Opis sustava

Sustav za grijanje i hlaĎenje zraka sastoji se od pet cjelina:

Dva temperaturna senzora,

LCD-a,

Infracrvenog odašiljča,

Mikrokontrolera,

Klima ureĎaja.

2.1. Temperaturni senzori

Koriste se dva digitalna temperaturna senzora DS1820 tvrtke Dallas

Semiconductor koji na svojem izlazu daju gotovi 9-bitni podatak koji se direktno šalje na mikrokontroler. S mikrokontrolerom komuniciraju

pomoću 1-wire protokola koji koristi samo jednu liniju za prijenos podataka. Detaljan opis i princip rada senzora nalazi se u dodatku A.

Jedan temperaturni senzor mjeri temperaturu izvan kuće, a drugi

unutar nje. Na temelju vanjske i unutrašnje temperature mikrokontroler odlućuje hoće li se klima ureĎaj upaliti ili ugasiti. U ovom slučaju

mikrokontroler je isprogramiran da održava razliku izmeĎe unutrašnje i vanjske temperature na 4˚C.

2.2. LCD

Koristi se LCD GDM1602E tvrtke Xiamen Ocular. Ekran LCD-a sastoji se od dva reda, u svakom redu može se prikazati do 16 znakova. LCD

služi za prikaz trenutne vanjske i unutrašnje temperature zraka.

LCD koristi i sustav za kvalitetu zraka tako da se na lijevoj polovici nalaze podaci o temperaturi zraka, a na desnoj o kvaliteti zraka. Detaljan opis

LCD-a nalazi se u dodatku B.

2.3. Infracrveni odašiljač

Infracrveni odašiljač predstavlja obična infracrvena dioda preko koje

se šalju podaci o paljenju ili gašenju klima ureĎaja koji mora imati infracrveni prijemnik. IR dioda nije spojena direktno na digitalni izlaz

mikrokontrolera, nego je spojena preko NPN tranzistora koji predstavlja

Page 5: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

5

sklopku. To je napravljeno tako jer digitalni izlazi mikrokontrolera ponekad ne mogu dati dovoljno veliku izlaznu struju koja je potrebna da bi dioda

normalno radila.

Digitalni izlaz mikrokontrolera prvo se dovodi na serijski spojen otpornik od 100 Ohma, a on se spaja na bazu NPN tranzistora. Anoda

diode spojena je na napajanje od 5V, a katoda na kolektor tranzistora. Emiter je spojen na masu kako bi se zatvorio strujni krug.

Slika 1. Način spajanja infracrvene diode

Da bi se ostvarila komunikacija izmeĎu bilo koja dva ureĎaja, potrebno je znati koji se protokol koristi za komunikaciju. Postoji veliki

broj IR protokola, a najvažniji su SIRC (Sony), RC5 (Philips), JVC (JVC),

NRC17 (NOKIA).

Svi protokoli rade na temelju pulsno širinske modulacije. Emitiraju se pravokutni titraji signala najčešće na 38 kHz ili 40 kHz. Npr. SIRC

protokol koristi širinsku modulaciju na 40 kHz. Kod njega logičku jednicu predstavljaju pravokutni titraji u trajanje od 1.2 ms, a logičku nulu

pravokutni titraji od 0.6 ms, a izmeĎu svake logičke vrijednosti mora se nalaziti pauza koja traje 0.6 ms. SIRC protokol sastoji se od 12 bitova.

Slika 2. SIRC protokol

Page 6: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

6

U ovom slučaju potrebno je paliti i gasiti Samsung klima ureĎaj MH19VV1-12 s daljinskim upravljačem ARH-1362. Navedeni klima ureĎaj

ne koristi niti jedan od navedenih protokola. Kako bi se saznalo o kojem se protokolu radi, potrebno je snimiti signal koji odašilje daljinski

upravljač. To se može jednostavno napraviti pomoću fotodiode koja se direktno spoji na jedan od kanala digitalnog osciloskopa na kojem se može

snimiti odaslani signal sa daljinskog upravljača. Nakon snimanja potrebno je dekodirati primljen signal, tj. otkriti što predstavlja logičku jedinicu,

logičku nulu i početak naredbe (header).

Navedenom klima ureĎaju potrebno je poslati naredbu od 56 bitova ispred kojih je potrebno poslati startni signal koji se sastoji od

pravokutnog titrajnog signala u trajanju od 3 ms i pauze od 9 ms. Nakon

toga slijede bitovi naredbe, a na kraju stop bit koji je isti kao i logička jedinica. Naredbu je potrebno poslati tri puta da bi se prepoznala.

Modulacija se radi na 41 kHz. Logička jedinica sastoji se od pravokutnog titrajnog signala u trajanju od 0.5 ms i pauze od 1.5 ms, a logička nula od

pravokutnog signala u trajanju do 0.5 ms i pauze koja traje takoĎer 0.5 ms. Navedeni protokol najbliži je protokolu pod nazivom 8-SAMSUNG.

Njegove karakteristike navedene su u Tablici 1 i Slici 3.

Protokol kHz Start bit Podatkovni bitovi Stop bit

8-SAMSUNG 39.3 1 32 1 Tablica 1. Karakteristike 8-SAMSUNG protokola

Slika 3. 8-SAMSUNG protokol

Kompletan programski kod nalazi se u Dodatku C koji je popračen komentarima kako bi se lakše shvatio.

Page 7: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

7

Slika 4. Snimljeni signal sa daljinskog upravljača

na digitalnom osciloskopu

Slika 5. Snimljeni signal sa arduina

na digitalnom osciloskopu

Page 8: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

8

3. Tiskane pločice

Za sustav grijanja i hlaĎenja zraka napravljene su pločice za pojedine dijelove sustava u obliku malih modula kako bi se smanjio broj

žica i kako bi se pojedini dijelovi lakše postavljali na maketu kuće.

Postoji jedna glavna pločica na kojoj se nalaze vodovi napajanja, svi signalni vodovi koji idu na mikrokontroler i ženski konekotori na koje se

stavljaju pet manjih modula. Budući da je sustav za grijanje i hlaĎenje povezan sa sustavom za kvalitetu zraka, na glavnoj pločici nalaze se ulazi

i za taj sustav. Sustav za grijanje i hlaĎenje i sustav za kvalitetu zraka

koriste zajednički mikrokontroler.

Pločice koje se stavljaju na glavnu su:

Dvije iste pločice koje sadrže temperaturni senzor,

Dedna pločica s infracrvenom diodom,

Pločica s potenciometrom koji služi za podešavanje kontrasta na

LCD ekranu,

LCD ekran,

Jedna pločica za kontrolu zraka.

U sljedećim tablicama opisani su pojedini vodovi na tiskanim pločicama te kako se pojedine tiskane pločice spajaju na glavnu.

Page 9: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

9

Slika 6. Shema glavne tiskane pločice

Oznaka priključka

Značenje

Prema arduinu

X1 Vodovi za komunikaciju s mikrokontrolerom za temperaturne

senozre i infracrveni odašiljač

X2 Vodovi vezani sustav za kvalitetu zraka

X3 Vodovi LCD ekrana

X4 Napajanje +5V

Od modula prema glavnoj pločici

X5 Priključci LCD ekrana

X7 Priključci infracrvenog odašiljača

X8 Priključci 1. Temperaturnog senzora

X9 Priključci 2. Temperaturnog senzora

X10 Priključci potenciometra za namještanje kontrasta na LCD-u

Ostalo

R3 Pull-up otpornik prema +5 V potreban kod komunikacije s

temperaturnim senzorima

X6 Moguće je dovesti alternativni izvor napajanja za infracrveni odašiljač, pri odabiru se koriste kratkospojnici

Tablica 2. Opis priključaka i ostalih elemenata na glavnoj tiskanoj pločici

Page 10: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

10

LCD

Oznaka signala Značenje Arduino pin

DB3

Podatkovni signali

10

DB2 9

DB1 8

DB0 7

RS Signal za odabir registra 11

E Signal za omogućavanje operacija čitanja ili pisanja

12

R/W

Signal za odabir pisanja ili čitanja iz

memorije LCD-a, potrebno samo pisanje pa je spojen na masu

Spojen na masu

VKONT Podešava kontrast na LCD-u Nema

VCC +5 V 5V

GND 0 V Gnd Tablica 3. Opis i način spajanja signala LCD-a

Slika 7. Shema pločice za temperaturni senzor

Tiskana pločica za mjerenje temperature

Oznaka komponente Značenje

X12 Muški priključak, spaja se na X8 ili X9 na glavnoj

tiskanoj pločici

C1 Blokadni kondenzator, 100 nF

D1 Digitalni temperaturni senzor, DS1820

Page 11: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

11

Signali Značenje

DTEMP Digtalni signal sa temperaturnog senzora

VCC +5 V

GND 0 V Tablica 4. Opis i način spajanja signala temperaturnog senzora

Slika 8. Shema pločice infracrvenog odašiljača

Tiskana pločica infracrvenog odašiljača

Oznaka komponente Značenje

X13 Muški konektor, spaja se na X7 na glavnoj

pločici

R1 Otpornik, 100 Ω

V1 Infracrvena dioda

V2 Infracrvena dioda ili LED-ica (nije spojeno)

V3 NPN tranzistor

Signali Značenje

IR Signal s Arduina kojim se šalju pulsno

modulirani signali za paljenje klima ureĎaja

Vcc +5 V

Gnd 0 V Tablica 5. Opis i način spajanja signala infracrevnog odašiljača

Slika 9. Shema potenciometra za podešavanje kontrasta

Page 12: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

12

Tiskana pločica za podešavanje kontrasta na LCD-u

Oznaka komponente Značenje

X14 Muški konektor, spaja se na X10 na glavnoj pločici

R2 Potenciometar, 10 kΩ

Signali Značenje

VKONT Signal kojim se podešava kontrast, spojen na LCD

Vccc +5 V

Gnd 0 V Tablica 6. Opis i način spajanja signala potenciometra za podešavanje kontrasta

Slika 10. Prikaz cijelog sustava za grijanje i hlađenje zraka

Page 13: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

13

4. Zaključak

Opisanim sustavom mjeri se vanjska i unutrašnja temperatura, prikazuje se na LCD-u te mikrokontroler infracrvenom komunikacijom pali

ili gasi klima ureĎaj i na taj način održava željenu temperaturu. Željenu temperaturu ili način rada klima ureĎaja korisnik unosi preko

komunikacijskog sučelja što unutar ovoga projekta nije ostvareno. Sljedeći korak bi onda bio povezivanje sustava za grijanje i hlaĎenje sa

korisnikom i ostalim sustavima inteligentne kuće. Sustav bi se osim sa komunikacijskim sučeljem trebao povezati i sa sustavom za proizvodnju i

regulaciju energije kako bi se što manje energije potrošilo za vrijeme rada

klima ureĎaja.

5. Literatura

[1] Arduino, URL: http://www.arduino.cc/ (2010-01-05)

[2] Bulilding a universal remote control with an Arduino, 2008. URL:

http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ (2010-

01-05)

[3] Dallas Semiconductor's 1-Wire Protocol URL:

http://www.arduino.cc/playground/Learning/OneWire (2010-01-05)

[4] A Multi-Protocol Infrared Remote Library for the Arduino, 2009. URL:

http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html (2010-

01-05)

[5] Soldering an LCD to a shield (2010) URL:

http://www.ladyada.net/learn/lcd/lcdshield.html (2010-01-05)

[6] Programmable IR remote control URL:

http://www.techdesign.be/projects/011/011.htm

Page 14: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

14

6. Pojmovnik

Pojam Kratko objašnjenje Više informacija potražite na

IR Engl. infra-red, infra crvena http://en.wikipedia.org/wiki/Infra_red

1-wire protocol Komunikacija na niskim brzinama preko jedne linije

http://en.wikipedia.org/wiki/1-Wire

Pulsno-širinska modulacija

Engl. Pulse-width modulation, koriste se pravokutni pulsevi za

prijenos podataka kod kojih je informacija sadržana u širini pojedinog pulsa.

http://en.wikipedia.org/wiki/Pulse-width_modulation

LCD Engl. liquid crystal display, ekran koji se temelji na tehnologiji tekućih

kristala.

http://hr.wikipedia.org/wiki/LCD

Page 15: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

15

Dodatak A: Opis temperaturnog senzora

Digitalni senzor temperature DS18B20 rezolucije 9-12 bita spaja se pomoću 1-wire protokola koji koristi samo jednu liniju (DQ) za prijenos

podataka. Uz liniju za prijenos podataka potrebno je spojiti i napajanje što zahtijeva još dvije žice. Zanimljivo je da senzor može raditi i bez spajanja

linije napajanja na način da krade naboj s DQ linije u trenucima kada je ona visoko („parazitno napajanje“) pri čemu se VDD izvod spaja na GND.

U projektu je korišteno standardno napajanje preko VDD i GND priključaka. Shema spoja temperaturnog senzora na Arduino prikazana je

na slici 11.

Slika 11. Način spajanja temperaturnih senzora

Dodatni otpornik služi za pritezanje linije na napajanje (visoko) kada

sklopovi svoje izvode, na koje je spojen DQ, postave u stanje visoke impedancije.

Za citanje i pisanje podataka preko jedne linije definirani su

vremenski prozori koji definiraju način slanja bitova 0 odnosno 1. Tijekom

trajanja jednog prozora, moguće je poslati samo jedan bit. Dva su tipa vremenskih prozora za pisanje podataka, logicke 0 i 1, trajanja minimalno

60 μs s minimalnom pauzom od 1 μs. Oba se tipa inicijaliziraju tako da master pritegne liniju nisko. Pisanje logičke jedinice prikazuje slika 11.

Page 16: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

16

Slika 12. Vremenski dijagram pisanja logičke jedinice

Izvod DQ je definiran kao izlazni i master šalje logicku nulu (linija pritegnuta na masu) koja se na sabirnici mora zadržati minimalno 1 μs.

Master otpušta liniju u 15 μs (DQ se postavlja u stanje visoke impedancije) nakon čega se ona samostalno priteznim otpornikom diže

visoko. 15 do 30 μs nakon što senzor detektira padajući brid signala na sabirnici (master poslao nulu), senzor očitava visoko stanje sabirnice u

kojem ostaje još minimalno 60 μs.

Svaka nova komunikacija sa senzorom započinje na način da master

inicijalizira sve ureĎaje slanjem reset impulsa trajanja minimalno 500 μs, nakon čega slave odgovara presence impulsom čime pokazuje svoju

spremnost (Slika 13).

Slika 13. Slanje reset impulsa

Page 17: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

17

Nakon što master detektira presence impuls, spreman je odaslati ROM naredbu. Svaki slave ureĎaj ima jedinstveni 64-bitni ROM serijski

broj pomoću kojega ga master može prepoznati. Postoji pet ROM naredbi duljine 8 bita.

Funkcijske naredbe su:

Read ROM, Match ROM,

Search ROM, Skip ROM,

Alarm Search.

Tablica 7. Prikaz 64-bitne naredbe

Page 18: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

18

Dodatak B: Opis LCD-a

LCD ekran GDM1602E tvrtke Xiamen Ocular ima dva reda za prikaz znakova, u svakom redu može prikazati 16 znakova. Jednostavan blok

dijagram prikazan je na Slici 14 iz koje se vidi da se LCD sastoji od mikrokontrolera koji obraĎuje primljene naredbe od drugog mikrkontrolera

ili računala, LCD pogonskog sklopa čija je uloga upravljanje ispisom znakova na sam LCD ekran LCD ekran i LED BKL koji služi za osvjetljenje

ekrana.

Slika 14. Blok shema LCD-a

LCD modul na sebi ima 16 pinova čije su funkcije prikazane u Tablici 8. Iz nje se vidi da se koristi paralelna komunikacija za prijenos podataka.

Postoje dva načina paralelnog prijenosa. Kod prvog koristi se 8-bitni paralelni prijenos, a kod drugog 4-bitni. Koji pinovi se koriste kod kojeg

prijenosa prikazani su takoĎer u Tablici. Kod sustava grijanja i hlaĎenja zraka korišten je 4-bitni paralelni prijenos podataka kako bi se uštedjelo

na pinovima. U tom slučaju pojedini paket podataka potrebno je slati 2 puta jer su duljine 8 bitova. Naredbe za LCD ekran mogu se podijeliti na:

Page 19: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

19

S6A0069 instrukcijski skup naredbi , Adresni instrukcijski skup naredbi za unutrašnji RAM,

Instrukcije za prijenos podataka za unutrašnji RAM, Ostale.

Ako se želi ispisati neki znak na ekran LCD-a, potrebno je poslati

adresu na kojoj se nalazi željeni znak u character generator RAM-u (CGRAM). CGRAM sadrži podatke za ispis svih znakova. Adresa

unutrašnjeg RAM-a se automatski povečava za jedan.

Tablica 8. Opis pojedinh signala LCD-a

Slika 15 prikazuje način na koji se spaja potenciometar za podešavanje kontrasta na LCD-u.

Slika 15. Način spajanja potenciometra

Slika 16 prikazuje vremenski dijagram za pisanje u LCD. Register select sginal (RS) postavlja se u 0 ili 1, ovisno o tome koji se tip naredbe

želi poslati. Write signal (R/W) je aktivan kad je nuli, nakon njega se postavlja signal operation enable signal (E) u jedinicu i zatim slijedi

prijenos podataka koji traje dok se signal RS ne promijeni.

Page 20: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

20

Slika 16. Vremenski dijagram za upis naredbe u LCD

Page 21: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

21

Dodatak C: Programski kod

#include <OneWire.h>

#include <LiquidCrystal.h>

//////// LCD POSTAVKE //////////////////////////////////////////////

// inicijalizacija library-a s pinovima na arduinu

LiquidCrystal lcd(11, 12, 7, 8, 9, 10);

#define LCD_WIDTH 16

#define LCD_HEIGHT 2

//////// DS18S20 Temperature chip i/o POSTAVKE ///////////////////////

OneWire ds(6); // na arduino pin 6

#define MAX_DS1820_SENSORS 2 // broj senzora DS1820

byte addr[MAX_DS1820_SENSORS][8]; // adrese senzora u polju

//////// KLIMA POSTAVKE ///////////////////////////////////////////////

//////// upravljanje SAMSUNG klima uredajem ///////////////////////////

#define BIT_IS_SET(i, bits) (1 << i & bits)

const int LED_PIN = 13; // dioda konektirana na pin 13

byte polje_on[7] = 2, 146, 15, 0, 0, 0, 240; // naredba ON

byte polje_off[7] = 0,0,0,0,0,0,0;

byte *p_on = &polje_on[0];

byte *p_off = &polje_off[0];

byte br_bajtova = 6; // brojac ide od nule zato je 7-1

// sirina pulsa, u mikrosekundama

const int HEADER_ON = 3000; // logicka jedinica headera

const int HEADER_OFF = 9000; // pauza headera

const int P0_0 = 500; // pauza za podatke

const int P0_1 = 500; // signal za logicku nulu

const int P1_0 = 1500; // pauza za logicku jedinicu

const int P1_1 = 500; // signal za logicku nulu

//////// SETUP ////////////////////////////////////////////////////////

void setup()

pinMode(LED_PIN, OUTPUT); // definiranje pina 13 kao izlazni

Serial.begin(9600); // inicijalizacija serijskog porta

lcd.begin(LCD_WIDTH, LCD_HEIGHT,1); //

lcd.setCursor(0,0); // testiranje LCD-a

lcd.print("DS1820 Test"); //

if (!ds.search(addr[0])) //

//

lcd.setCursor(0,0); //

lcd.print("No more addresses."); // trazenje adresa temp. senzora

ds.reset_search(); //

delay(250); //

return; //

Page 22: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

22

if ( !ds.search(addr[1])) //

//

lcd.setCursor(0,0); //

lcd.print("No more addresses."); // trazenje adresa temp. senzora

ds.reset_search(); //

delay(250); //

return; //

int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;

char buf[20]; // varijable za obradu podataka s temp. senzora

int T1, T2;

//////// FUNKCIJE ZA SLANJE IR SIGNALA BEGIN //////////////////////////////

/* Modulacija signala na 41 kHz */

/* pin je u stanju 1 (upaljen) */

void send_znak(int pin, int time, int pauza)

static const int period = 24;

static const int wait_time = 10;

for (time = time/period; time > 0; time--)

digitalWrite(pin, HIGH);

delayMicroseconds(wait_time); // wait_time je bilo

digitalWrite(pin, LOW);

delayMicroseconds(wait_time);

digitalWrite(pin, LOW);

delayMicroseconds(pauza);

void send_on()

int bajt;

static const int period = 24;

static const int wait_time = 10;

int time1;

int time2;

for (time1 = HEADER_ON/period; time1 > 0; time1--)

digitalWrite(LED_PIN, HIGH);

delayMicroseconds(wait_time);

digitalWrite(LED_PIN, LOW);

delayMicroseconds(wait_time);

digitalWrite(LED_PIN, LOW);

delayMicroseconds(HEADER_OFF);

for (int x=0; x<=br_bajtova; x++)

bajt = *(p_on+x);

for (int i=0; i<8; i++)

if (BIT_IS_SET(i,bajt))

send_znak(LED_PIN, P1_1, P1_0);

else

send_znak(LED_PIN, P0_1, P0_0);

Page 23: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

23

for (time2 = P1_1/period; time2 > 0; time2--)

digitalWrite(LED_PIN, HIGH);

delayMicroseconds(wait_time);

digitalWrite(LED_PIN, LOW);

delayMicroseconds(wait_time);

digitalWrite(LED_PIN, LOW);

delayMicroseconds(P1_0);

/* Slanje naredbe */

int klima_naredba(int naredba)

for(int i=0; i<3; i++)

if(naredba == 'ON')

send_on();

else

break;

//send_off();

//////// GLAVNA PETLJA PROGRAMA BEGIN //////////////////////////////////

void loop ()

byte i, sensor;

byte present = 0;

byte data[12];

for (sensor=0;sensor<MAX_DS1820_SENSORS;sensor++)

if ( OneWire::crc8( addr[sensor], 7) != addr[sensor][7])

lcd.setCursor(0,0);

lcd.print("CRC is not valid");

return;

if ( addr[sensor][0] != 0x10)

lcd.setCursor(0,0);

lcd.print("Device is not a DS18S20 family device.");

return;

ds.reset();

ds.select(addr[sensor]);

ds.write(0x44,1); // start conversion, with parasite power on at

the end

delay(1000); // maybe 750ms is enough, maybe not

// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();

ds.select(addr[sensor]);

ds.write(0xBE); // Read Scratchpad

for ( i = 0; i < 9; i++)

// we need 9 bytes

Page 24: Petar Vlahek SEMINARSKI RAD - SPVP 0036428638diana.zesoi.fer.hr/pametne-kuce/Studenti/2010/pvlahek/SPVP-Sustav_za... · Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi

Sustav za grijanje i hlaĎenje zraka

24

data[i] = ds.read();

LowByte = data[0];

HighByte = data[1];

TReading = (HighByte << 8) + LowByte;

SignBit = TReading & 0x8000; // test most sig bit

if (SignBit) // negative

TReading = (TReading ^ 0xffff) + 1; // 2's comp

Tc_100 = (TReading*100/2);

Whole = Tc_100 / 100; // separate off the whole and fractional portions

Fract = Tc_100 % 100;

sprintf(buf, "%d:%c%d.%d\337C ",sensor,SignBit ? '-' : '+', Whole,

Fract < 10 ? 0 : Fract);

lcd.setCursor(0,sensor%LCD_HEIGHT);

lcd.print(buf);

if(sensor == 0) // zapis temp s 1. temp. senzora

T1 = Tc_100;

if(sensor == 1) // zapis temp s 2. temp. senzora

T2 = Tc_100;

/* paljenje/gasenje klima uredaja */

if((T2-T1)<4 && (T2>T1))// ako je razika u temp. manja od 4 stupnja, klima

se pali

klima_naredba('ON'); // pali klimu

else

klima_naredba('OFF'); // gasi klimu