Doc
Doc
Skripsi
Oleh:
Netika Purwaningrum
NIM. 5350402020
Kepada
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI SEMARANG
2007
SKRIPSI
Pembimbing Pendamping
Dengan ini saya menyatakan bahwa dalam skripsi ini tidak terdapat karya
yang pernah diajukan untuk memperoleh gelar kesarjanan di suatu perguruan tinggi,
dan sepengetahuan saya juga tidak terdapat karya atau pendapat yang pernah ditulis
atau deterbitkan orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan
disebutkan dalam daftar pustaka.
Netika Purwaningrum
NIM. 5350402020
INTISARI
Tempat untuk berbahagia itu di sini. Waktu untuk berbahagia itu kini. Cara untuk
berbahagia ialah dengan membuat orang lain berbahagia. - Robert G. Ingersoll
Persembahan:
Untuk Ibu, Bapak, dan Adiku,
serta teman-teman yang senantiasa mengiringi langkahku
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah SWT atas rahmat dan
terselesaikan. Shalawat dan salam semoga senantiasa tercurah atas Nabi Muhammad
telah dibantu oleh berbagai pihak. Atas kelancaran pembuatan skripsi, maka
1. Drs. Djoko Adi Widodo, MT, selaku Ketua Jurusan Teknik Elektro Fakultas
2. Ir. Litasari, M.Sc., selaku dosen pembimbing utama jurusan Teknik Elektro
4. Drs. Noor Hudallah, MT, selaku dosen penguji jurusan Teknik Elektro
5. Ibu, Bapak, dan keluargaku yang selalu memberikan do’a, kasih sayang, serta
7. Bima, Azis, Joko, Yoyok, Amirudik, Maya, Pipin, Renny, Kotho, Wawan atas
selama ini.
10. Semua pihak yang tidak dapat penulis sebutkan satu persatu yang telah
membantu hingga terselesainya tugas akhir dan laporan tugas akhir ini.
Skripsi ini. Untuk itu, kritik dan saran yang bersifat membangun sangat penyusun
harapkan dari semua pihak. Semoga laporan ini bermanfaat bagi perkembangan ilmu
pengetahuan dan ilmu kontrol pada khususnya dan seluruh pihak yang
berkepentingan.
Penulis
DAFTAR ISI
Halaman Judul ................................................................................................ i
Intisari ............................................................................................................ iv
Abstract ........................................................................................................... v
Daftar Tabel..................................................................................................... xv
2.2.2.Fungsi Keanggotaan............................................................ 8
2.2.3.Operasi Himpunan Fuzzy .................................................... 11
2.3.1.Arsitektur ATmega8535...................................................... 19
3.2.2.Pemrograman...................................................................... 48
LAMPIRAN ................................................................................................... 63
DAFTAR GAMBAR
Gambar 2.1. Skema Perumusan Iluminasi (E) .................................................. 1
Gambar 3.11. Diagram alir (flow chat) sistem pengendali penerangan ruangan 41
DAFTAR TABEL
Tabel 3.1. Basis aturan (rule base) .................................................................. 46
DAFTAR LAMPIRAN
A. Listing Program
B. Data Sheet
BAB I
PENDAHULUAN
1.1. Latar Belakang
secara manual, sistem peralatan yang dikendalikan oleh komputer akan memberikan
baik perangkat keras maupun perangkat lunak, dapat dimanfaatkan untuk berbagai
lain-lain
Oleh karena itu diperlukan lampu sebagai sumber penerangan utama yang dapat
digunakan prinsip on-off, dimana pada saat ruangan gelap lampu dinyalakan dan
menghiraukan kontribusi dari luar seperti cahaya matahari. Pada saat kondisi di luar
ruangan mendung dan lampu dalam keadaan off, berarti dalam ruangan agak gelap.
Akan tetapi jika lampu dinyalakan maka di dalam ruangan menjadi terlalu terang
listrik.
tidur, ruang keluarga, dan ruang baca, dalam sebuah rumah. Sebagai pengendali
Fuzzy Logic pertama kali dikenalkan oleh Lotfi Zadeh, seorang profesor di
menggunakan nilai - nilai tajam (crisp) seperti pada aksi kontrol konvensional.
1.2. Permasalahan
1.3. Tujuan
Secara garis besar pembuatan alat ini bertujuan untuk mempelajari penerapan
metode fuzzy dalam pengendalian penerangan beberapa ruangan pada sebuah rumah.
maket rumah dengan tiga ruangan yang fungsinya berbeda, dan dengan satu
1. Studi Pustaka/Literatur
Studi ini dilakukan dengan cara mencari dan membaca literature serta karya-
2. Studi Lapangan
Studi ini dilakukan untuk memperoleh alat dan bahan yang diperlukan untuk
maket rumah.
Studi ini meliputi pengujian sistem yang dirancang pada tahap 3, dengan
5. Penulisan laporan
Agar skripsi ini lebih mengarah pada permasalahan dan membuat keteraturan
dalam penyusunan dan penulisannya maka dibuat dalam beberapa bab, sebagai
berikut :
BAB I. PENDAHULUAN
Bab ini berisi hasil pengujian perangkat keras maupun lunak disertai
BAB V. PENUTUP
BAB II
DASAR TEORI
cahaya (I) yang menimpa atau sampai pada permukaan bidang. Intensitas penerngan
Dengan menganggap sumber penerangan sebagai titk yang jaraknya (h) dari
bidang penerangan, maka iluminasi (E) dalam lux (lx) pada suatu titik pada bidang
penerangan adalah:
I
E= lx ........................................................................ (2.1)
h2
Pada skema dibawah ini X sebagai sumber cahaya, sehingga besarnya E pada
I
Kuat penerangan pada titik Q (EQ): E Q = sin α ................................. (2.3)
h
menyatakan hukum operasional dari suatu sistem dengan ungkapan bahasa, bukan
Dalam kasus seperti itu, ungkapan bahasa yang digunakan dalam Fuzzy logic dapat
Pada teori himpunan klasik yang disebut juga dengan himpunan crisp
berada di luar keanggotaannya (logika 0). Namun dalam teori himpunan fuzzy tidak
memiliki derajat kenaggotaan yang nilainya antara 0 dan 1. fungsi yang menetapkan
nilai ini dinamakan fungsi keanggotaan yang disertakan dalam himpunan fuzzy.
µ f (u )
F=∫ .......................................................... (2.5)
u
u
n
µ f (u i )
F=∑ ........................................................... (2.6)
i =1 ui
memiliki interval antara 0 sampi 1. Salah satu cara yang dapat digunakan untuk
1. Representasi Linier
dimulai pada nilai domain yang memiliki derajad keanggotaan nol (0)
yang pertama. Garis lurus dimulai dari nilai tertinggi kemudian bergerak
0 0
a domain b domain b
a
Gambar 2.2. Representasi Linear Naik Gambar 2.3. Representasi Linear
Turun
1
Derajad
keanggotaan
µ(x)
0
a b c
domain
Kurva trapesium pada dasarnya seperti bentuk segitiga hanya saja ada
1
Derajad
keanggotaan
µ(x)
0
a b c d
domain
kurva-S.
sisi paling kanan (nilai keanggotaan = 1) ke sisi paling kiri (nilai keanggotaan
bentuk lonceng ini terbagi atas tiga kelas, yaitu: kurva PI, beta, dan Gauss.
Gambar 2.8. Kurva Bentuk Lonceng
Jika A dan B adalah dua buah himpunan Fuzzy dalam semesta pembicaraan
U dengan fungsi keanggotaan µA (u) dan µB (u), maka pada kedua himpunan Fuzzy
1. Kesamaan (equality)
2. Gabungan (union)
3. Irisan (intersection)
4. Komplemen (complement)
dinyatakan sebagai :
sebagai respon dari masukan (input). Dalam kendali dengan cara klasik, melibatkan
formula-formula matematika yang cukup rumit. Hal ini berbeda dengan kendali
fuzzy. Pengendali Fuzzy merupakan suatu sistem kendali yang berdasar pada basis
matematika yang mendasari logika fuzzy sangat sederhana dan mudah dimengerti.
tidak memerlukan presisi yang tinggi serta ada toleransi untuk data yang kurang
tepat. Struktur dasar sebuah pengendali Fuzzy diperlihatkan pada Gambar 2.9.
Fuzzifikasi yaitu suatu proses untuk mengubah suatu masukan dari bentuk
tegas (crisp) menjadi fuzzy (variabel linguistik) yang biasanya disajikan dalam
masing.
sistem. Aturan-aturan ini dibuat berdasarkan logika dan intuisi manusia, serta
berkaitan erat dengan jalan pikiran dan pengalaman pribadi yang membuatnya. Jadi
tidak salah bila dikatakan bahwa aturan ini bersifat subjektif, tergantung dari
Aturan ini berbentuk ‘JIKA – MAKA’ (IF THEN), sebagai contoh adalah :
Dengan :
diolah lebih lanjut untuk mendapatkan suatu penyelesaian. Dengan demikian dapat
keluaran fuzzy dengan fungsi keanggotaan yang ditetapkan berdasarkan metode yang
1. Metode Max-Min
dimana:
oleh:
2.2.4.4. Defuzzifikasi
diperlukan sebab dalam aplikasi nyata yang dibutuhkan adalah nilai tegas (crisp).
Ada beberapa metode defuzzifikasi yang bisa dipakai pada komposisi aturan
1. Metode Centroid
Area) atau metode Center of Gravity. Pada metode ini nilai tegas
µC
Gambar 2.12. Metode Centroid
2. Metode Bisektor
Z
Gambar 2.13. Metode Bisektor
maksimum.
µC
Z
Gambar 2.14. Metode MOM (Mean of Maximum)
4. Metode LOM (Largest of Maximum)
Pada metode ini, nilai tegas keluarannya diperoleh berdasarkan
µC
Z
Gambar 2.15. Metode LOM (Largest of Maximum)
µC
Z
Gambar 2.16. Metode SOM (Smallest of Maximum)
(Reduced Instruction Set Computing) 8 bit, dimana semua instruksi dikemas dalam
kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 siklus
clock.
berikut
1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D.
12. Port USART untuk komunikasi serial dengan kecepatan maksimal 2,5 Mbps.
MHz.
1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC.
4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus untuk
5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin khusus untuk TWI,
6. Port D (PD0..PD7) merupakan pin I/O dua arah dan pin khusus untuk
yang terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register
Register dengan fungsi umum menempati space data pada alamat terbawah,
yaitu $00 sampai $1F, register khusus untuk menangani I/O dan kontrol
mikrokontroller menempati 64 alamat $20 hingga $5F, sedangkan SRAM 512 byte
pada alamat $60 sampai dengan $25F. Konfigurasi memori data ditunjukkan Gambar
2.19.
Memori program yang terletak dalam Flash PEROM tersusun dalam word
karena setiap instruksi memiliki lebar 16-bit atau 32-bit. AVR ATmega8535
memiliki 4 Kbyte x 16-bit Flash PEROM dengan alamat mulai dari $000 sampai
$FFF. AVR memiliki 12-bit Program Counter (PC) sehingga mampu mengalamati
isi Flash.
Gambar 2.20. Memori Program ATmega8535
Status Register merupakan register berisi status yang dihasilkan pada setiap
operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian
Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan
dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T
Bit-S merupakan hasil operasi EOR antara flag-N (negative) dan flag-V
Bit akan diset bila hasil operasi yang diperoleh adalah nol.
2.9. LDR
LDR (Light Dependent Resistant) merupakan suatu jenis tahanan yang sangat
peka terhadap cahaya. Sifat dari tahanan LDR ini adalah nilai tahanannya akan
berubah apabila terkena sinar atau cahaya. Apabila tidak terkena cahaya nilai
tahanannya akan besar dan sebaliknya apabila terkena cahaya nilai tahanannya akan
menjadi kecil. LDR terbuat dari bahan cadmium selenoide atau cadmium sulfide.
Film cadmium sulfide mempunyai tahanan yang besar jika tidak terkena sinar dan
apabila terkena sinar tahanan tersebut akan menurun. LDR banyak digunakan karena
mempunyai ukuran kecil, murah dan sensitivitas tinggi. Simbol LDR seperti
efektif arus berkurang sehingga lampu menjadi redup. Pemotongan gelombang sinus
gelombang sinusoida. Prinsip dari kontrol sudut fasa untuk gelombang penuh satu
fasa dapat dijelaskan berdasarkan rangkaian pada Gambar 2.24. Energi mengalir ke
beban dikontrol dengan menunda sudut pemicuan thyristor T1 dan sudut pemicuan
thyristor T2. Selama tegangan masukan setengah siklus positif, daya yang mengalir
dikontrol oleh beberapa sudut tunda dari thyristor T1, dan thyristor T2 mengontrol
daya selama tegangan masukan setengah siklus negatif. Pulsa-pulsa yang dihasilkan
thyristor) adalah alat thyristor yang paling sering digunakan (Petruzella 2002: 264).
Triac dapat bersifat konduktif dalam dua arah. Dalam hal ini dapat dianggap
sebagai dua buah thyristor yang terhubung invers-paralel dengan koneksi gerbang
seperti ditunjukkan pada Gambar 2.23. Triac mempunyai tiga terminal; terminal
utama 2 (MT2), terminal utama 1 atau (MT1), dan gerbang (G). Gambar 2.24
Jika terminal MT2 positif terhadap MT1, triac dapat di-on-kan dengan
memberikan sinyal gerbang positif antara G dan MT1. Jika terminal MT2 negatif
terhadap MT1 maka triac dapat di-on-kan dengan memberikan sinyalpulsa negatif
antara G dan MT1. Tidak perlu memiliki kedua sinyal gerbang positif dan negative
dan triac dapat dihidupkan baik oleh sinyal gerbang positif maupun negative.
Karakteristik v-I dari triac diberikan Gambar 2.25. Arus I, disebut holding current
adalah arus minimun yang dibutuhkan untuk mempertahankan triac tetap on, Triac
merupakan komponen yang simetris dan mampu memberikan perfomansi yang sama
pada daerah kerja kuadran III dari grafik dengan kerja kuadran I. Sehingga Triac
dapat dioperasikan dikuadran I (tegangan dan arua gerbang positif) atau di kuadran
PERANCANGAN ALAT
perangkat lunak (software) dan perangkat keras (hardware). Sistem yang dirancang
pengaturan tegangan dilakukan oleh blok pengatur tegangan berdasarkan output dari
pengendali fuzzy.
sumber
penerangan luar
Interaksi user dengan sistem dapat dilihat dari input yang diberikan yaitu
dengan menekan switch 1. Setelah switch 1 ditekan, input dari sensor cahaya diolah
oleh pengendali dengan metode fuzzy logic. Output dari pendendali selanjutnya
ditampilkan oleh penampil dan sebagai input rangkaian pengatur tegangan. Lampu
akan menyala sesuai dengan input yang diberikan oleh rangkaian pengatur tegangan.
Variabel keluaran dari proses yaitu intensitas cahaya yang dihasilkan lampu akan
berbaur dengan cahaya dari sumber luar menghasilkan iluminasi ruang Selanjutnya
30
iluminasi ruang diukur oleh sensor cahaya yang kemudian menghasilkan sinyal
sebagai masukan umpan balik bagi pengendali. Pengendali akan terus mengolah
sinyal masukan dan menghasilkan suatu nilai keluaran sehingga terbentuk suatu
sistem kendali loop tertutup. Sistem akan berhenti bekerja apabila user menekan
switch 1.
Sistem ini bekerja di dalam ruangan (in door) menggunakan maket rumah
dengan tiga ruangan sebagai model , dengan sumber penerangan yang berasal dari
lampu didalam ruang dan sumber penerangan dari luar. Maket rumah tersebut terdiri
dari tiga ruangan, yaitu ruang tamu/keluarga dengan ukuran 30x60 cm, ruang tidur
yang berukuran 30x30 cm, dan ruang baca yang berukuran 30x30 cm. Masing-
disesuaikan dengan fungsi ruangan tersebut. Standar kuat penerangan dalam ruangan
untuk ruang keluarga, ruang tidur, dan ruang baca adalah 300, 50, dan 200 lux
(Muhaimin 2001: 145). Ruang keluarga menggunakan lampu dengan daya 20 watt,
ruang tidur menggunakan lampu dengan daya 5 watt, sedangkan ruang baca
menggunakan model, maka atrandar kuat penerangan tidak terpenuhi. Iluminasi yang
dihasilkan berdasar lampu yang terpasang, terukur untuk ruang keluarga, ruang ruang
tidur, dan ruang baca adalah 300, 70, dan 200 lux. Denah maket rumah ditunjukkan
oleh Gambar 3.2, sedangkan Gambar 3.3 menunjukkan maket rumah tampak depan.
Gambar 3.2. Denah Maket Rumah
mikrokontroler ATmega8535.
rangkain Solid State Relay (SSR). Blok diagram system perangkat keras ditunjukkan
ruangan ditunjukkan pada Gambar 3.5. Sebagai sensor cahaya adalah LDR (Light
ruangan. Pengendali penerangan ruangan ini menggunakan enam buah LDR sebagai
transducer yg mengubah energi cahaya ke energi listrik yang selanjutnya akan diolah
ruangan menggunakan 2 sensor. Sensor pertama diletakkan di dekat lampu, hal ini
bertujuan supaya iluminasi yang diukur sebagian besar bersumber dari lampu.
modul penyaji kristal cair (LCD) dengan tingkat kecerahan tinggi. Modul ini
merupakan modul penyaji kristal cair matrik titik dengan pengendali di dalamnya.
baris dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5 kolom pixel (1 baris
pixel terakhir adalah kursor). Gambar 3.6. menunjukkan Modul LCD M1632. Dan
Gambar 3.7. menunjukkan hubungan antara layar LCD dengan HD44780 yang
1. Nama alat
Setelah sistem dihubungkan dengan jala-jala PLN, pada baris pertama LCD akan
LOGIKA FUZZY"
2. Identitas pembuat
1,5 detik setelah menampilkan nama alat, LCD akan menampilkan " N E T I K
A " pada baris pertama dan "== U N N E S ==" pada baris kedua.
3. Hasil pengukuran iluminasi, output dari pengendali fuzzy, dan periode pemicuan
menampilkan hasil pembacaan iluminasi sensor pada ruang 0 (LDR 0 dan LDR
1) yang telah dikonversi menjadi bentuk digital. Baris kedua akan menampilkan
periode pemicuan PWM dari ruang 1. Namun jika switch 0 ditekan dua kali, LCD
PORTC[0..7]
LCD
VCC
PORTC.0
PORTC.1
PORTC.2
PORTC.4
PORTC.5
PORTC.6
PORTC.7
VR
5k
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Pin LCD
JLCD
menunjukkan gambar rangkaian SSR, sedangkan cara kerja rangkaian ini adalah
sebagai berikut:
Jika ada logika 1 pada input (IN) rangkaian ini, maka transistor BD139 akan
aktif dan sambungan Collector dan Emitter seolah-olah seperti saklar tertutup
sehingga arus akan lewat dari power suply melewati MOC kaki 1 dan 2. Hal ini akan
mengakibatkan dioda yang berada didalam MOC 3041 aktif dan transistor yang
berada di dalam MOC3041 juga aktif. Keadaan ini akan mengakibatkan arus dari
jala-jala 220VAC mengalir ke kaki Gate TRIAC dan akan memicu TRIAC tersebut.
Pemicuan ini mengakibatkan kaki MT1 dan MT2 akan terhubung dan jala-jala
220VAC akan mengalir melalui beban. Hal ini berakibat beban ON. C 10nF/400V
pada rangkaian ini berfungsi untuk mengurangi arus yang sangat besar saat beban
mulai ON.
Jika terdapat logik 0 pada input (IN) rangkaian ini, maka transistor BD139
tidak akan aktif dan sambungan kolektor emitor (CE) seolah-olah seperti saklar
tebuka. Hal ini mengakibatkan dioda dan transistor yang berada di dalam MOC3041
tidak aktif dan tidak akan ada pemicuan pada TRIAC sehingga beban tidak
terhubung ke jala-jala 220VAC atau dengan kata lain beban OFF. Pemberian logika
IN 10
BD139
MOC3041
10 560
1 6
MT2 29/2W
ZERO
10nF/400V
CROSS 330 MT1
CIRCUIT
LOAD
Rangkaian ini bekerja sebagai unit pengendali agar sistem bekerja sesuai
rangkaian solid state relay untuk mengendalikan keadaan lampu dalam keadaan
terang, agak terang, redup, agak redup, atau padam. Pin 2 Port D terhubung dengan
rangkaian zero crossing detector. Pin 3 Port D terhubung dengan rangkaian switch 0
program ini disimpan dalam memori data dan memori program. Perancangan
software dilakukan dengan membuat diagram alir (flow chart) terlebih dahulu.
Setelah itu, program dibuat dengan mengikuti diagram alir (flow chart) seperti yang
ditunjukkan pada gambar 3.11. Sedangkan diagram alir timer untuk PWM
Sistem inferensi fuzzy yang digunakan pengendali penerangan ruangan ini adalah
Sinyal input dari LDR 0, LDR 2, dan LDR 4 yang berupa nilai tegas (crisp)
variabel dari sinyal input (Fungsi keanggotaan input r3) adalah sebagai berikut:
Derajad keanggotaan (µ)
Dari fungsi keanggotaan diatas, dapat diketahui derajad keanggotaan (µ) masing-
0 ( x ≤ a)
x − a (a < x ≤ c )
c − a
µ A ( x) = ............................................................. 3.1
b − x (c < x ≤ b)
b − c
0 (x ≥ b)
1
Derajad
keanggotaan
µ(x)
0
a c b
domain
Sinyal dari LDR 0, LDR 2, dan LDR 4 yang telah dikonversi dari sinyal analog
variabel dari sinyal input (Fungsi keanggotaan input r5) adalah sebagai berikut:
Derajad keanggotaan (µ)
Fungsi keanggotaan untuk nyala lampu (output) seperti ditunjukkan gambar 3.15.
rumus 3.1 (perhatikan gambar 3.14). Rumus 3.2 (perhatikan gambar 3.16)
0 ( x ≤ a)
x − a (a < x ≤ c )
b − a
µ A ( x) = 1 (b ≤ x ≤ c ) ............................................................ 3.2
d − x (c < x ≤ d )
d − c
0 (x ≥ d )
1
Derajad
keanggotaan
µ(x)
0
a b c d
domain
INPUT
GPR5 : gelap
RRR5 : remang-remang
T RR5 : terang
GPR3 : gelap
SDR3 : sedang
T RR3 : terang
OUTPUT
TERANG)
TERANG)
TERANG)
4. If (r5 is AGAK GELAP) and (r3 is GELAP) then (Nyala Lampu is AGAK
TERANG)
REDUP)
SANGAT REDUP)
SANGAT REDUP)
REDUP)
AGAK TERANG)
10. If (r5 is AGAK TERANG) and (r3 is GELAP) then (Nyala Lampu is AGAK
TERANG)
11. If (r5 is AGAK TERANG) and (r3 is SEDANG) then (Nyala Lampu is
REDUP)
12. If (r5 is AGAK TERANG) and (r3 is TERANG) then (Nyala Lampu is
SANGAT REDUP)
PADAM)
PADAM)
3.4.2. Pemrograman
Port A sebagai input ADC, Port B sebagai output lampu, Port C sebagai output
LCD, sedangkan Port D sebagai input zero crossing detector, switch 0 dan switch
1. Timers yang digunakan adalah Timer2 dengan mode normal top = FFh dan
berikut:
// Global variables
char buf[33];
// Variabel fungsi keanggotaan input
unsigned int mu, mu_gpr3, mu_sdr3, mu_trr3, mu_gpr5, mu_agr5,
mu_rrr5, mu_atr5, mu_trr5,
GPR3, SDR3, TRR3, GPR5, AGR5, RRR5, ATR5, TRR5,
ldr[6], xx;
long int ot[6];
unsigned char room, rom, flg, x, out_fuz[6];
// Variabel fungsi keanggotaan output
unsigned int mu_pdot, mu_atot, mu_rdot, mu_srot, mu_trot;
Program dimulai dengan inisialisasi variabel awal pada menu utama:
void main(void)
{
unsigned char j;
xx=flg=0;
room=0;
x=0;
ot[0]=ot[1]=ot[2]=0;
Selanjutnya LCD akan menampilkan informasi nama alat dan identitas pembuat,
while (j==0) {
if (PIND.7==0) {j=1;};
Untuk membaca besarnya sinyal dari LDR 0, LDR 2, dan LDR 4 dalam
ldr[x]=read_adc(x);
r3();
Atmega8535.
void r3(void)
{
GPR3=SDR3=TRR3=0;
mu_gpr3=mu_sdr3=mu_trr3=0;
// GELAP
mu=(127-ldr[x])*10;
if (ldr[x]>127) {mu=0;};
mu=mu/127;
if (mu>0) {
GPR3=1;
mu_gpr3=mu;
};
// SEDANG
if (ldr[x]<128) {
mu=(ldr[x]*10)/127;
if (mu>0) {
SDR3=1;
mu_sdr3=mu;
}
}
// TERANG
else {
mu=((255-ldr[x])*10)/128;
if (mu>0) {
SDR3=1;
mu_sdr3=mu;
}
mu=((ldr[x]-127)*10)/128;
if (mu>0) {
TRR3=1;
mu_trr=mu;
};
};
}
Sedangkan untuk membaca besarnya sinyal dari LDR 0, LDR 2, dan LDR 4
ldr[x+1]=read_adc(x+1);
r5();
Atmega8535.
void r5(void)
{
unsigned char y;
y=x+1;
GPR5= AGR5= RRR5= ATR5= TRR5= 0;
mu_gpr5= mu_agr5= mu_rrr5= mu_atr5= mu_trr5= 0;
// GELAP
if (ldr[y]<=64) {
mu=((64-ldr[y])*10)/64;
if (mu>0) {
GP=1; mu_gp=mu;
}
// AGAK GELAP
mu=(ldr[y]*10)/64;
if (mu>0) {
AG=1; mu_ag=mu;
}
}
if (ldr[y]>64 && ldr[y]<=128) {
mu=((128-ldr[y])*10)/64;
if (mu>0) {
AG=1; mu_ag=mu;
}
// REMANG-REMANG
mu=((ldr[y]-64)*10)/64;
if (mu>0) {
RR=1; mu_rr=mu;
}
}
if (ldr[y]>128 && ldr[y]<=192) {
mu=((192-ldr[y])*10)/64;
if (mu>0) {
RR=1; mu_rr=mu;
}
// AGAK TERANG
mu=((ldr[y]-128)*10)/64;
if (mu>0) {
AT=1; mu_at=mu;
}
}
if (ldr[y]>192) {
mu=((255-ldr[y])*10)/64;
if (mu>0) {
AT=1; mu_at=mu;
}
//TERANG
mu=((ldr[y]-192)*10)/64;
if (mu>0) {
TR=1; mu_tr=mu;
}
}
}
menggunakan basis aturan yang telah dirancang. Output yang diperoleh dari inferensi
void fuzz_out(void)
{
unsigned int mu_xx,zz,mu_xz;
mu_pdot= mu_atot= mu_rdot= mu_srot= mu_trot = mu_xx= 0;
zz=mu_xz=0;
out_fuz[x]=0;
//SANGAT REDUP
if ((AG==1) && (TRR==1)) {mu_srot=min(mu_ag, mu_trr);}
if ((RR==1) && (TRR==1)) {mu_xx =min(mu_rr, mu_trr);
mu_srot=max(mu_srot, mu_xx);}
if ((AT==1) && (TRR==1)) {mu_xx =min(mu_at, mu_trr);
mu_srot=max(mu_srot, mu_xx);}
if (mu_srot>0) {
mu_xz=mu_xz + (((30*mu_srot)+250)/10)*mu_srot;
zz =zz+mu_srot;
mu_xz=mu_xz + (((35*(10-mu_srot))+850)/10)*mu_srot;
zz =zz+mu_srot;
}
//REDUP
if ((AG==1) && (SDR==1)) {mu_rdot=min(mu_ag, mu_sdr);}//
mu_rdot=max(mu_rdot, mu_xx);}
if ((RR==1) && (SDR==1)) {mu_xx =min(mu_rr, mu_sdr);
mu_rdot=max(mu_rdot, mu_xx);}
if ((AT==1) && (SDR==1)) {mu_xx =min(mu_at, mu_sdr);
mu_rdot=max(mu_rdot, mu_xx);}
if (mu_rdot==10) {
mu_xz=mu_xz + (128*mu_rdot);
zz =zz+mu_rdot;
}
if ((mu_rdot>0) && (mu_rdot<10)) {
mu_xz=mu_xz + (((63*mu_rdot)+650)/10)*mu_rdot;
zz =zz+mu_rdot;
mu_xz=mu_xz + (((62*(10-mu_rdot))+1280)/10)*mu_rdot;
zz =zz+mu_rdot;
}
//AGAK TERANG
if ((AG==1) && (GPR==1)) {mu_atot=min(mu_ag, mu_gpr);}
if ((RR==1) && (GPR==1)) {mu_xx =min(mu_rr, mu_gpr);
mu_atot=max(mu_atot, mu_xx);}
if ((AT==1) && (GPR==1)) {mu_xx =min(mu_at, mu_gpr);
mu_atot=max(mu_atot, mu_xx);}
if (mu_atot>0) {
mu_xz=mu_xz + (((35*mu_atot)+1350)/10)*mu_atot;
zz =zz+mu_atot;
mu_xz=mu_xz + (((25*(10-mu_atot))+2000)/10)*mu_atot;
zz =zz+mu_atot;
}
out_fuz[x]=mu_xz/zz;
//PADAM
if ((TR==1) && (TRR==1)) {mu_pdot=min(mu_tr, mu_trr);}
if (mu_pdot>0) {
mu_xz=(((20*(10-mu_pdot))+250)/10)*mu_pdot;
zz =mu_pdot;
}
//TERANG
if ((GP==1) && (GPR==1)) {mu_trot=min(mu_gp, mu_gpr);}
if (mu_trot>0) {
mu_xz=mu_xz + (((39*mu_trot)+1950)/10)*mu_trot;
zz =zz+mu_trot;
}
BAB IV
keras yang telah dirancang dapat bekerja atau berfungsi dengan baik sebagaimana
beberapa blok rangkaian perangkat keras yang telah dirancang. Terdapat beberapa
cahaya dengan voltmeter digital. Agar dapat dideteksi perubahan keluaran tegangan
LDR terhadap perubahan cahaya, mula-mula LDR diberi cahaya hingga pada LCD
hingga menunjukkan iluminasi sebesar 50. Untuk setiap penurunan iluminasi sebesar
10, dicatat besarnya iluminasi dan tegangan keluaran LDR. Hasil pengujiannya
ditunjukkan pada Tabel 4.1. Hasil pengujian sensor cahaya menggunakan lux meter
52
Tabel 4.1. Hasil Pengujian Rangkaian Sensor
Iluminasi Tegangan
(lux) (Volt)
230 0,53
220 0,66
210 0,87
200 0,99
190 1,23
180 1,42
170 1,69
160 1,92
150 2,04
140 2,16
130 2,46
120 2,71
110 2,84
100 3,05
90 3,31
80 3,4
70 3,57
60 3,8
50 4,06
40 4,21
30 4,35
20 4,53
10 4,77
Berdasarkan data pada Tabel 4.1 dapat dibuat grafik hubungan antara
iluminasi dengan tegangan keluaran LDR yaitu seperti ditunjukkan pada Gambar 4.1.
Dari grafik pada Gambar 4.1 terlihat bahwa hubungan antara iluminasi dengan
tegangan (Volt)
4
0
0 50 100 150 200 250
luminansi
Keluaran nilai (lux)
digital ADC
berikut:
#include <mega8535.h>
void main(void)
{
while (1)
{
PORTA=0xaa;
PORTB=0xaa;
PORTC=0xaa;
PORTD=0xaa;
};
}
4.2.3. Pengujian LCD M1632
Pengujian LCD ini untuk mengetahui apakah LCD dapat dipakai atau rusak.
Pengujian pertama yang dilakukan dengan memberi tegangan pada pada kaki catu
daya (kaki 2 dan 15). Maka LCD akan menyala, namun demikian tidak berarti
dalam sistem minimum ATmega8535 yang akan di tampilkan oleh LCD melalui
#include <mega8535.h>
#asm
.equ __lcd_port=0x15
#endasm
#include <lcd.h>
void main(void)
{
#asm("sei")
lcd_init(16);
dapat menghasilkan output sesuai dengan input yang didapat dari rangkaian
keluarga (R0) menggunakan lampu pijar 20 watt, ruang tidur (R1) menggunakan
lampu pijar 5 watt, sedangkan ruang baca (R3) menggunakan lampu pijar 15 watt.
dapat mencapai daya maksimal. Hal ini dikarenakan tegangan dari jala-jala PLN
Pengujian perangkat lunak ini dilakukan pada beberapa sub rutin program.
Tujuan pengujian adalah untuk memastikan sub rutin bekerja sesuai dengan yang
direncanakan. Untuk sub rutin yang menerima input dan meneruskan output dapat
Misalnya sub rutin pada LCD maka akan dapat dilihat secara langsung pada LCD.
Hasil Defuzzifikasi
pada output Error
Input r5 Input r3 hasil
Sistem (%)
Perhitungan
Gambar4.2.
300
250
200
Sistem
150
Perhitungan
100
50
0
1 2 3 4 5 6 7 8 9 10 11
errornya sangat besar, sehingga sistem dapat bekerja dengan baik pada r5 antara 65 –
190 lux.
KENDALI LAMPU
dgn LOGIKA FUZZY
N E T I K A P
5350402020 UNNES
Rg0: ^^
Defuzz:
Rg1: ^^
Defuzz:
Gambar 4.6. Tampilan Ruang Tidur
Rg2: ^^
Defuzz:
Setelah 1,5 detik akan muncul tampilan identitas pembuat seperti ditunjukkan
Gambar 4.4. LCD akan menampilkan tampilan Ruang Keluarga seperti pada
Gambar 4.5. apabila switch 1 ditekan. Jika switch 0 ditekan 1 kali, LCD akan
menampilkan tampilan Ruang Tidur seperti Gambar 4.6. Namun jika pada LCD
ditampilkan informasi Ruang Baca seperti Gambar 4.7., berarti telah ditekan 2 kali.
Apabila switch 1 ditekan sekali lagi, maka LCD akan kembali menampilkan identitas
ruangan dengan lux meter. Pengujian dilakukan pada tiga kondisi lampu yaitu
padam, redup, dan terang. Tabel 4.4 menunjukkan hasil pengujian sistem
PENUTUP
5.3. Kesimpulan
disimpulkan bahwa:
mengolah sinyal analog dari LDR menjadi suatu nilai keluaran yang berupa
waktu tundaan untuk pemicuan triac pada rancl mjgkaian solid state relay.
Ruangan ini terbatas. Hal ini disebabkan oleh kapasitas ADC internal yang
5.4. Saran
sistem multiplexing.
DAFTAR PUSTAKA
________. 1987. Liquid Crystal Display Module M1632 User Manual. Seiko
Instrumens Inc 15 Juni 2006
Fellow IEE. 1999. Rangkaian, Devais, dan Aplikasinya Jilid 1. Jakarta: PT.
Prenhallindo.
Kusumadewi, Sri dan Hari Punomo. 2004. Aplikasi Logika Fuzzy Untuk Pendukung
Keputusan. Yogyakarta: Graha Ilmu.
Kusumadewi, Sri. 2002. Analisis dan Desain Sistem Fuzzy Menggunakan Tool Box
Matlab. Yogyakarta: Graha Ilmu.
#include <mega8535.h>
#include <stdio.h>
#include <delay.h>
#include <math.h>
// Global variables
char buf[33];
unsigned int mu, mu_gpr, mu_sdr, mu_trr, mu_gp, mu_ag, mu_rr,
mu_at, mu_tr,
GPR, SDR, TRR, GP, AG, RR, AT,
TR,
ldr[6], xx;
long int ot[6];
unsigned char room, rom, flg, x, out_fuz[6];
unsigned int mu_pdot, mu_atot, mu_rdot, mu_srot, mu_trot;
void fuzz_out(void);
void r5(void);
void r3(void);
void main(void)
{
unsigned char j;
// Timer/Counter 0 initialization
TCCR0=0x00; // Clock source: System Clock
TCNT0=0x00; // Clock value: Timer 0 Stopped
OCR0=0x00; //
// Mode: Normal top=FFh
// OC0 output: Disconnected
// Timer/Counter 1 initialization
TCCR1A=0x00; // Clock source: System Clock
TCCR1B=0x00; // Clock value: Timer 1 Stopped
TCNT1H=0x00; // Mode: Normal top=FFFFh
TCNT1L=0x00; // OC1A output: Discon.
ICR1H=0x00; // OC1B output: Discon.
ICR1L=0x00; // Noise Canceler: Off
OCR1AH=0x00; // Input Capture on Falling Edge
OCR1AL=0x00; // Timer 1 Overflow Interrupt: On
OCR1BH=0x00; // Input Capture Interrupt: Off
OCR1BL=0x00; // Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Timer/Counter 2 initialization
ASSR=0x00; // Clock source: System Clock
TCCR2=0x01; // Clock value: 4000.000 kHz
TCNT2=0x00; // Mode: Normal top=FFh
OCR2=0x00; // OC2 output: Disconnected
// ADC initialization
ADMUX=ADC_VREF_TYPE; // ADC Clock frequency: 1000.000 kHz
ADCSRA=0x82; // ADC Voltage Reference: AVCC pin
SFIOR&=0xEF; // ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
xx=flg=0;
room=0;
x=0;
ot[0]=ot[1]=ot[2]=0;
#asm("cli") // Global disable interrupts
lcd_init(16); // LCD module initialization
//*
lcd_gotoxy(0,0); lcd_putsf(" KENDALI LAMPU");
lcd_gotoxy(0,1); lcd_putsf("dgn LOGIKA FUZZY"); delay_ms(1500);
lcd_clear();
//lcd_clear();
while (1)
{
lcd_gotoxy(0,0); lcd_putsf(" N E T I K A ");
lcd_gotoxy(0,1); lcd_putsf("== U N N E S ==");
j=0;
while (PIND.7==1) {}
while (PIND.7==0) {}
while (j==0) {
if (PIND.7==0) {j=1;};
ldr[x]=read_adc(x); // ldr
r3(); // 3 fungsi keanggotaan
lcd_gotoxy(0,0); sprintf(buf,"Rg%i: %i",room,ldr[rom]);
lcd_puts(buf);
// tampil_fuzz_in_r3();
ldr[x+1]=read_adc(x+1); // ldr
r5(); // 5 fungsi keanggotaan
lcd_gotoxy(10,0); sprintf(buf,"^^ %i ",ldr[rom+1]);
lcd_puts(buf);
// tampil_fuzz_in_r5();
fuzz_out();
ot[x]=out_fuz[x]; ot[x]=((ot[x]*314)/234);
//ot[0]=ot[1]=ot[2]=314; // test pwm,
ot=0..314
lcd_gotoxy(0,1); sprintf(buf,"Defuzz: %i %u
",out_fuz[rom],ot[rom]); lcd_puts(buf);
//tampil_fuzz_out();
x=x+2;
if (x>4) {x=0;}
if (room==0) {rom=0;}
if (room==1) {rom=2;}
if (room==2) {rom=4;}
delay_ms(100);
lcd_clear();
//lcd_gotoxy(0,1); sprintf(buf,"%i %i
%i",out_fuz[0],out_fuz[1],out_fuz[2]); lcd_puts(buf); */
}
void fuzz_out(void)
{
unsigned int mu_xx,zz,mu_xz;
mu_pdot= mu_atot= mu_rdot= mu_srot= mu_trot = mu_xx= 0;
zz=mu_xz=0;
out_fuz[x]=0;
//SANGAT REDUP
if ((AG==1) && (TRR==1)) {mu_srot=min(mu_ag, mu_trr);}
if ((RR==1) && (TRR==1)) {mu_xx =min(mu_rr, mu_trr);
mu_srot=max(mu_srot, mu_xx);}
if ((AT==1) && (TRR==1)) {mu_xx =min(mu_at, mu_trr);
mu_srot=max(mu_srot, mu_xx);}
//if ((TR==1) && (SDR==1)) {mu_xx =min(mu_tr, mu_sdr);
mu_srot=max(mu_srot, mu_xx);}
if (mu_srot>0) {
mu_xz=mu_xz + (((30*mu_srot)+250)/10)*mu_srot;
zz =zz+mu_srot;
mu_xz=mu_xz + (((35*(10-mu_srot))+850)/10)*mu_srot;
zz =zz+mu_srot;
}
//REDUP
//if ((GP==1) && (TRR==1)) {mu_rdot=min(mu_gp, mu_trr);}
if ((AG==1) && (SDR==1)) {mu_rdot=min(mu_ag, mu_sdr);}//
mu_rdot=max(mu_rdot, mu_xx);}
if ((RR==1) && (SDR==1)) {mu_xx =min(mu_rr, mu_sdr);
mu_rdot=max(mu_rdot, mu_xx);}
if ((AT==1) && (SDR==1)) {mu_xx =min(mu_at, mu_sdr);
mu_rdot=max(mu_rdot, mu_xx);}
//if ((TR==1) && (GPR==1)) {mu_xx =min(mu_tr, mu_gpr);
mu_rdot=max(mu_rdot, mu_xx);}
if (mu_rdot==10) {
mu_xz=mu_xz + (128*mu_rdot);
zz =zz+mu_rdot;
}
if ((mu_rdot>0) && (mu_rdot<10)) {
mu_xz=mu_xz + (((63*mu_rdot)+650)/10)*mu_rdot;
zz =zz+mu_rdot;
mu_xz=mu_xz + (((62*(10-mu_rdot))+1280)/10)*mu_rdot;
zz =zz+mu_rdot;
}
//AGAK TERANG
if ((AG==1) && (GPR==1)) {mu_atot=min(mu_ag, mu_gpr);}
if ((RR==1) && (GPR==1)) {mu_xx =min(mu_rr, mu_gpr);
mu_atot=max(mu_atot, mu_xx);}
if ((AT==1) && (GPR==1)) {mu_xx =min(mu_at, mu_gpr);
mu_atot=max(mu_atot, mu_xx);}
//if ((GP==1) && (SDR==1)) {mu_xx =min(mu_gp, mu_sdr);
mu_atot=max(mu_atot, mu_xx);}
if (mu_atot>0) {
mu_xz=mu_xz + (((35*mu_atot)+1350)/10)*mu_atot;
zz =zz+mu_atot;
mu_xz=mu_xz + (((25*(10-mu_atot))+2000)/10)*mu_atot;
zz =zz+mu_atot;
}
out_fuz[x]=mu_xz/zz;
//PADAM
if ((TR==1) && (TRR==1)) {mu_pdot=min(mu_tr, mu_trr);}
if (mu_pdot>0) {
mu_xz=(((20*(10-mu_pdot))+250)/10)*mu_pdot;
zz =mu_pdot;
}
//if (TR==1) {out_fuz[x]=0;}
//TERANG
if ((GP==1) && (GPR==1)) {mu_trot=min(mu_gp, mu_gpr);}
if (mu_trot>0) {
mu_xz=mu_xz + (((39*mu_trot)+1950)/10)*mu_trot;
zz =zz+mu_trot;
}
//if (GP==1) {out_fuz[x]=255;}
}
void r5(void)
{
unsigned char y;
y=x+1;
void r3(void)
{
GPR=SDR=TRR=0;
mu_gpr=mu_sdr=mu_trr=0;
mu=(127-ldr[x])*10;
if (ldr[x]>127) {mu=0;};
mu=mu/127;
if (mu>0) {
GPR=1;
mu_gpr=mu;
};
if (ldr[x]<128) {
mu=(ldr[x]*10)/127;
if (mu>0) {
SDR=1;
mu_sdr=mu;
}
}
else {
mu=((255-ldr[x])*10)/128;
if (mu>0) {
SDR=1;
mu_sdr=mu;
}
mu=((ldr[x]-127)*10)/128;
if (mu>0) {
TRR=1;
mu_trr=mu;
};
};
}
LAMPIRAN C
Gambar Rangkaian Keseluruhan
LAMPIRAN D
Kalibrasi Rangkaian Sensor
luxmeter penera dengan keluaran nilai digital ADC {X} dihitung menggunakan
regresi.
Hasil pengukuranan rangkaian sensor menggunakan lux meter dan volt meter
digital
Keluaran Iluminasi
Tegangan
nilai digital (lux)
(Volt)
ADC Pengukuran
190 1,23 3000
180 1,42 2400
170 1,69 1600
160 1,92 900
150 2,04 700
140 2,16 450
130 2,46 370
120 2,71 260
110 2,84 160
100 3,05 110
90 3,31 100
80 3,4 60
70 3,57 50
60 3,8 30
Grafik hubungan antara iluminasi dan keluaran nilai digital ADC ditunjukkan oleh
gambar berikut:
3500
3000
2500
Iluminasi (lux)
2000
1500
1000
500
0
0 50 100 150 200
Keluaran nilai digital ADC
karena trand grafik tersebut sesuai dengan tipe regresi exponensial. Dengan regresi
3500
y = 3,7008e0,0352x
3000
R2 = 0,9954
2500
2000
Lum
1500
1000
500
0
0 50 100 150 200
ADC
Jadi persamaan regresi luxmeter penera dengan rangkaian sensor adalah sebagai
berikut:
y = 3,7008 e 0,0352x
Keterangan :
y = Iluminasi