BAB II LANDASAN TEORI
Mikroprosesor adalah gabungan 2 kata yaitu mikro dan prosesor. Jadi, mikroprosesor adalah sebuah alat yang berukuran kecil yang digunakan untuk memproses data secara digital. Selain berukuran kecil, mikroprosesor memiliki kemampuan komputasi yang lebih rendah dibandingkan dengan komputer yang digunakan. Pengendali mikro (Inggris: microcontroller) adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O. Sistem komputer dewasa ini paling banyak justru terdapat di dalam peralatan lain, seperti telepon, jam, perangkat rumah tangga, kendaraan, dan bangunan. Sistem embedded biasanya mengandung syarat minimal sebuah sistem mikroprosesor yaitu memori untuk data dan program, serta sistem antarmuka input/output yang sederhana. Sistem mikrokontroler lebih banyak melakukan pekerjaan-pekerjaan sederhana yang penting seperti mengendalikan motor, saklar, resistor variabel, atau perangkat elektronis lain. Seringkali satu-satunya bentuk antarmuka yang ada pada sebuah sistem mikrokontroler hanyalah sebuah LED, bahkan ini pun bisa dihilangkan jika tuntutan konsumsi daya listrik mengharuskan demikian.
1
2
Sebuah chip mikrokontroler umumnya memiliki fitur: • central processing unit - mulai dari prosesor 4-bit yang sederhana hingga prosesor kinerja tinggi 64-bit. • input/output antarmuka jaringan seperti port serial (UART) • antarmuka komunikasi serial lain seperti I²C, Serial Peripheral Interface and Controller Area Network untuk sambungan sistem • periferal seperti timer dan watchdog • RAM untuk penyimpanan data • ROM, EPROM, EEPROM atau Flash memory untuk menyimpan program komputer • pembangkit clock - biasanya berupa resonator rangkaian RC • pengubah analog-ke-digital Jenis microcontroller yang banyak dipakai di Indonesia : MCS 51 ATMEL (AVR) PIC ARM ARDUINO Dalam Tugas Akhir ini jenis microcontroller yang dipakai adalah dari keluarga Arduino. Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Salah satu yang membuat
3
Arduino memikat hati banyak orang adalah karena sifatnya yang open source, baik untuk hardware maupun software-nya. Diagram rangkaian elektronik Arduino digratiskan kepada semua orang. Kita bisa bebas men-download gambarnya, membeli komponen-komponennya, membuat PCB-nya dan merangkainya sendiri tanpa harus membayar kepada para pembuat Arduino. Sama halnya dengan IDE Arduino yang bisa di-download dan diinstal pada komputer secara gratis. Saat ini komunitas Arduino berkembang dengan pesat dan dinamis di berbagai belahan dunia. Bermacam-macam kegiatan yang berkaitan dengan projekprojek Arduino bermunculan di mana-mana, termasuk di Indonesia. Yang membuat Arduino dengan cepat diterima oleh orang-orang adalah karena: •
Murah, dibandingkan platform yang lain.
Sebuah investasi yang sangat
murah untuk berbagai keperluan projek. Harganya akan lebih murah lagi jika pengguna
membuat
papannya
sendiri
dan
merangkai
komponen-
komponennya satu per satu. •
Lintas platform, software Arduino dapat dijalankan pada system operasi Windows, Macintosh OSX dan Linux, sementara platform lain umumnya terbatas hanya pada Windows.
•
Sangat mudah dipelajari dan digunakan. Processing adalah bahasa pemrograman yang digunakan untuk menulis program di dalam Arduino. Processing adalah bahasa pemrograman tingkat tinggi yang dialeknya sangat mirip dengan C++ dan Java, sehingga pengguna yang sudah terbiasa dengan kedua bahasa tersebut tidak akan menemui kesulitan dengan Processing.
4
Bahasa pemrograman Processing sungguh-sungguh sangat memudahkan dan mempercepat pembuatan sebuah program karena bahasa ini sangat mudah dipelajari dan diaplikasikan dibandingkan bahasa pemrograman tingkat rendah seperti Assembler yang umum digunakan pada platform lain namun cukup sulit. •
Sistem yang terbuka, baik dari sisi hardware maupun software-nya.
Secara umum Arduino terdiri dari dua bagian, yaitu: 1. Hardware berupa papan input/output (I/O) 2. Software, software Arduino meliputi IDE untuk menulis program, driver untuk koneksi dengan komputer, contoh program dan library untuk pengembangan program. Selanjutnya kita akan mengenal masing-masing bagian ini lebih jauh.
2.1 DFRduino Mega Mikrokontroler yang digunakan dalam DFRduino Mega yaitu ATmega1280. Terdiri dari 54 pin digital input/output (yang 14 diantaranya dapat digunakan sebagai output PWM), 16 input analog, 4 UARTs (hardware serial ports), 16 MHz oscillator, USB port, konektor power, header ICSP, dan sebuah tombol reset. DFRduino Mega 1280 sudah terdiri dari komponen-komponen yang dibutuhkan untuk mengoperasikan mikrokontroler, kita tinggal menghubungkan ke komputer via port USB atau memberinya tegangan sumber melalui adaptor atau baterai 9V, dan langsung bisa memulai melakukan programming. Gambar 2.1 di bawah merupakan foto board DRFduino mega.
5
Gambar 2.1 DFRduino Mega
Sedangkan layoutnya dapat dilihat pada gambar 2.2 di bawah ini.
Ganmbar 2.2 Layout DFRduino Mega
Spesifikasi DFRduino Mega :
•
Microcontroller : ATmega1280
•
Operating Voltage : 5V
•
Input Voltage (recommended) : 7-12V
•
Input Voltage (limits) : 6-20V
6
•
Digital I/O Pins : 54 (of which 14 provide PWM output)
•
Analog Input Pins : 16
•
DC Current per I/O Pin : 40 mA
•
DC Current for 3.3V Pin : 50 mA
•
Flash Memory : 128 KB of which 4 KB used by bootloader
•
SRAM : 8 KB
•
EEPROM : 4 KB
•
Clock Speed : 16 MHz
2.2 Software Arduino
IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java. IDE Arduino terdiri dari: • Editor program, sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam bahasa Processing. • Compiler, sebuah modul yang mengubah kode program (bahasa Processing) menjadi kode biner. Bagaimanapun sebuah microcontroller tidak akan bisa memahami bahasa Processing. Yang bisa dipahami oleh microcontroller adalah kode biner. Itulah sebabnya compiler diperlukan dalam hal ini. •
Uploader, sebuah modul yang memuat kode biner dari Jomputer ke dalam memory di dalam papan Arduino.
7
2.3 Program Bahasa C Arduino Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Setiap fungsi terdiri atas satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan untuk melaksanakan tugas khusus. Bagian pernyataan fungsi diawali dengan tanda kurung kurawal buka ({) dan diakhiri dengan tanda kurung kurawal tutup (}).Di antara kurung kurawal itu dapat dituliskan statemen-statemen program C. Dalam arduino, struktur dasar C minimal terdiri dari dua fungsi yaitu setup() dan loop() . Fungsi setup() dijalankan sekali setiap board arduino dihidupkan sedangkan fungsi loop() dijalankan terus menerus selama board arduino hidup. Secara garis besar skecth program arduino adalah seperti gambar 2.3 berikut.
Gambar 2.3 arduino sketch Fungsi setup() ini sama halnya seperti fungsi main() pada bahasa C. Seperti kita ketahui bahasa C dikenal sebagai bahasa pemrograman terstruktur karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagiannya (subroutine).I Fungsi-fungsi yang ada selain fungsi utama merupakan program-program bagian.
8
2.4 Prinsip Kerja Air Conditioner Air Conditioner atau lebih dikenal dengan singkatan AC merupakan alat yang berfungsi sebagai pendingin ruangan. Sebuah AC terdiri dari dari : Compressor AC Compressor AC adalah power unit dari sistem AC. Ketika AC dijalankan, compressor AC mengubah fluida kerja/refrigent berupa gas dari yang bertekanan rendah menjadi gas yang bertekanan tinggi. Gas bertekanan tinggi kemudian diteruskan menuju kondensor. Kondensor AC Kondensor adalah sebuah alat yang digunakan untuk mengubah gas yang bertekanan tinggi berubah menjadi cairan yang bertekanan tinggi yang kemudian akan dialirkan ke orifice tube. Kondensor merupakan bagian yang “panas” dari air conditioner. Kondensor bisa disebut heat exchange yang bisa memindahkan panas ke udara atau ke intermediate fluid (semacam air larutan yang mengandung ethylene glycol), untuk membawa panas ke orifice tube. Orifice Tube Orifice tube merupakan tempat di mana cairan bertekanan tinggi diturunkan tekanan dan suhunya menjadi cairan dingin bertekanan rendah. Dalam beberapa sistem, selain memasang sebuah orifice tube, dipasang juga katup ekspansi. Katup Ekspansi Katup ekspansi merupakan komponen penting dalam sistem air conditioner. Katup ini dirancang untuk mengontrol aliran cairan pendingin melalui katup orifice yang
9
merubah wujud cairan menjadi uap ketika zat pendingin meninggalkan katup pemuaian dan memasuki evaporator/pendingin. Evaporator AC Refrigent menyerap panas dalam ruangan melalui kumparan pendingin dan kipas evaporator meniupkan udara dingin ke dalam ruangan. Refrigent dalam evaporator mulai berubah kembali menjadi uap bertekanan rendah, tapi masih mengandung sedikit cairan. Campuran refrigent kemudian masuk ke akumulator / pengering. Ini juga dapat berlaku seperti mulut/orifice kedua bagi cairan yang berubah menjadi uap bertekanan rendah yang murni, sebelum melalui compressor AC untuk memperoleh tekanan dan beredar dalam sistem lagi. Biasanya, evaporator dipasangi silikon yang berfungsi untuk menyerap kelembapan dari refrigent. Thermostat Thermostat pada air conditioner beroperasi dengan menggunakan lempeng bimetal yang peka terhadap perubahan suhu ruangan. Lempeng ini terbuat dari 2 metal yang memiliki koefisien pemuaian yang berbeda. Ketika temperatur naik, metal terluar memuai lebih dahulu, sehingga lempeng membengkok dan akhirnya menyentuh sirkuit listrik yang menyebabkan motor AC aktif. Gambar 2.4 menunjukan bagianbagian dari AC tersebut.
10
Gambar 2.4 Bagian-bagian AC Dalam perkembangannya sebuah AC dapat dikontrol melalui remote kontrol. Melalui remote kontrol ini kita dapat mematikan/menyalakan AC, mengatur suhu yang di inginkan, mengatur kecepatan kipas, mengatur timer agar AC bisa mati sesuai waktu yang di inginkan dan lain-lain. Media transmisi untuk komunikasi antara AC dengan remote kontrol ini menggunakan infra merah/infra red.
2.5 Infra Red Sinar inframerah adalah termasuk cahaya monokromatis yang tidak tampak oleh mata manusia. Inframerah, mempunyai panjang gelombang 0,3 mm–0,7 µm. Aplikasi infra merah sering kita lihat penggunaannya untuk remote kontrol. Remote kontrol inframerah menggunakan cahaya inframerah sebagai media dalam mengirimkan data ke penerima. Data yang dikirimkan berupa pulsapulsa cahaya dengan modulasi frekuensi 40kHz. Sinyal yang dikirimkan merupakan data-data
11
biner. Untuk membentuk data-data biner tersebut, ada tiga metode yang digunakan yaitu pengubahan lebar pulsa, lebar jeda (space), dan gabungan keduanya. • Pulse - Coded Signals Dalam mengirimkan kode, lebar jeda tetap yaitu t sedangkan lebar pulsa adalah 2t. Jika lebar pulsa dan lebar jeda adalah sama yaitu t, berarti yang dikirim adalah bit 0, jika lebar pulsa adalah 2t dan lebar jeda adalah t, berarti yang dikirim adalah 1, diperlihatkan pada gambar 2.5 berikut
Gambar 2.5 Pengiriman Kode dengan Tipe Pulse-Coded Signal • Space - Coded Signal Dalam mengirimkan kode remote kontrol dilakukan dengan cara mengubah lebar jeda, sedangkan lebar pulsa tetap. Jika lebar jeda dan lebar pulsa adalah sama yaitu t, berarti yang dikirim adalah 0 . Jika lebar jeda adalah 3t, berarti data yang dikirim adalah 1, diperlihatkan pada gambar 2.6 berikut ini.
Gambar 2.6 Pengiriman Kode dengan Tipe Space-Coded Signal
12
• Shift - Coded Signal Tipe ini merupakan gabungan dari tipe pulse dan space, yaitu dalam mengirimkan kode remore kontrol, dengan cara mengubah lebar pulsa dan lebar jeda. Jika lebar jeda adalah t dan lebar pulsa adalah 2t, maka ini diartikan sebagai data 1. Jika lebar jeda adalah 2t dan lebar pulsa adalah t, maka ini diartikan sebagai data 0 (low). Sebelum kode dikirim, terlebih dahulu mengirimkan sinyal awal yang disebut sebagai header. Header adalah sinyal yang dikirimkan sebelum kode sebenarnya, dan juga merupakan sinyal untuk mengaktifkan penerima. Header selalu dikirimkan dengan lebar pulsa yang jauh lebih panjang daripada kode. Setelah header dikirimkan, baru kemudian kode remote kontrol. Kode remote kontrol dibagi menjadi dua fungsi, yaitu fungsi pertama digunakan sebagai penunjuk alamat peralatan yang akan diaktifkan, fungsi kedua adalah sebagai command atau perintah untuk melaksanakan instruksi dari remote kontrol. diperlihatkan pada gambar 2.7 berikut.
Gambar 2.7 Sinyal Header dan Kode remote kontrol
2.6 Digital IR Transmitter Digital IR Transmiter dirancang untuk berkomunikasi dengan digital IR receiver module. Modul ini biasa digunakan sebagai alat pengontrol yang biasa kita
13
sebut remote controll. Modul Digital IR Transmiter diperlihatkan pada gambar 2.8 berikut.
Gambar 2.8 Digital IR Tansmitter Spesifikasi : • Power Supply : 5V • Interface : Digital • Modulate Frekuensi : 38 Khz • Red - V+ • Green – Signal • Black – GND
2.7 Digital IR Receiver
IR Digital Receiver biasanya digunakan untuk membuat aplikasi pengendalian menggunakan remot pengontrol. Dengan module ini kita dapat membuat proyek arduino yang menerima perintah dari Remote Controller, jika kita bisa menyesuaikan data yang dikeluarkan oleh remot yang kita gunakan. tapi lebih mudah lagi jika kita
14
menggunakan IR digital Receiver dengan digital IR transmitter. Modul digital IR receiver diperlihatkan pada gambar 2.9 berikut.
Gambar 2.9 Digital IR Receiver Spesifikasi : • Power Supply : 5V • Interface:Digital • Modulate Frekuensi : 38 Khz • Red - V+ • Green – Signal • Black – GND
2.8 DHT11 DHT11 adalah sensor digital yang dapat mengukur suhu dan kelembaban udara di sekitarnya. Menggunakan teknik Digital Signal Acqusition dan teknologi penginderaan suhu dan kelembaban. Sensor ini mencakup pengukuran kelembaban
15
resistif dan komponen pengukuran suhu NTC yang terhubung pada microcontroller 8 bit. Sensor ini sangat mudah digunakan bersama dengan Arduino. Memiliki tingkat stabilitas yang sangat baik serta fitur kalibrasi yang sangat akurat. Koefisien kalibrasi disimpan dalam OTP program memory, sehingga ketika internal sensor mendeteksi sesuatu, maka module ini menyertakan koefisien tersebut dalam kalkulasinya. DHT11 diperlihatkan dalam gambar 2.10 berikut.
Gambar 2.10 DHT11 Spesifikasi : • Supply Voltage: +5 V • Temperature range : 0-50 °C error of ± 2 °C • Humidity : 20-90% RH ± 5% RH error • Interface : Digital
2.9 Liquid Crystal Display (LCD) 16x2 Sebuah LCD merupakan sebuah modulator opto-elektrikal yang berbentuk tipis dan rata, dan dibuat dari beberapa warna atau pikel monokromatik yang diatur
16
didepan sumber cahaya atau reflector. Alat ini biasanya memerlukan sumber tenaga yang kecil. diperlihatkan pada gambar 2.11 berikut.
Gambar 2.11 LCD Alhanumerik 2 baris 16 karakter Setiap kolom pada LCD memiliki rangkaian tunggal sendiri. Pikel-pikel pada LCD dialamatkan sekali menurut alamat baris dan kolom. Tipe ini disebut pengalamatan matriks pasif, karena piksel harus bertahan pada keadaan stabilnya, meskipun sebenarnya harus melakukan refresh tanpa kelebihan dari pengisian listrik yang stabil. Semakin banyak piksel maka tampilan yang dihasilkan oleh LCD matriks akan semakin halus.
2.10 Keypad Matriks 4x4 Keypad berfungsi sebagai interface antara perangkat (mesin) elektronik dengan manusia atau dikenal dengan istilah HMI (Human Machine Interface). Bentuk keypad 4x4 bisa dilihat pada gambar 2.12 berikut.
17
Gambar 2.12 Keypad 4x4 Konstruksi matrix keypad 4×4 untuk mikrokontroler dapat dibuat seeperti gambar 2.13 di bawah 2.
Gambar 2.13 Kontruksi matrik keypad 4x4 Konstruksi matrix keypad 4×4 diatas cukup sederhana, yaitu terdiri dari 4 baris dan 4 kolom dengan keypad berupas saklar push buton yang diletakan disetiap persilangan kolom dan barisnya. Rangkaian matrix keypad diatas terdiri dari 16 saklar push buton dengan konfigurasi 4 baris dan 4 kolom. 8 line yang terdiri dari 4 baris dan 4 kolom tersebut dihubungkan dengan port mikrokontroler 8 bit. Sisi baris dari matrix keypad ditandai dengan nama Row1, Row2, Row3 dan Row4 kemudian sisi kolom ditandai dengan nama Col1, Col2, Col3 dan Col4. Sisi input atau output dari matrix keypad
18
4×4 ini tidak mengikat, dapat dikonfigurasikan kolom sebagi input dan baris sebagai output atau sebaliknya tergantung dari programnya. Proses scaning untuk membaca penekanan tombol pada matrix keypad 4×4 untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4. Program untuk scaning matrix keypad 4×4 dapat bermacam-macam, tapi pada intinya sama. Misal kita asumsikan keypad aktif LOW (semua line kolom dan baris dipasang resistor pullup) dan dihubungkan ke port mikrokontroler dengan jalur kolom adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix keypad 4×4 diatas dapat dituliskan sebagai berikut. 1. Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111. Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang
19
dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111. 2. Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111. 3. Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111. Kemudian data pembacaan baris ini diolah sebagai pembacaan data penekanan tombol keypad. Sehingga tiap tombol pada matrix keypad 4×4 diatas dengan teknik scaning tersebut akan menghasilkan data penekanan tiap-tiap tombol sebagai berikut. SW1 = 0111 0111
SW9 = 0111 1101
SW2 = 1011 0111
SW10 = 1011 1101
20
SW3 = 1101 0111
SW11 = 1101 1101
SW4 = 1110 0111
SW12 = 1110 1101
SW5 = 0111 1011
SW13 = 0111 1110
SW6 = 1011 1011
SW14 = 1011 1110
SW7 = 1101 1011
SW15 = 1101 1110
SW8 = 1110 1011
SW16 = 1110 1110
Data port mikrokontroler, misalkan pada SW2 = 1011 0111 tersebut terbagi dalam nible atas dan nible bawah dimana data nible atas (1011) merupakan data yang kita kirimkan sedangkan data nible bawah (0111) adalah data hasil pembacaan penekanan tombol keypad SW2 pada proses scaning matrix keypad 4×4 diatas.
2.11 Buzzer Buzzer adalah suatu alat yang dapat mengubah sinyal listrik menjadi sinyal suara. Pada umumnya buzzer digunakan untuk alarm, karena penggunaannya cukup mudah yaitu dengan memberikan tegangan input maka buzzer akan mengeluarkan bunyi. Frekuensi suara yang di keluarkan oleh buzzer yaitu antara 1-5 KHz. Modul buzzer diperlihatkan pada gambar 2.14 di bawah ini.
Gambar 2.14 Buzzer