16 DASAR TEORI
2.1 MODUL GSM
HP (Handphone) dengan fasilitas SMS-nya akan sangat berguna jika kita dapat mengaplikasikannya ke dalam suatu sistem pengendali yang terintegrasi, dimana nantinya pengendalian serta pengaksesan informasi keadaan lampu ruangan yang dilakukan oleh seseorang dapat dilakukan via SMS.
Sekarang telah banyak alat pengendali lampu rumah jarak jauh menggunakan remote dengan media infra merah maupun gelombang lain, namun masih jarang yang dapat mengendalikan peralatan lampu rumah jika berada di tempat yang jauh dengan memanfaatkan fasilitas provider GSM. Maka perancangan pengendalian lampu jarak jauh ini mencoba menggunakan fasilitas SMS pada telepon seluler, yang diharapkan dapat mengendalikan (memadamkan/menyalakan) dan mendeteksi status lampu melalui jarak jauh dari daerah manapun asal masih terjangkau sinyal operator GSM.
Global System for Mobile communication (GSM) adalah sebuah standar global untuk komunikasi bergerak digital. GSM adalah nama dari sebuah group standarisasi telpon bergerak selular di Eropa yang beroperasi pada daerah frekunensi 900 MHz. GSM saat ini banyak digunakan di negara-negara di dunia.
Informasi sangat penting dalam suatu organisasi, informasi memperkaya penyajian, pengetahuan, suatu yang penerimanya tidak tahu, Suatu sistem yang kurang mendapat informasi akan menjadi luruh, kerdil dan akhirnya akan berakhir. Apakah sebenarnya informasi itu, sehingga sangat penting artinya bagi suatu sistem. Informasi (information) dapat didefinisikan sebagi data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya.
2.1.1 Konsep Dasar SMS (Short Message Service)
Universitas Sumatera Utara
17
Short Message Service (SMS) adalah sebuah layanan yang banyak diaplikasikan pada sistem komunikasi tanpa kabel (wireless), yang memungkinkan kita untuk melakukan pengiriman pesan dalam bentuk alphanumeric antara terminal pelanggan dengan sistem eksternal seperti email, paging, voice mail, dan lain-lain. SMS mulai diperkenalkan di eropa sejak tahun 1991 dengan adanya standardisasi dalam bidang wireless digital yang disebut Global System for Mobile Communication (GSM). GSM adalah sistem pelopor seluler yang dikembangkan secara universal oleh European Telecomunication Standards Institute (ETSI) dan dengan GSM inilah aplikasi SMS dapat dijalankan.
Mekanisme dalam sistem SMS adalah melakukan pengiriman short message dari terminal pelanggan ke terminal lain. Layanan SMS merupakan sebuah layanan yang bersifat nonreal time dimana sebuah short message dapat di-submit ke suatu tujuan, tidak peduli apakah tujuan tersebut aktif atau tidak. Bila dideteksi bahwa tujuan tidak aktif, maka sistem akan menunda pengiriman ke tujuan hingga tujuan aktif kembali. Prinsip dasar sistem SMS akan menjamin delivery dari short message hingga sampai tujuan. Kegagalan pengiriman yang bersifat sementara seperti tujuan tidak aktif akan selalu teridentifikasi sehingga pengiriman ulang short message akan selalu dilakukan kecuali bila aturan bahwa short message yang telah melampaui batas waktu tertentu harus dihapus dan dinyatakan gagal dikirim.
Karakteristik utama SMS adalah SMS merupakan sebuah sistem pengiriman data dalam paket yang bersifat out-of-band dengan bandwidth yang kecil. Dengan karakteristik ini, pengiriman dengan suatu burst data yang pendek dapat dilakukan dengan efesiensi yang sangat tinggi. contoh modul GSM ditunjukkan pada Gambar 2.1 :
Universitas Sumatera Utara
18
Gambar 2.1 Modul GSM
2.2 RELAY Relay berfungsi untuk menghubungkan atau memutus aliran arus listrik yang dikontrol dengan memberikan tegangan dan arus tertentu pada koilnya. Relay biasanya hanya mempunyai satu kumparan tetapi relay dapat mempunyai beberapa kontak. Dalam memutus atau menghubungkan kontak digerakkan oleh fluksi yang ditimbulkan dari adanya medan magnet listrik yang dihasilkan oleh kumparan yang melilit pada besi lunak. Contoh Gambar relay pin 8 pada Gambar 2.2
Gambar 2.2 Relay 8 Pin
Universitas Sumatera Utara
19 2.2.1 Prinsip Kerja Relay
Kontak Normally Open akan membuka ketika tidak ada arus mengalir pada kumparan, tetapi tertutup secepatnya setelah kumparan menghantarkan arus atau diberi tenaga. Kontak normally Close akan tertutup apabila kumparan tidak diberi tenaga dan membuka ketika kumparan diberi daya. Masing-masing kontak biasanya digambarkan sebagai kontak yang tampak dengan kumparan tidak diberi tanaga atau daya. Contoh relay elektromekanis pada Gambar 2.3 :
Kontak NO (Normally Open) Kontak NC (Normally Close) CR 2 Simbol CR1 Simbol Coil Relay
CR Simbol
Gambar 2.3 Relay Elektromekanis
2.3 Mikrokontroler ATMEGA8535
Tidak seperti system komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada system computer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif
Universitas Sumatera Utara
20 lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan. 2.3.1 Arsitektur Mikrokontroler AVR ATMega8535
AVR termasuk kedalam jenis mikrokontroler RISC (Reduced Instruction Set Computing) 8 bit. Berbeda dengan mikrokontroler keluarga MCS-51 yang berteknologi CISC (Complex Instruction Set Computing). Pada mikrokontroler dengan teknologi RISC semua instruksi dikemas dalam kode 16 bit (16 bits words) dan sebagian besar instruksi dieksekusi dalam 1 clock, sedangkan pada teknologi CISC seperti yang diterapkan pada mikrokontroler MCS-51, untuk menjalankan sebuah instruksi dibutuhkan waktu sebanyak 12 siklus clock.contoh arsitektur ATMega 8535 pada Gambar 2.4 Secara garis besar, arsitektur mikrokontroler ATMega8535 terdiri dari :
1. 32 saluran I/O (Port A, Port B, Port C dan Port D) 2. 10 bit 8 Channel ADC (Analog to Digital Converter) 3. 4 Channel PWM 4. 6 Sleep Modes : Idle, ADC Noise Reduction, Power-save, Power-Down, Standby and Extended Standby 5. 3 buah timer/counter. 6. Analog Compararator 7. Watchdog timer dengan osilator internal 8. 512 byte SRAM 9. 512 byte EEPROM 10. 8 kb Flash memory dengan kemampuan Read While Write 11. Unit interupsi (internal dan external) 12. Port antarmuka SPI8535 “memory map” 13. Port USART untuk komunikasi serial dengan kecepatan maksimal 2,5 Mbps 14. 4,5 V sampai 5,5 V operation, 0 sampai 16 MHz
Universitas Sumatera Utara
21
Gambar 2.4 Arsitektur ATMEGA8535
Universitas Sumatera Utara
22 2.3.2 Peta Memory ATMega8535
ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian yaitu : 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM internal.
Register untuk keperluan umum menempati space data pada alamat terbawah yaitu $00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter, fungsi fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada gambar 2.5 dibawah . Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.
Gambar 2.5 Memori AVR ATMega8535
Universitas Sumatera Utara
23
Selain itu AVR ATmega8535 juga memilki memori data berupa EEPROM 8-bit sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF. 2.3.3 Status Register Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler. Contoh status register pada gambar 2.6
Gambar 2.6 Status Register
Status Register ATMega8535 1. Bit7 --> I (Global Interrupt Enable), Bit harus di Set untuk mengenable semua jenis interupsi. 2. Bit6 --> T (Bit Copy Storage), 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 menggunakan instruksi BST, dan sebaliknya bit T dapat disalin kembali kesuatu bit dalam register GPR dengan menggunakan instruksi BLD. 3. Bi5 --> H (Half Cary Flag) 4. Bit4 --> S (Sign Bit) merupakan hasil operasi EOR antara flag -N (negatif) dan flag V (komplemen dua overflow). 5. Bit3 --> V (Two's Component Overflow Flag) Bit ini berfungsi untuk mendukung operasi matematis. 6. Bit2 --> N (Negative Flag) Flag N akan menjadi Set, jika suatu operasi matematis menghasilkan bilangan negatif. 7. Bit1 --> Z (Zero Flag) Bit ini akan menjadi Set apabila hasil operasi matematis menghasilkan bilangan 0. 8. Bit0 --> C (Cary Flag) Bit ini akan menjadi set apabila suatu operasi menghasilkan carry.
Universitas Sumatera Utara
24
2.3.4 Konfigurasi Pin Mikrokontroler AVR ATMEGA8535 Mikrokontroler ATMega8535 memiliki 40 pin untuk model PDIP, dan 44 pin untuk model TQFP dan PLCC. Contoh gambar IC Mikrokontroler ATMega 8535 pada gambar 2.7 Nama-nama pin pada mikrokontroler ini adalah : 1. VCC : merupakan pin yang berfungsi sebagai pin masukan catu daya 2. GND : merupakan pin ground. 3. Port A (PA0...PA7) : merupakan pin I/O dan pin masukan ADC 4. Port B (PB0 – PB7) : merupakan akan pin I/O dua arah dan pin fungsi khusus, yaitu sebagai Timer/Counter, komperator analog dan SPI. 5. Port C (PC0 – PC7) : merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komperator analog, input ADC dan Timer Osilator. 6. Port D (PD0 – PD7) : merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komperator analog, interupsi eksternal dan komunikasi serial. 7. RESET : merupakan pin yang digunakan untuk mereset mikrokontroler. 8. XTAL1 dan XTAL2 : merupakan pin masukan clock eksternal. 9. AVCC : merupakan pin masukan tegangan untuk ADC. 10. AREF : merupakan pin tegangan referensi ADC
Universitas Sumatera Utara
25
Gambar 2.7 IC Mikrokontroler ATMEGA8535
Deskripsi pin-pin pada mikrokontroler ATMega8535 :
1. Port A Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D converter.
Universitas Sumatera Utara
26 2. Port B Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
Tabel 2.1 Fungsi Pin-pin Port B
Port Pin Fungsi Khusus PB0
T0 = timer/counter 0 external counter input
PB1
T1 = timer/counter 0 external counter input
PB2
AIN0 = analog comparator positive input
PB3
AIN1 = analog comparator negative input
PB4
SS = SPI slave select input
PB5
MOSI = SPI bus master output / slave input
PB6
MISO = SPI bus master input / slave output
PB7
SCK = SPI bus serial clock
3. Port C Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input,
Universitas Sumatera Utara
27 atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2.
4. Port D Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
Tabel 2.2 Fungsi Pin-pin Port D
Port Pin Fungsi Khusus PD0
RDX (UART input line)
PD1
TDX (UART output line)
PD2
INT0 ( external interrupt 0 input )
PD3
INT1 ( external interrupt 1 input )
PD4
OC1B (Timer/Counter1 output compareB match output)
PD5
OC1A (Timer/Counter1 output compareA match output)
PD6
ICP (Timer/Counter1 input capture pin)
PD7
OC2 (Timer/Counter2 output compare match output)
Universitas Sumatera Utara
28 5. RESET RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset.
6. XTAL1 XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit.
7. XTAL2 XTAL2 adalah output dari inverting oscillator amplifier.
8. AVcc Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.
9. AREF AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10. AGND AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah.
Universitas Sumatera Utara
29 2.4
Sensor Optocoupler
2.4.1
Pengertian Optocoupler
Optocoupler adalah suatu piranti yang terdiri dari 2 bagian yaitu transmitter dan receiver, yaitu antara bagian cahaya dengan bagian deteksi sumber cahaya terpisah. Biasanya optocoupler digunakan sebagai saklar elektrik, yang bekerja secara otomatis. Optocoupler atau optoisolator merupakan komponen penggandeng (coupling) antara rangkaian input dengan rangkaian output yang menggunakan media cahaya (opto) sebagai penghubung. Dengan kata lain, tidak ada bagian yang konduktif antara kedua rangkaian tersebut. Optocoupler sendiri terdiri dari 2 bagian, yaitu transmitter (pengirim) dan receiver (penerima). 1. Transmiter Merupakan bagian yang terhubung dengan rangkaian input atau rangkaian kontrol. Pada bagian ini terdapat sebuah LED infra merah (IR LED) yang berfungsi untuk mengirimkan sinyal kepada receiver. Padatransmitter dibangun dari sebuah LED infra merah. Jika dibandingkan dengan menggunakan LED biasa, LED infra merah memiliki ketahanan yang lebih baik terhadap sinyal tampak. Cahaya yang dipancarkan oleh LED infra merah tidak terlihat oleh mata telanjang. 2. Receiver Merupakan bagian yang terhubung dengan rangkaian output atau rangkaian beban, dan berisi komponen penerima cahaya yang dipancarkan oleh transmitter. Komponen penerima cahaya ini dapat berupa photodioda atapun phototransistor. Pada bagian receiver dibangun dengan dasar komponen phototransistor. Phototransistor merupakan suatu transistor yang peka terhadap tenaga cahaya. Suatu sumber cahaya menghasilkan energi panas, begitu pula dengan spektrum infra merah. Karena spekrum infra mempunyai efek panas yang lebih besar dari cahaya tampak, maka phototransistor lebih peka untuk menangkap radiasi dari sinar infra merah.
Universitas Sumatera Utara
30 Jika dilihat dari penggunaannya, optocoupler biasa digunakan untuk mengisolasi common rangkaian input dengan common rangkaian output. Sehingga supply tegangan untuk masing-masing rangkaian tidak saling terbebani dan juga untuk mencegah kerusakan pada rangkaian kontrol (rangkaian input). Contoh bentuk fisik sensor optocoupler pada gambar 2.8
Gambar 2.8 Bentuk fisik Sensor Optocoupler
Optocoupler merupakan gabungan dari LED infra merah dengan fototransistor yang terbungkus menjadi satu chips. Cahaya infra merah termasuk dalam gelombang elektromagnetik yang tidak tampak oleh mata telanjang. Sinar ini tidak tampak oleh mata karena mempunyai panjang gelombang berkas cahaya yang terlalu panjang bagi tanggapan mata manusia. Sinar infra merah mempunyai daerah frekuensi 1 x 1012 Hz sampai dengan 1 x 1014 GHz atau daerah frekuensi dengan panjang gelombang 1µm – 1mm. LED infra merah ini merupakan komponen elektronika yang memancarkan cahaya infra merah dengan konsumsi daya sangat kecil. Jika diberi prasikap maju, LED infra merah yang terdapat pada optocoupler akan mengeluarkan panjang gelombang sekitar 0,9 mikrometer. Proses terjadinya pancaran cahaya pada LED infra merah dalam optocoupler adalah sebagai berikut. Saat dioda menghantarkan arus, elektron lepas dari ikatannya karena memerlukan tenaga dari catu daya listrik. Setelah elektron lepas, banyak elektron yang bergabung dengan lubang yang ada di sekitarnya (memasuki lubang lain yang kosong). Pada saat masuk lubang yang lain, elektron melepaskan tenaga yang akan diradiasikan dalam bentuk cahaya, sehingga dioda akan menyala atau memancarkan cahaya pada saat dilewati arus. Cahaya infra merah yang terdapat
Universitas Sumatera Utara
31
pada optocoupler tidak perlu lensa untuk memfokuskan cahaya karena dalam satu chip mempunyai jarak yang dekat dengan penerimanya. Pada optocoupler yang bertugas sebagai penerima cahaya infra merah adalah fototransistor. Fototransistor merupakan komponen elektronika yang berfungsi sebagai detektor cahaya infra merah. Detektor cahaya ini mengubah efek cahaya menjadi sinyal listrik, oleh sebab itu fototransistor termasuk dalam golongan detektor optik. Fototransistor memiliki sambungan kolektor–basis yang besar dengan cahaya infra merah, karena cahaya ini dapat membangkitkan pasangan lubang elektron. Dengan diberi prasikap maju, cahaya yang masuk akan menimbulkan arus pada kolektor. Fototransistor memiliki bahan utama yaitu germanium atau silikon yang sama dengan bahan pembuat transistor. Tipe fototransistor juga sama dengan transistor pada umumnya yaitu PNP dan NPN. Perbedaan transistor dengan fototransistor hanya terletak pada rumahnya yang memungkinkan cahaya infra merah mengaktifkan daerah basis, sedangkan transistor biasa ditempatkan pada rumah logam yang tertutup. Simbol optocoupler seperti terlihat pada Gambar 2.9
Gambar 2.9 Simbol Optocoupler Kerugian atau keburukan dari optocoupler adalah pada kecepatan switchingnya. Hal ini disebabkan karena efek dari area yang sensistif terhadap cahaya dan timbulnya efek kapasitansi pada ‘junction’-nya. Jika diperlukan kecepatan switching yang cukup tinggi maka optoisolator harus dikonfigurasikan sehingga yang digunakan adalah sebagai photodiodenya.
Universitas Sumatera Utara
32
2.4.2
Prinsip Kerja dari Rangkaian Optocoupler
Prinsip kerja dari rangkaian Optocoupler adalah sebagai berikut : 1. Jika antara phototransistor dan LED terhalang maka phototransistor tersebut akan off sehingga output dari kolektor akan berlogika high. 2. Sebaliknya jika antara phototransistor dan LED tidak terhalang maka phototransistor tersebut akan on sehingga output-nya akan berlogika low.
2.5 LCD (Liquid Crystal Display)
LCD berfungsi menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. LCD yang digunakan adalah jenis LCD M1632. LCDM1632 merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya rendah. M1632 adalah merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah.
Modul ini dilengkapi dengan mikrokontroler yang didisain khusus untuk mengendalikan LCD. Kegunaan LCD banyak sekali dalam perancangan suatu sistem dengan menggunakan mikrokontroler. LCD dapat berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. Pada bab ini akan dibahas antarmuka LCD dengan mikrokontroler ATMega8535. Contoh LCD pada gambar 2.10 dibawah ini
Gambar 2.10 LCD (Liquid Crystal Display)
Universitas Sumatera Utara
33 Urutan pin (1), umumnya, dimulai dari sebelah kiri (terletak di pojok kiri atas) dan untuk LCD yang memiliki 16 pin, 2 pin terakhir (15 & 16) adalah anoda dan katoda untuk back-lighting. Dibawah ini table fungsi pin – pin LCD (Liquid Crystal Display) :
Tabel 2.3 Fungsi pin-pin pada Liquid Crystal Display
Sebagaimana terlihat pada kolom deskripsi (symbol and functions), interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8 bit dikirim ke LCD secara 4 atau 8 bit pada satu waktu. Jika mode 4 bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8 bit (pertama dikirim 4 bit MSB lalu 4 bit LSB dengan pulsa clock EN setiap nibblenya). Berikut adalah contoh LCD (2×16) yang umum digunakan :
Gambar 2.11 LCD M1632
Universitas Sumatera Utara
34 Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high (1) dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus. Saat jalur lainnya sudah siap, EN harus diset ke 0 dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high (1). Ketika jalur RS berada dalam kondisi low (0), data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau 1, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf pada layar maka RS harus diset ke 1. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high (1), maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke 0. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), mereka dinamakan DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4 atau 8 bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting. Mode 8 bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data). Sedangkan mode 4 bit minimal hanya membutuhkan 7 bit (3 pin untuk kontrol, 4 untuk data). Aplikasi dengan LCD dapat dibuat dengan mudah dan waktu yang singkat, mengingat koneksi parallel yang cukup mudah antara kontroller dan LCD.
2.6 Transistor
Didalam pemakaiannya, transistor dipakai sebagai komponen saklar (switching) dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (cut off) yang ada pada karakteristik transistor. Pada daerah penjenuhan nilai resistansi persambungan kolektor emitter secara ideal sama dengan nol atau kolektor dan emiter terhubung langsung (short). Keadaan ini menyebabkan tegangan kolektor emiter (VCE) = 0 Volt pada keadaan ideal, tetapi pada kenyataannya VCE bernilai 0 sampai 0.3 Volt. Dengan menganalogikakan transistor sebagai saklar, transistor tersebut dalam keadaan ON seperti pada gambar 2.12
Universitas Sumatera Utara
35
R R RB
VCE VBE
Saklar On
Gambar 2.12 Transistor Sebagai Saklar ON Saturasi pada transistor terjadi apabila arus pada kolektor menjadi maksimum dan untuk mencari besar arus basis agar transistor saturasi adalah :
Imax =
Vcc Rc
Hfe.IB =
IB =
Vcc Rc
Vcc hfe.Rc
……………………………………………………………………..(2.3)
Hubungan antara tegangan basis (VB) dan arus basis (IB) adalah :
IB =
VB VBE RB
VB = IB + RB + VBE
VB =
VCC .RB VBE hfe.RC
……………………………………………………………..(2.4)
Jika tegangan VB tekah mencapai VB =
VCC .RB VBE , maka transistor akan saturasi dengan IC mencapai hfe.RC
maksimum. Gambar 2.13 menunjukkan apa yang dimaksud dengan VCE (sat) adalah harga VCE pada beberapa titik dibawah knee dengan posisi tepatnya ditentukan pada lembar
Universitas Sumatera Utara
36 data. Biasanya VCE (sat) hanya beberapa perpuluhan Volt, maupun pada arus kolektor sangat besar bisa melebihi 1 Ampere. Bagian dibawah knee (Saturation) pada Gambar 2.13 dikenal sebagai daerah saturasi.
IC
Penjenuhan (Saturation) IB > IB (sat)
Vcc Rcc
IB = I B (sat)
IB Titik Sumbat (Cut Off)
IB = 0 VCE
Gambar 2.13 Karakteristik Daerah Saturasi Pada Transistor Pada daerah penyumbatan, nilai resistansi persambungan kolektor emiter secara ideal sama dengan tidak terhitung atau terminal kolektor dan emiter terbuka (open). Keadaan ini menyebabkan tegangan (VCB) sama dengan tegangan sumber (Vcc). Tetapi pada kenyataannya Vcc pada saat ini kurang dari Vcc karena terdapat arus bocor dari kolektor ke emiiter. Dengan menganalogikakan transistor sebagai saklar, transistor tersebut dalam keadaan cut off seperti Gambar 2.14.
Vcc R
IC
Vcc R
RB VB
IB
VCE
Saklar Off
VBE
Gambar 2.14 Transistor Sebagai Saklar Off
Keadaan penyumbatan terjadi apabila besar tegangan habis (VB) sama dengan tegangan kerja transistor (VBE) sehingga arus basis (IB) = 0 maka :
Universitas Sumatera Utara
37
IB =
IC hfe
IC = IB . hfe IC = 0 . hfe IC = 0 Hal ini menyebabkan VCE sama dengan Vcc dapat dibuktikan dengan rumus : VCC = VC + VCE VCE = Vcc – (Ic . Rc) VCE = VCC
2.7 Perangkat Lunak
2.7.1 Pemrograman Bahasa C
Pada perancangan program pada alat, program yang digunakan adalah pemrograman bahasa C. Berikut penjelasan dasar-dasar pemrograman bahasa C : 1. Tipe Data Berikut ini adalah tipe-tipe data yang ada dalam bahasa C dan yang dikenali oleh CodeVisionAVR :
Universitas Sumatera Utara
38 Tabel 2.4 Tipe Data Tipe Data
Ukuran
Jangkauan Nilai
Bit
1 bit
0 atau 1
Char
1 byte
-128 s/d 225
Unsigned Char
1 byte
0 s/d 225
Signed Char
1 byte
-128 s/d 127
Int
2 byte
-32.768 s/d 32.767
Short Int
2 byte
-32.768 s/d 32.767
Unsigned Int
2 byte
0 s/d 65.535
Signed Int
2 byte
-32.768 s/d 32.767
Long Int
4 byte
-2.147.483.648 s/d 2.147.483.647
Unsigned Long Int
4 byte
0 s/d 4.294.967.295
Signed Long Int
4 byte
-2.147.483.648 s/d 2.147.483.647
Float
4 byte
1.2*10-38 s/d 3.4*10+38
Double
4 byte
1.2*10-38 s/d 3.4*10+38
2. Konstanta dan Variabel Konstanta dan variabel merupakan sebuah tempat untuk menyimpan data yang berada di dalam memori. Konstanta berisi data yang nilainya tetap dan tidak dapat diubah selama program dijalankan, sedangkan variabel berisi data yang bisa berubah nilainya saat program dijalankan. Untuk membuat sebuah konstanta atau variabel maka kita harus mendeklarasikannya lebih dahulu, yaitu dengan sintaks berikut :
Universitas Sumatera Utara
39 Deklarasi konstanta : Const [tipe_data][nama_konstanta]=[nilai]
Contoh : Const char konstantaku=0x10;
Deklarasi variabel : [tipe_data][nama_variabel]=[nilai_awal]
Contoh : Char variabelku; Char variabelku=0x20; Bit variabel_bit; Bit variabel_bit=1;
Pada deklarasi variabel, [nilai_awal] bersifat operasional sehingga boleh diisi dan boleh tidak diisi. Nilai_awal merupakan nilai default variabel tersebut dan jika tidak diisi maka nilai defaultnya adalah 0 (nol). Beberapa variabel dengan tipe yang sama dapat dideklarasikan dalam satu baris seperti contoh berikut : Char data_a, data_b, data_c;
3. Komentar Komentar adalah tulisan yang tidak dianggap sebagau bagian dari tubuh program. Komentar digunakan untuk memberikan penjelasan, informasi ataupun keterangan-keterangan yang dapat membantu mempermudah dalam memahami kode program baik bagi si pembuat program maupun bagi orang lain yang membacanya. Komentar yang hanya satu baris ditulis dengan diawali ’//’ sedangkan komentar yang lebih dari satu baris diawali dengan ’/*’ dan diakhiri dengan ’*/’.
Contoh :
Universitas Sumatera Utara
40 // Ini adalah komentar satu baris /* Sedangkan yang ini adalah komentar yang lebih dari satu baris*/
Selain dihunakan untuk memberikan keterangan program, komentar juga dapat digunakan untuk membantu dalam pengujian program yaitu dengan menon-aktifkan dan mengaktifkan kembali bagian program tertentu selama proses pengujian. 4. Pengarah Preprosessor Pengarah preprosessor digunakan untuk mendefenisikan prosessor yang digunakan, dalam hal ini adalah untuk mendefenisikan jenis mikrokontroller yang digunakan. Dengan pengarah preprosesor ini maka pendeklarasian register-register dan penamaannya dilakukan pada file yang lain yang disisipkan dalam program utama dengan sintaks sebagai berikut : # include
Contoh : # include <mega8535.h>
5. Pernyataan Pernyataan adalah satu buah instruksi lengkap berdiri sendiri. PORTC = 0x0F;
Pernyataan diatas merupakan sebuah instruksi untuk mengeluarkan data 0x0F ke Port C. Contoh sebuah blok pernyataan : { PORTA=0x00; // pernyataan_1 PORTB=0x0F; // pernyataan_2 PORTC=0xFF; // pernyataan_3 }
6. Operator Aritmatika
Universitas Sumatera Utara
41 Operator aritmatika adalah beberapa operator yang digunakan untuk melakukan perhitungan aritmatika. Berikut adalah tabel operator aritmatika :
Tabel 2.5 Operator Aritmatika Operator
Keterangan
+
Operator untuk operasi penjumlahan
-
Operator untuk operasi pengurangan
*
Operator untuk operasi perkalian
/
Operator untuk operasi pembagian
%
Operator untuk operasi sisa pembagian
7. Operator Logika Operator logika digunakan untuk membentuk suatu logika atas dua buah kondisi atau lebih. Berikut ini adalah tabel operator logika : Tabel 2.6 Operator Logika Operator
Keterangan
&&
Operator untuk logika AND
ΙΙ
Operator untuk logika OR
!
Operator untuk logika NOT
Contoh : if ( (a==b) && (c!=d) ) = 0xFF;
Universitas Sumatera Utara
42 Pernyataan diatas terdiri dari 2 buah kondisi yaitu a==b dan c!=d yang keduanya dihubungkan dengan logika && (AND). Jika logika yang dihasilkan benar maka perintah PORTC = 0xFF akan dikerjakan dan jika salah tidak akan dikerjakan. 8. Operator Penambahan dan Pengurangan Operator penambahan dan pengurangan adalah operator yang digunakan untuk menaikkan atau menurunkan nilai sebuah variabel dengan selisih 1. Berikut adalah tabel operator penambahan dan pengurangan : Tabel 2.7 Operator Penambahan dan Pengurangan Operator
Keterangan Operator untuk penambahan nilai
++
variabel dengan 1 Operator pengurangan nilai variabel
--
dengan 1
Contoh : a = 1; b = 5; a++; b--;
Maka operator a++ akan mengubah variable a dari 1 menjadi 2 dan operator b—akan mengubah variable b dari 5 menjadi 4. 9. Pernyataan If Pernyataan If digunakan untuk melakukan pengambilan keputusan terhadap dua buah kemungkinan yaitu mengerjakan suatu blok pernyataan atau tidak. Bentuk pernyataan If adalah : if (kondisi) {
Universitas Sumatera Utara
43 // blok pernyataan yang akan dikerjakan // jika kondisi if terpenuhi }
Contoh : if (PINA>0x80) { Dataku=PINA; PORTC=0xFF; }
Pernyataan if diatas akan mengecek apakah data yang terbaca pada Port A (PINA) nilainya lebih dari 0x80 atau tidak, jika ya maka variable dataku diisi dengan nilai PINA dan data 0xFF dikeluarkan ke PORT C. Apabila dalam blok pernyataan hanya terdapat satu pernyataan saja maka tanda { dan } dapat dihilangkan seperti : if (PINA>0x80) PORTC=0xFF;
2.7.2 CodeVisionAVR CodeVisionAVR merupakan salah satu software compiler yang khusus digunakan untuk mikrokontroller keluarga AVR. Meskipun CodeVisionAVR termasuk software komersial, namun kita tetap dapat menggunakannya dengan mudah karena terdapat versi evaluasi yang disediakan secara gratis walaupun dengan kemampuan yang dibatasi. Dari bebarapa software kompiler C yang pernah digunakan, CodeVisionAVR merupakan yang terbaik jika dibandingkan dengan kompiler-kompiler yang lain karena memiliki beberapa kelebihan yang dimiliki oleh CodeVisionAVR antara lain : 1. Menggunakan IDE (Integrated Devvelopment Environment)
Universitas Sumatera Utara
44 2. Fasilitas yang disediakan lengkap (mengedit program, mengkompile program, mendownload program) serta tampilannya terlihat menarik dan mudah dimengerti 3. Mampu membangkitkan kode program secara otomatis dengan menggunakan fasilitas CodeWizardAVR 4. Memiliki fasilitas untuk mendownload program langsung dari CodeVisionAVR dengan menggunakan
hardware khusus seperti Atmel STK500, Kanda System STK200+/300 dan
bebarapa hardware lain yang telah didefenisikan oleh CodeVisionaAVR 5.
Memiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek kode assemblernya, contoh AVRStudio
6. Memiliki terminal komunikasi serial yang terintegrasi dalam CodeVisionAVR sehingga dapat digunakan untuk membantu pengecekan program yang telah dibuat khususnya yang menggunakan fasilitas komunikasi serial USART. Berikut adalah tampilan codevisionAVR :
Gambar 2.15 Tampilan CodeVisionAVR
Universitas Sumatera Utara
45
Gambar 2.16 Rangkaian Alat Pengendalian Lampu Rumah dengan Jaringan GSM
Universitas Sumatera Utara