PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
TUGAS AKHIR
MODUL KOMUNIKASI SERIAL PADA MODEL SIMULATOR BOILER BERBASIS MIKROKONTROLER ATMEGA16
Disusun Oleh : NUNCIO NATALINO VICENTE DE FATIMA SOARES NIM : 125114012
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017 i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT MODULE COMMUNICATION OF THE SERIES ON MODEL SIMULATOR BOILER BASED ON MICROCONTROLLER ATMEGA 16
In partial fulfilment of the requirements for the degree of Sarjana Teknik Electrical Engineering Study Program Electrical Engineering Departement Science and Technology Faculty Sanata Dharma University
NUNCIO NATALINO VICENTE DE FATIMA SOARES NIM : 125114012
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTEMENT SCIENCE AND TECHNOLOGY FACULTY SANATA DHARMA UNIVERSITY 2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO: “KEBERHASILAN AKAN DIRAIH DENGAN BELAJAR” JANGAN INGAT LELAHNYA BELAJAR, TAPI INGAT BUAH MANISNYA YANG BISA DIPETIK KELAK KETIKA SUKSES
Karya tulis ini kupersembahkan kepada: Hati Kudus Tuhan Yesus Kristus Ganjuran dan Bunda Maria Pembimbingku yang amat berarti di hidupku, Papa dan mama tercinta, Saudara-saudaraku yang tercinta, Teman-teman seperjuanganku, Dan famalia warik uan jogja Terima kasih untuk semuanya……
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INTISARI Perkembangan teknologi yang sedemikian pesat pada kehidupan dewasa ini, menuntut manusia untuk bergaya hidup praktis. Hal ini juga berpengaruh pada bidang informasi. Oleh karena itu dilakukan perancangan dan realisasi pembuatan modul komunikasi serial antara mikrokontroler. Sistem peralatan ini menggunakan komunikasi serial sebagai penyampaian informasi. Untuk komunikasi ini sendiri menggunakn komunikasi dua arah . Sistem ini terdiri dari perangkat keras dan perangkat lunak. Perangkat keras terdiri dari IC Atmega16, dan LCD 2x16. Sedangkan perangkat lunak mikrokontroler dengan menggunakan bahasa C. Sistem ini akan bekerja setelah power supply dalam keadaan on maka mikrokontroler A berfungsi sebagai master untuk menerima data dari model simulator boiler menggunakan komunikasi serial USART. Data yang diterima berupa data parameter boiler. Sedangkan mikrokontroler B fungsinya sebagai slave untuk menerima data dari mikrokontroler master dan selanjutnya data tersebut akan ditampilkan pada LCD 2x16 menggunakan komunikasi serial I2C. Hasil akhir dari penelitian ini adalah menunjukkan bahwa sistem kerja dari modul komunikasi serial belum sesuai dengan perancangan awal, dan implementasinya hanya menggunakan komunikasi satu arah dan data yang diterima dari model simulator boiler berubah ubah sesuai dengan data yang dikirim dari model simulator boiler. Data boiler yang diterima oleh modul komunikasi serial akan sama dengan data yang dikirim dari model simulator boiler, kecuali untuk komunikasi SPI. Kata kunci : Komunikasi Serial, Atmega16, , LCD dan bahasa C.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT The rapid development of technology in today's life, demanding man's practical life style. It also affects the field of information. Therefore, to design and manufacture the realization of serial communication between the microcontroller module. This equipment systems using serial communication as the delivery of information. For this communication is to use your own two-way communication. The system consists of hardware and software. The hardware consists of ATmega16 IC, IC MAX 232 and 2x16 LCD. While software microcontroller using C language This system will work after the power supply in a state on the microcontroller A serves as the master to receive data from boiler simulator model using USART serial communication. The data received in the form of boiler parameter data. While the microcontroller and its function as a slave to receive data from the master microcontroller and further data will be displayed on the LCD 2x16 using I2C serial communication. The final results of this study indicate that the system is working on the serial communication module works well, although the data received from the boiler simulator model changed to change according to the data are sent from the boiler simulator models. Boiler data received by serial communication module will be the same as the data sent from the boiler simulator models, except for SPI communication. Keywords: Serial Communications, ATmega16, MAX 232, LCD and C language
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGATAR Puji dan syukur peneliti panjatkan kehadirat Tuhan Yang Maha Esa atas berkat dan rahmat-Nya sehingga peneliti dapat menyelesaikan Tugas Akhir ini dengan baik. Tujuan penulisan tugas akhir adalah untuk memenuhi persyaratan mencapai Derajat Sarjana Teknik dari Program Studi Teknik Elektro Fakultas Sains dan teknologi Universitas Sanata Dharma Yogyakarta. Penulisan tugas akhir ini dapat diselesaikan dengan baik tak lepas dari bantuan berbagai pihak. Oleh karena itu peneliti ingin mengucapkan terima kasih kepada : 1. Tuhan Yesus Kristus, atas kasih, berkat, dan penyertaannya sehingga penulis mampu menyelesaikan tugas akhir ini dengan baik. 2. Ibuk Paulina Heruningsih Prima Rosa, S.si., M.Sc. selaku Dekan Fakultas Sains dan Teknologi.
3. Bapak Petrus Setyo Prabowo, S.T., M.T. selaku Ketua Program Studi Teknik Elektro Universitas Sanata Dharma Yogyakarta. 4. Bapak Ir.Tjendro, selaku dosen pembimbing akademik yang telah mendampingi dan membimbing penulis salama perkuliahan. 5. Bapak Ir.Tjendro, M.Kom, selaku dosen pembimbing yang dengan penuh pergertian, sabar dan ketulusan hati memberi bimbingan, kritik, saran, serta motivasi dalam penulisan tugas akhir ini. 6. Bapak Martanto, S.T.,M.T. dan Bapak Petrus Setyo Prabowo, S.T., M.T. dosen penguji yang telah bersedia memberi masukan, bimbingan dan saran dalam memperbaiki tugas akhir ini. 7. Seluruh dosen dan laboran yang telah mengajarkan banyak ilmu yang bermanfaat selama menempuh pendidikan di Universitas Sanata Dharma Yogyakarta. 8. Seluruh Staff Program Studi Teknik Elektro Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta yang telah membantu dalam hal administrasi. 9. Kedua orangtuaku ( alm. Antonio Vicente Marques Soares dan Maria Do Rosario Fatima), atas kasih sayang, dukungan, motivasi dan doa yang tiada henti selama menempuh pendidikan di Universitas Sanata Dharma. 10. Kakak-kakak dan adik-adik ku tercinta yang selalu mendukung dan mendoakan saya, sehingga dapat menyelesaikan tugas belajar dengan baik.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN JUDUL (Bahasa Indonesia) ..................................................................... i HALAMAN JUDUL (Bahasa Inggris) .......................................................................... ii HALAMAN PERSETUJUAN ...................................................................................... iii HALAMAN PENGESAHAN ....................................................................................... iv PERNYATAAN KEASLIAN KARYA .......................................................................
v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP .............................................
vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS......................................................
vii
INTISARI ...................................................................................................................... viii ABSTRACT ................................................................................................................... ix KATA PENGANTAR ...................................................................................................
x
DAFTAR ISI .................................................................................................................
xii
DAFTAR GAMBAR ....................................................................................................
xv
DAFTAR TABEL ......................................................................................................... xvii
BAB I: PENDAHULUAN 1.1. Latar Belakang ...........................................................................................
1
1.2. Tujuan dan Manfaat Penelitian ..................................................................
2
1.3. Batasan Masalah ........................................................................................
3
1.4. Metodelogi Penelitian ................................................................................
2
BAB II : DASAR TEORI 2.1. Sistem Komunikasi ...................................................................................
4
2.1.1. Komunikasi Serial ...........................................................................
4
2.1.2. Data Transfer Rate ..........................................................................
4
2.2. Mikrokontroler ATmega16 .......................................................................
5
2.2.1. Konfigurasi Pin ATmega16 ............................................................
6
2.2.2. Pemrograman Mikrokontroler ATmega16 ..................................... 2.2.3. Bahasa C Pada AVR ATmega16 .................................................... 2.3. LCD (Liquid Cristal Display) ................................................................... 2.4. Komunikasi Data Melalui RS232 ............................................................. xii
8 9 9 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4.1. Prinsip Kerja RS232 ........................................................................
11
2.4.2. Konektor RS232 .............................................................................
11
2.4.3. Keuntungan Komunikasi Secara Serial ..........................................
13
2.4.4. MAX232 .........................................................................................
13
2.5. USART .....................................................................................................
14
2.5.1. Register Komunikasi Serial Usart ...................................................
14
2.6. SPI (SERIAL PERIPHERAL INTERFACE) .............................................
17
2.6.1. Pin – Pin Penghubung pada SPI .....................................................
17
2.6.2. Register Komunikasi SPI ...............................................................
18
2.6.2.1. SPI Control RegIster (SPCR) .......................................................
18
2.6.2.2. SPI Data Register (SPDR) ...........................................................
20
2.7. I2C (Inter Integrated Circui t ) .................................................................
20
2.7.1. Register Komunikasi I2C ................................................................
21
BAB III : RANCANGAN PENELITIAN 3.1. Proses Kerja Sistem ...................................................................................
24
3.2. Kebutuhan Perangkat Keras ......................................................................
24
3.3. Perancangan Perangkat Keras Mekanik ....................................................
25
3.4. Perancangan Perangkat Keras Elektronika ................................................
25
3.4.1. Perancangan Minimum Sistem dan Display LCD 2x16 ..................
26
3.4.2. Perancangan Rangkaian RS-232 ...................................................... 3.5. Perancangan Perangkat Lunak ................................................................... 3.5.1. Diagram Alir Utama ........................................................................
26 28 28
3.5.2. Diagram Alir Komunikasi Serial Dengan Sistem Boiler .................
29
3.5.3. Diagram Alir Komunikasi Serial Dengan Sistem Penampil ............
30
3.5.4. Diagram Alir Komunikasi Serial Dengan Sistem Monitoring..........
33
BAB IV : HASIL DAN PEMBAHASAN 4.1. Bentuk Fisik Hardware Elektronika ..........................................................
34
4.1.1. Bentuk Fisik Minimum System ATmega16 ...................................
34
4.1.2. Bentuk Fisik LCD 2x16 ..................................................................
35
4.1.3. Cara Penggunaan Alat ....................................................................
37
4.2. Pengujian Keberhasilan .............................................................................
37
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.2.1. Pengujian Penerimaan Data Temperatur ........................................
37
4.2.2. Pengujian Penerimaan Data Tekanan .............................................
38
4.2.3. Pengujian Penerimaan Data Level Air ...........................................
39
4.2.4. Pengujian Penerimaan Data Level Oli ...........................................
40
4.3. Pembahasan Software ................................................................................
41
4.3.1. Program USART ............................................................................
41
4.3.2. Program I2C ..................................................................................
45
4.4. Pembahasan Komunikasi Serial .................................................................
47
4.5. Analisa Sistem Secara Keseluruhan .............................................................
52
BAB V : KESIMPULAN DAN SARAN 5.1. Kesimpulan ..............................................................................................
54
5.2. Saran ........................................................................................................
54
DAFTAR PUSTAKA LAMPIRAN
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
Halaman Gambar 1.1. Diagram Blok Perancangan ..................................................................
3
Gambar 2.1. Model Komunikasi Data Sederhana .....................................................
4
Gambar 2.3 Konfigurasi kaki (pin) ATmega16 ........................................................
6
Gambar 2.4 Bentuk LCD (Liquid Cristal Display) ..................................................
10
Gambar 2.5. Komunikasi data serial .........................................................................
11 Gamabar
2.6. RS232 pin out (DB9) ..........................................................................
13
Gambar 2.7. Rangkaian MAX232 .............................................................................
14
Gambar 2.5. Avr Usart Tx dan Rx ............................................................................
15 Gambar
2.6. Register UCSRA ..................................................................................
15
Gambar 2.7. Register UCSRB ..................................................................................
16
Gambar 2.8. Register UCSRC ..................................................................................
16
Gambar 2.9. Cara kerja protokol SPI ........................................................................
17
Gambar 2.10. SPCR Register ....................................................................................
18
Gambar 2.12. SPDR Register ....................................................................................
20
Gambar 2.13. Kondisi sinyal start dan stop ..............................................................
21
Gambar 2.14. Sinyal ACK dan NACK ......................................................................
21
Gambar 2.15. Konfigurasi sistem I2C .......................................................................
22
Gambar 2.17. Timing diagram ..................................................................................
22
Gambar 3.1. Diagram Blok Keseluruhan Sistem ......................................................
24
Gambar 3.2 a dan b ...................................................................................................
25 Gambar
3.3. Minimum Sistem dan Display LCD 2x16 ............................................
26
Gambar 3.4. Rangkaian RS232 .................................................................................
27
Gambar 3.5. Diagram Alir Utama .............................................................................
28
Gambar 3.6. Diagram Alir Model Serial Komunikasi dengan Sistem Bolier ...........
29
Gambar 3.7. Diagram Alir Komunikasi Serial dengan Sistem Penampil ...........................................................................................
30
Gambar 3.8. Paket data serial “B=1” ........................................................................
31
Gambar 3.9. Contoh Data yang Akan Ditampilkan ..................................................
32
Gambar 3.10. Diagram alir modul serial komunikasi dengan Sistem Monitoring ........................................................................................ xv
33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.1. Minimum System A .............................................................................
34
Gambar 4.2. Minimum System B .............................................................................
35
Gambar 4.3. LCD 2x16 .............................................................................................
35
Gambar 4.4. Rangkaian Keseluruhan Modul Komunikasi Serial .............................
36
Gambar 4.5. Bentuk Fisik Modul Komunikasi Serial ...............................................
36
Gambar 4.6. Komunikasi Serial Data Temperatur (T=50C) .....................................
48
Gambar 4.7. Data temperatur pada osiloskop (T=50C) ............................................
48
Gambar 4.8. Komunikasi Serial Data Temperatur (T=200C) ...................................
50
Gambar 4.9. Data Temperatur Pada Osiloskop (T=200C) ........................................
50
Gambar 4.10. Data dan clock temperatur pada osiloskop (T=50C) ..........................
52
Gambar 4.11. Data dan clock temperatur pada osiloskop (T=50C) ..........................
52
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Halaman Tabel 2.1 Fungsi khusus port B .................................................................................
7
Tabel 2.2 Fungsi khusus port C .................................................................................
7
Tabel 2.3 Fungsi khusus port D .................................................................................
8
Tabel 2.5. Fungsi pin konektor DB25 dan DB9 ........................................................
12
Tabel 3.1. Kode parameter boiler ..............................................................................
31
Tabel 3.2. Karakter ASCII “B=1” dalam desimal dan biner .....................................
31
Tabel 3.3. Karakter ASCII dalam format heksa dan desimal ....................................
32
Tabel 4.1. Penggunaan Port Pada Mynsis Mikrokontroler ........................................
37
Tabel 4.2. Hasil Pengujian Penerimaan Data Temperatur ........................................
38
Tabel 4.3. Hasil Pengujian Penerimaan Data Tekanan .............................................
38
Tabel 4.4. Hasil Pengujian Penerimaan Data Level Air ...........................................
39
Tabel 4.5. Hasil Pengujian Penerimaan Data Level Oli ...........................................
40
Tabel 4.6. Biner dari (T=50) dalam hex dan karakter ..............................................
49
Tabel 4.7. Biner dari (T=200) dalam hex dan karakter ...........................................
51
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Perkembangan teknologi yang sedemikian pesat pada kehidupan dewasa ini,
menuntut manusia untuk bergaya hidup praktis. Hal ini juga berpengaruh pada bidang informasi. Semakin berkembangnya teknologi dan semakin banyaknya kesibukan manusia membuat orang berpikir untuk dapat bekerja lebih efektif dan efisien. Oleh karena itu semua peralatan manusia telah dikembangkan untuk dapat membuat pekerjaan manusia lebih ringan. Kebutuhan sistem informasi yang sederhana dan multiguna sangat diperlukan. Saat ini komunikasi semakin berkembang dengan adanya perangkat yang mendukung, sehingga mempermudah manusia dalam menyampaikan informasi. Komunikasi serial adalah sebuah komunikasi pengiriman data yang dilakukan secara bergantian atau satu persatu. Komunikasi serial tersebut bersifat dua arah serta memiliki jalur yang sedikit sehingga lebih menghemat pin dan kabel jika dibandingkan dengan komunikasi paralel. Sistem peralatan ini menggunakan komunikasi serial sebagai penyampaian informasi. Namun pada umumnya komunikasi yang digunakan adalah komunikasi serial USART. Model simulator boiler dirancang untuk menunjukkan secara sederhana berbagai kontrol pada sistem boiler. Model simulator boiler ini dapat bertindak sebagai alat bantu untuk diagnosis kesalahan sistem boiler yang mungkin terjadi dalam praktek. Model simulator boiler ini berfungsi untuk mengatur input data parameter dan kemudian data tersebut akan dikirimkan ke bagian sistem monitoring boiler. Berdasarkan hal tersebut maka dibuatlah sebuah modul komunikasi serial pada mikrokontroler. Modul komunikasi serial pada mikrokontroler dirancang untuk sarana komunikasi antara model simulator boiler dengan sistem monitoring boiler. Ada tiga tipe komunikasi serial yang digunakan yaitu USART, I2C dan SPI. USART digunakan untuk komunikasi antara model simulator boiler dengan modul komunikasi serial, I2C digunakan untuk menampilkan data yang diterima dari komunikasi sebelumnya (USART), dan SPI digunakan untuk komunikasi antara modul komunikasi serial dengan sistem monitoring.
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
1.2.
Tujuan dan Manfaat Penelitian Tujuan dari penelitian ini adalah membuat suatu alat komunikasi serial menggunakan mikrokontroler Atmega16 untuk menampilkan data. Manfaat dari penelitian ini adalah dapat menjadi sarana komunikasi serial antara model simulator boiler dengan sistem monitoring.
1.3.
Batasan Masalah Agar Tugas Akhir ini bisa mengarah pada tujuan dan untuk menghindari terlalu
kompleksnya permasalahan yang muncul, maka perlu adanya batasan-batasan masalah yang sesuai dengan judul dari tugas akhir ini. Adapun batasan masalah : 1.
Komunikasi serial dengan sistem boiler menggunakan kabel serial RS 232
2.
Menggunakan LCD 2x16 sebagai penampil data
3.
Menggunakan dua buah mikrokontroler ATmega16 sebagai pengelolah data yang diterima dari sistem boiler dan data tersebut akan ditampilkan pada LCD. Dimana mikrokontroler A fungsinya digunakan untuk menerima data dari model simulator boiler, sedangkan mikrokontroler B fungsinya untuk menerima data dari mikrokontroler A dan data tersebut akan ditampilkan pada LCD 2x16.
4.
Sakelar on-off digunakan sebagai penghubung dan pemutus aliran arus listrik
5.
MAX232
digunakan
sebagai
buffer
untuk
komunikasi
serial
antara
mikrokontroler 6.
Nilai baud rate dapat diatur dengan menggunakan standar kecepatan yang disediakan. Kecepatan nilai baud rate adalah 9600 bps
7.
1.4.
Menggunakan bahasa C dalam penulisan programny
Metodologi Penelitian Berdasarkan pada tujuan yang ingin dicapai metode-metode yang digunakan dalam
penyusunan tugas akhir ini adalah: 1.
Studi literatur, yaitu dengan cara mendapatkan data dengan membaca buku-buku dan jurnal-jurnal yang berkaitan dengan permasalahan yang dibahas dalam tugas akhir ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
2.
Eksperimen, yaitu dengan langsung melakukan praktek maupun pengujian terhadap hasil pembuatan alat dalam pembuatan tugas akhir ini.
3.
Perancangan subsistem hardware ini mengacu pada gambar 1.1 diagram blok perancangan. Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangan dari berbagai faktor-faktor permasalahan dan kebutuhan yang telah ditentukan
4.
Proses pengambilan data. Pengambilan data dilakukan setelah alat jadi dengan cara menerima (receiver) masukan data dari pengirim (transmiiter).
LCD
I2C
Simulator Boiler
USART
Max 232
ATmega16
SPI
Monitoring Model Boiler Secara Real Time Berbasis Android
Gambar 1.1. Diagram Blok Perancangan 5.
Proses pengambilan data. Pengambilan data akan dilakukan saat hardware sudah selesai atau jadi dan dilakukan dengan cara melihat output data yang dihasilkan.
6.
Analisis dan penyimpulan data percobaan. Analisis data dilakukan dengan cara mengecek kinerja alat (ketepatan data yang ditampilkan). Penyimpulan hasil percobaan dapat dilakukan setelah selesai melakukan analisis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II DASAR TEORI 2.1. Sistem Komunikasi Kegunaan dasar dari sistem komunikasi adalah menjalankan pertukaran data antara dua pihak. Pada gambar 2.1 dibawah ini merupakan suatu model komunikasi yang sederhana yaitu komunikasi dua arah.
Gambar 2.1. Model Komunikasi Data Sederhana
2.1.1. Komunikasi Serial Komunikasi serial ialah pengiriman data secara serial (data dikirim satu persatu secara berurutan). Pada prinsipnya komunikasi serial merupakan komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel, atau dengan kata lain komunikasi serial merupakan salah satu metode komunikasi data dengan hanya satu bit data yang dikirimkan melalui seuntai kabel pada suatu waktu tertentu. Komunikasi serial dapat digunakan untuk menggantikan komunikasi parallel jalur data 8-bit dengan baik. Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan
kabel yang sedikit dibandingkan dengan komunikasi
paralel.[1]
2.1.2. Data Transfer Rate Kecepatan transfer data pada komunikasi data serial diukur dalam satuan BPS (bits persecond). Sebutan terkenal lainnya adalah baud rate. Namun Baud dan bps tidak serta merta adalah sama. Hal ini mengacu kepada fakta bahwa baud rate adalah terminology modem dan diartikan sebagai perubahan signal dalam satuan bit signal setiap detik. Sedang 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
data transfer rate penamaannya mengacu pada jumlah bit dari byte data yang ditransfer setiap detik.[2] Baud rate mengindikasikan seberapa cepat data dikirim melalui komunikasi serial. Baud rate biasanya diberi satuan bit-per-second (bps), walaupun untuk kasus-kasus khusus (misalnya untuk komunikasi paralel), nilai bps dapat berbeda dengan nilai baud rate. sumsi asumsi saat ini kita fokus pada komunikasi serial, dimana setiap detak menyatakan transisi satu bit keadaan. Jika hal ini dipenuhi, maka nilai baud rate akan sama dengan nilai bitper-second (bps). Bit per detik ini mengartikan bahwa berapa bit data dapat ditransfer setiap detiknya. Jika kita menginverskan nilai bps ini, kita dapat memperoleh keterangan berapa lama waktu yang dibutuhkan untuk mengirim 1 bit. [3] Nilai baud rate dapat diatur dengan menggunakan standar kecepatan yang disediakan. Contoh modem dengan transmisi adalah 9.600 bps. Data yang dikirim dengan kecepatan 9600 bit/detik, maka setiap bitnya memerlukan waktu selama 1/9600 = 104 mikrodetik/bit. Satu paket data untuk satu karakter terdiri dari 10 bit (8-bit data, 1-bit start dan 1-bit stop). Dengan demikian, pengiriman satu karakter (yang terdiri dari 10-bit) akan membutuhkan waktu selama 10 x 104 mikrodetik = 1.040 mikrodetik = 1,04 milidetik. Pada system yang sangat mementingkan integritas data yang disimpan, maka ditambahkanlah bit paritas kepada bingkai data tersebut. Maksudnya untuk setiap karakter 8-bit kita masih menambahkan bit paritas disamping bit start dan bit stop. Adapun bit paritas adalah bit yang menunjukkan bahwa data yang dimaksud adalah memiliki jumlah bit 1s (high) ganjil atau genap. Bit paritas adalah bit di luar data yang bersangkutan atau merupakan tambahan.[4]
2.2. Mikrokontroler ATmega16 Mikrokontroler
ATmega16
memiliki
keunggulan
dibandingkan
dengan
mikrokontroler lainnya, keunggulan mikrokontroler ATmega16 yaitu pada kecepatan eksekusi program yang lebih cepat karena sebagian besar instruksi 2 dieksekusi dalam 1 siklus clock, lebih cepat dibandingkan dengan mikrokontroler MCS51 yang memiliki arsitektur CISC (Complex Instruction Set Computer) di mana mikrokontroler MCS51 membutuhkan 12 siklus clock untuk mengeksekusi 1 instruksi. Selain itu mikrokontroler ATmega16 memiliki fitur yang lengkap (ADC internal, EEPROM internal, Timer/Counter, Watchdog Timer, PWM, Port I/O, komunikasi serial, komparator, dan lain-lain), sehingga dengan fasilitas yang lengkap ini, programmer dan desainer dapat menggunakannya untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
berbagai aplikasi sistem elektronika seperti robot, otomasi industri, peralatan telekomunikasi, dan berbagai keperluan lain. Fitur mikokontroler ATmega16 sebagai berikut :[5] 1.
Mikrokontroler ATmega16 yang memiliki 8 bit dan kemampuan tinggi dengan daya rendah.
2.
Arsitektur RISC dengan troughput mencapai 16 MIPS pada frekuensi 16 MHz.
3.
Memiliki kapasitas Flash memori 16 KByte, EEPROM 512 Byte dan SRAM 1 KByte.
4.
Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan PortD.
5.
Unit interupsi internal dan eksternal.
6.
Fitur Peripheral yaitu tiga buah Timer/Counter, Real Time Counter dengan Oscillator tersendiri, empat channel PWM, delapan channel 10-bit ADC, Byteoriented Two-wire Serial Interface, Programmable Serial USART, antarmuka SPI, Wachdog Timer dengan oscillator internal, dan On-chip Analog Comparator.
2.2.1. Konfigurasi Pin ATmega16
Gambar 2.3 Konfigurasi kaki (pin) ATmega16 [6] Konfigurasi pin ATmega16 dengan kemasan 40 pin Dual In-line Package (DIP) dapat dilihat pada Gambar 2.13. dari gambar diatas dapat dijelaskan fungsi dari masingmasing pin ATmega16 sebagai berikut. 1.
VCC merupakan pin yang berfungsi sebagai masukan catu daya
2.
GND merupakan pin Ground
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
3.
Port A (PA0 – PA7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin masukan ADC
4.
Port B (PB0 – PB7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.1 Fungsi khusus port B. Pin PB0
Fungsi Khusus XCK (USART External Clock Input/Output) T0 (Timer/Counter0 External Counter Input
PB1
T1 (Timer/Counter1 External Counter Input
PB2
INT2 (External Interupt 2 Input) AIN0 (Analog Comparator Negative Input)
PB3 OC0 (Timer/Counter0 Output Compare Match Output) AIN1 (Analog Comparator Negative Input) PB4 (SPI Slave Select Input)
5.
PB5
MOSI (SPI Bus Master Output / Slave Input)
PB6
MISO (SPI Bus Master Input / Slave Output)
PB7
SCK (SPI Bus Serial Clock)
Port C (PC0 – PC7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.2 Fungsi khusus port C. Pin
Fungsi Khusus
PC0
SCL (Two-wire Serial Bus Clock Line)
PC1
SDA (Two-wire Serial Bus Data Input/Output Line)
PC2
TCK (Joint Test Action Grup Test Clock)
PC3
TMS (JTAG Test Mode Select)
PC4
TDO (JTAG Data Out)
PC5
TDI (JTAG Test Data In)
PC6
TOSC1 (Timer Oscillator pin 1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
PC7
6.
TOSC2 (Timer Oscillator pin 2)
Port D (PD0 – PD7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.3 Fungsi khusus port D. Pin
Fungsi Khusus
PD0
RXD (USART Input Pin)
PD1
TXD (USART Output Pin)
PD2
INT0 (External Interupt 0 Input)
PD3
INT1 (External Interupt 1 Input)
PD4
OC1B (Timer/Counter1 Output Compare B Match Output)
PD5
OC1A (Timer/Counter1 Output Compare A Match Output)
PD6
ICP (Timer/Counter1 Input Capture Pin)
PD7
OC2 (Timer/Counter2 Output Compare Match Output)
7.
RESET merupakan pin yang digunakan untuk me-reset mikrokontroler
8.
XTAL1 dan XTAL2, merupakan pin masukan external clock
9.
AVCC merupakan pin masukan tegangan untuk ADC
10. AREF merupakan pin masukan tegangan referensi untuk ADC.
2.2.2. Pemrograman Mikrokontroler ATmega16 Pengembangan sebuah system menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan CodeVision AVR. AVR STUDIO merupakan software khusus untuk bahasa assembly yang mempunyai fungsi sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi dan download program ke IC mikrokontroler AVR dapat dilakukan pada CodeVision. CodeVision AVR memilki fasilitas terminal, yaitu untuk melakukan komunikasi serial dengan mikrokontroler yang sudah diprogram. Proses download program ke IC mikrokontroler AVR dapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
menggunakan system download secara In-System Programming (ISP). ISP Flash On-chip mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.
2.2.3. Bahasa C Pada AVR ATmega16 Mikrokontroler AVR dapat pula menggunakan bahasa C dalam penulisan programnya, sehingga dapat memudahkan dan mempersingkat instruksi-intruksi yang digunakan dalam bahasa assembly. Dalam pembuatan program yang menggunakan fungsi atau aritmatika, bahasa C menawarkan kemudahan dengan menyediakan fungsi-fungsi khusus, seperti pembuatan konstanta, operator aritmatika, operator logika, operator bitwise dan operator Assigment. Selain itu, bahasa C menyediakan program kontrol seperti: Percabangan (if dan if…else), Percabangan switch, Looping (for, while dan do…while), Array, serta fungsi-fungsi lainnya. Di bawah ini merupakan contoh penulisan program dalam bahasa C untuk mikrokontroler AVR ATmega16. Preprocessor digunakan untuk memasukkan text dari file lain, mendefinisikan macro yang dapat mengurangi beban kerja pemrograman dan Program Utama preprocessor inisialisasi 25 meningkatkan legability source code (mudah dibaca). Inisialisasi merupakan pengaturan awal yang akan dibutuhkan dalam membuat suatu program.[7]
2.3. LCD (Liquid Cristal Display) LCD (Liquid Cristal Display) berfungsi untuk menampilkan karakter angka, huruf ataupun simbol dengan lebih baik dan dengan konsumsi arus yang rendah. LCD (Liquid Cristal Display) dot matrik M1632 merupakan modul LCD buatan hitachi. Modul LCD (Liquid Cristal Display) dot matrik M1632 terdiri dari bagian penampil karakter (LCD) yang berfungsi menampilkan karakter dan bagian sistem prosesor LCD dalam bentuk modul dengan mikrokontroler yang diletakan dibagian belakan LCD tersebut yang berfungsi untuk mengatur tampilan LCD serta mengatur komunikasi antara LCD dengan mikrokontroler yang menggunakan modul LCD tersebut. LCD yang digunakan adalah tipe M1632 yang ditunjukkan pada gambar 2.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
Gambar 2.4 Bentuk LCD (Liquid Cristal Display)
Modul prosesor M1632 pada LCD tersebut memiliki memori tersendiri sebagai berikut : 1.
CGROM (Character Generator Read Only Memory)
2.
CGRAM (Character Generator Random Access Memory)
3.
DDRAM (Display Data Random Access Memory)
Fungsi Pin LCD (Liquid Cristal Display) Dot Matrix 2×16 M1632 1.
DB0 – DB7 adalah jalur data (data bus) yang berfungsi sebagai jalur komunikasi untuk mengirimkan dan menerima data atau instruksi dari mikrokontrooler ke modul LCD.
2.
RS adalah pin yang berfungsi sebagai selektor register (register sellect) yaitu dengan memberikan logika low (0) sebagai register perintah dan logika high (1) sebagai register data.
3.
R/W adalah pin yang berfungsi untuk menentukan mode baca atau tulis dari data yang terdapat pada DB0 – DB7, yaitu dengan memberikan logika low (0) untuk fungsi read dan logika high (1) untuk mode write.
2.4. Komunikasi Data Melalui RS232 RS232 adalah suatu standar komunikasi serial transmisi data antar dua peralatan elektronik. RS232 dibuat pada tahun 1962 oleh Electronic Industry Association and Telecomunication Industry Association dan ada dua hal pokok yang diatur oleh RS232, yaitu bentuk signal dan level tegangan yang dipakai. Selain digunakan pada peralatan PLC, sebenarnya sistem RS232 ini sering berhubungan dengan kita pada kehidupan sehari-hari, antara lain komunikasi PC komputer dengan mouse, keybord atau scanner. Satu hal yang jelas adalah RS323 ini akan diaplikasikan pada semua sistem peralatan yang berbasis komputer atau mikrokontroler.[9]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
Komunikasi data secara serial dilakukan dengan metode pengiriman data secara bit per bit atau satu per satu secara berurutan dan itu berbeda dengan sistem paralel yang mengirim data secara serentak. kecepatan transfer data RS232 cukup rendah, kecepatan maksimal hanya 19200 bits/sekon. Pengiriman data bisa dilakukan secara satu arah atau dua arah. Jika hanya membutuhkan komunikasi satu arah maka cukup menggunakan dua kabel yaitu kabel “Tx” sebagai pengirim data dan kabel “Rx” sebagai penerima data. Sedangkan, untuk membuat sistem komunikasi dua arah maka kabel yang dibutuhkan adalah 3 unit kabel, yaitu kabel Tx, Rx dan GND (ground). Standar ini menggunakan beberapa piranti dalam implementasinya. Paling umum yang dipakai adalah plug/konektor DB9 atau DB25.
2.4.1. Prinsip Kerja RS232 Komunikasi data secara serial dilakukan dengan metode untuk mengirimkan data dari sebuah pengirim secara bit per bit dengan kecepatan tertentu (bit per detik/bps), dan pengiriman dilakukan melalui jalur satu kawat (Tx) dan diterima oleh sebuah penerima (Rx) dalam waktu tertentu. Oleh karena komputer penerima dapat berfungsi sebagai pengirim begitu juga pengirim juga dapat berfungsi sebagai penerima, maka komunikasi dapat dilakukan dalam dua arah. Seperti yang ditunjukan pada gambar 2.5. di bawah ini.
Gambar 2.5. Komunikasi data serial
2.4.2. Konektor RS232 Konektor DB9 atau DB25 digunakan sebagai penghubung antar devais, RS232 dengan konektor DB9 dipakai untuk mouse, modem dan lain-lain. Sedang konektor DB25 dipakai untuk joystik game. Serial port RS232 dengan konektor DB9 memiliki 9 buah pin dan pada konektor DB25 memiliki pin 25 buah.[10] Sedangkan fungsi masing-masing pin pada konektor dapat dilihat pada tabel berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
Tabel 2.5. Fungsi pin konektor DB25 dan DB9.
Fungsi pin berdasarkan tabel di atas dapat dijelaskan sebagai berikut: 1.
Signal Ground (SG) berfungsi untuk memberikan masa (ground) pada setiap sinyal secara bersama (common signal ground).
2.
Transmit Data (TX) berfungsi sebagai saluran keluarnya data dari UART atau sebagai pengirim data ke devais secara serial.
3.
Receiver Data (RX) berfungsi sebagai saluran masuknya data ke UART atau sebagai penerima data dari devais secara serial.
4.
Data Terminal Ready (DTR) berfungsi sebagai pemberi informasi status ke devais terkoneksi bahwa UART telah siap. Saat terkoneksi dan berkomunikasi dengan devais DTR perlu beri logika 1.
5.
Data Set Ready (DSR) berfungsi untuk menerima informasi status devais bahwa devais siap untuk diakses oleh komputer melalui UART.
6.
Request to Send (RTS) berfungsi sebagai isyarat permintaan UART ke devais untukmemfasilitasi bahwa UART akan mengirimkan data ke devais.
7.
Clear to Send(CTS) berfungsi sebagai penerima jawaban atas pengiriman isyarat RTS bila modem / piranti telah menerima data.
8.
Data Carrier Detect (DCD) berfungsi sebagai penerima isyarat agar komputer bersedia menerima data pada pada waktu tertentu.
9.
Ring Indicator (RI) berfungsi menerima isyarat dari modem bahwa ada devais (eksternal) yang membutuhkan koneksi dalam rangka pengiriman atau permintaan data.
Pada gambar 2.6. dibawah ini menunjukan pin out dari konektor RS232 (DB9 Male).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
Gambar 2.6. RS232 pin out (DB9)
2.4.3. Keuntungan Komunikasi Secara Serial Antar muka komunikasi serial menawarkan beberapa kelebihan dibandingkan dengan komunikasi pararel, diantaranya:[10] 1.
Kabel untuk komunikasi serial bisa lebih panjang dibandingkan dengan pararel. Data-data dalam komunikasi serial dikirimkan untuk logika ‘1’ sebagai tegangan -3 s/d -25 volt dan untuk logika ‘0’ sebagai tegangan +3 s/d +25 volt, dengan demikian tegangan dalam komunikasi serial memiliki ayunan tegangan maksimum 50 volt, sedangkan pada komunikasi pararel hanya 5 volt. Hal ini menyebabkan gangguan pada kabel-kabel panjang lebih mudah diatasi dibanding dengan pararel.
2.
Jumlah kabel serial lebih sedikit. Dua perangkat komputer yang berjauhan dengan hanya tiga kabel untuk konfigurasi null modem, yakni TxD (saluran kirim), RxD (saluran terima) dan ground, akan tetapi jika menggunakan komunikasi pararel akan terdapat dua puluh hingga dua puluh lima kabel.
3.
Komunikasi
serial
dapat
diterapkan
untuk
berkomunikasi
dengan
mikrokontroler. Hanya dibutuhkan dua pin utama TxD dan RxD (diluar acuan ground).
2.4.4. MAX232 Sinyal TTL dari mikrokontroler nantinya akan diubah menjadi RS232 oleh IC tersebut. Gambar 2.7. dibawah ini merupakan rangkaian dari IC MAX232.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
Gambar 2.7. Rangkaian MAX232 IC MAX232 ini digunakan sebagai buffer untuk komunikasi serial antara mikrokontroler dengan komputer. Pada dasarnya komputer dan mikrokontroler sama-sama memiliki sebuah port untuk komunikasi serial. Namun pada mikrokontroler sinyal levelnya adalah TTL ( 5 Volt ) sedangkan pada komputer sinyal levelnya sebesar 25 Volt atau lebih dikenal dengan RS232. Oleh karena itu tidak dapat langsung menghubungkan pin Rx pada mikrokontroler dengan pin Tx pada komputer atau sebaliknya. Membutuhkan sebuah level konverter, IC MAX232 ini yang digunakan menjadi sebuah level konverter.
2.5. USART USART (Universal Synchronous and Ansynchronous Serial Receiver and Transmitter) adalah protokol komunikasi serial antara PC dengan komponen elektronika lainnya, salah satunya adalah mikrokontroler. USART juga digunakan sebagai alat komunikasi antara satu mikrokontroler dengan mikrokontrol lain maupun dengan port expander. Hal terpenting dalam komunikasi USART antara mikrokontroler adalah diperlukannya driver penghubung yaitu IC RS232 yang berfungsi mengkonversi perbedaan logic. Hal lain yang perlu diperhatikan adalah setting baudrate dan clock yang digunakan mikrokontroler
tersebut.
USART
(Universal
Syncronous
Asyncronous
Receiver/Transmiter) pada mikrokontroler ATmega16 memiliki beberapa keuntungan diantaranya ialah operasi full duplex (memiliki register receiver dan transmiter yang terpisah), mendukung komunikasi multiprosesor dan kecepatan transmisi berorde Mbps.
2.5.1. Register Komunikasi Serial Usart Pada mikrokontroler AVR untuk mengaktifkan dan mengatur komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Untuk melakukan inisialisasi pada komunikasi USART, maka register kontrol
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
USART harus diatur sedemikian rupa agar komunikasi dapat berlangsung dengan baik, berikut register-register pada komunikasi serial USART antara lain :
1.
USART I/O Data Register
(UDR) digunakan sebagai penyangga (buffer) data yang akan dikirimkan dan penyangga data yang diterima. Transmit data buffer register (TXB) berfungsi sebagai penyangga data yang akan ditulis ke dalam register UDR. Sedangkan receiver data buffer register (RXB) berfungsi sebagai penyangga data yang diterima oleh register UDR. Register UDR untuk penyangga transmitter hanya dapat ditulis ketika bit/flag UDRE dalam register UCSRA dalam keadaan set. Gambar 2.5 menunjukkan register USART transmitter dan receiver pada UDR sebagai berikut :
Gambar 2.5. Avr Usart Tx dan Rx
2.
USART Control and status register A
Gambar 2.6. Register UCSRA a)
Bit 7 RXC : sebagai flag (tanda) bahwa penerimaan data1 byte telah selesai dan data bisa dibaca pada register UDR.
b) Bit 6 TXC : sebagai flag (tanda) bahwa pengiriman data1 byte telah selesai
3.
USART Control dan Status Register B
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
Gambar 2.7. Register UCSRB a)
Bit 7 RXCI : mengatur interupsi penerimaan data serial. Nilai awal 0 dan akan bernilai 1 jika RXC = 1.
b) Bit 6 TXCIE : mengatur interupsi pengiriman data serial. Nilai awal 0 dan akan bernilai 1 jika TXC = 1. c)
Bit 4 RXEN : mengaktifkan penerimaan RX.
d) Bit 3 TXEN : mengaktifkan pengiriman TX. e)
Bit 2 UCSZ2 : menentukan panjang karakter yang akan dikirimkan. Register ini digunakan bersamaan dengan register UCSZ0 dan UCSZ1 yang terdapat pada register UCSRC
4.
USART Control and status register C
Gambar 2.8. Register UCSRC a)
Bit 7 URSEL : karena UCSRC dan UBRRH memakai alamat yang sama maka fungsi bit ini adalah memutuskan register mana yang akan "ditulis". Jika bernilai 1 maka data akan ditulis ke UCSRC dan jika bernilai 0 maka data akan ditulis di UBRRH.
b) Bit 6 UMSEL : menentukan apakah komunikasi sinkron atau asinkron. Bernilai 0 maka komunikasi asinkron dan jika bernilai 1 maka komunikasi sinkron. c)
Bit 3 USBS : Usart Stop Bit Select jika bernilai 0 maka stop bit-nya 1 dan jika bernilai 1 stop bit-nya 2.
d) Bit 2 UCSZ1 dan bit 1 UCSZ0 : bersamaan dengan UCSZ2 menentukan panjang bit yang akan digunakan. Umumnya 8 bit tetapi anda bisa memilih 5,6,7,8, atau 9 bit.[11]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
2.6. SPI (SERIAL PERIPHERAL INTERFACE) SPI (serial peripheral interface) merupakan salah satu metode pengiriman data dari suatu devais ke devais lainnya. Metode ini merupakan metode yang bekerja pada metode full duplex dan merupakan standar sinkronasi serial data link yang dikembangkan oleh Motorola. ). Cara kerja protokol SPI ditunjukkan pada gambar 2.9 di bawah ini :
Gambar 2.9. Cara kerja protokol SPI Pada SPI, devais dibagi menjadi dua bagian yaitu master dan slave dengan master sebagai devais yang menginisiasi pengiriman data. Dalam aplikasinya, sebuah master dapat digunakan untuk mengatur pengiriman data ke beberapa slave (Multipoint).
2.6.1. Pin – Pin Penghubung pada SPI Komunikasi serial data antara master dan slave pada SPI diatur melalui 4 buah pin yang terdiri dari SCLK, MOSI, MISO, dan SS. Berikut ini adalah penjelasan singkat mengenai ke 4 pin tersebut: SCLK (serial clock) merupakan data biner yang keluar dari master ke slave yang berfungsi sebagai clock dengan frekuensi tertentu. Clock merupakan salah satu komponen prosedur komunikasi data SPI. Dalam beberapa devais, istilah yang digunakan untuk pin ini adalah SCK. MOSI (master out slave input) merupakan pin yang berfungsi sebagai jalur data pada saat data keluar dari master dan masuk ke dalam slave. Istilah lain untuk pin ini antara lain SIMO, SDI, DI, dan SI. MISO (master input slave output) merupakan pin yang berfungsi sebagai jalur data yang keluar dari slave dan mesuk ke dalam master. Istilah lain untuk pin ini adalah SOMI, SDO, DO, dan SO. SS (slave select) merupakan pin yang berfungsi untuk mengaktifkan slave sehingga pengiriman data hanya dapat dilakukan jika slave dalam keadaan aktif (active low). Istilah lain untuk SS antara lain CS (chip select), nCS, nSS, dan STE (slave transmit enable).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
Pin SCLK, MOSI, dan SS merupakan pin dengan arah pengiriman data dari master ke slave. Sebaliknya, MISO mempunyai arah komunikasi data dari slave ke master. Pengaturan hubungan antara pin SDO dan SDI harus sesuai dengan ketentuan. Pin SDO pada master harus dihubungkan dengan pin SDI pada slave, begitu juga sebaliknya. Hal ini penting untuk diperhatikan untuk menghindari terjadinya kesalahan prosedur pada pengiriman data. Istilah pin-pin SPI untuk berbagai devais mungkin saja mempunyai istilah yang berbeda dengan istilah di atas tergantung produsen yang membuatnya. SPI pada AVR merupakan salah satu peripheral sederhana dalam programingnya. AVR memiliki arsitektur 8 bit mikrokontroler, sehingga SPI pada AVR juga 8 bit. Bahkan biasanya bus SPI juga mempunyai nilai 8 bit. Pada AVR, port SPI berada pada PORT B baik untuk yang mempunyai kaki 28 ataupun 40.
2.6.2. Register Komunikasi SPI Ada tiga register yang terdapat pada SPI di AVR: 1.
SPCR
SPI Control Register merupakan register dari Master Device. Berisi Bit inisialisasi dari AVR dan kontrol data dari Master Device . 2.
SPSR
SPI Status Register merupakan register status dari AVR, digunakan untuk membaca status komunikasi dari Bus SPI. 3.
SPDR
SPI Data Register merupakan register data dari SPI dimana untuk membaca atau mengirim data yang sebenarnya.
2.6.2.1. SPI Control RegIster (SPCR) Seperti namanya, SPCR adalah register untuk mengontrol dari SPI. Terdapat Bit dimana kita menemukan bit untuk mengenable SPI, mengatur clock atau kecepatan dari SPI, mengatur mode operasi seperti master/slave. Berikut ini adalah gambar isi dari SPCR:
Gambar 2.10. SPCR Register
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
Bit 7: SPIE – SPI Interrupt Enable SPIE adalah bit yang digunakan untuk mengaktikfkan interupsi dari SPI. Untuk mengaktifkannya, Global interrupt dari AVR harus diaktifkan terlebih dahulu. Set bit ini pada kondisi high atau 1 untuk mengaktifkan interrupt SPI. Bit 6: SPE – SPI Enable SPE adalah bit yang digunakan untuk mengaktifkan SPI secara keseluruhan. Jika bit ini di-set pada kondisi high atau 1 maka SPI akan aktif dan yang lain akan dimatikan. Saat SPI diaktifkan, port kaki dari AVR masih bisa berfungsi sebagai Input-Output itu sendiri. Bit 5: DORD – Data Order Data order adalah mode pengiriman apakah MSB dulu atau LSB dulu. Set bit ini pada kondisi high atau 1 jika ingin mengirimkan 4 bit yang kecil (LSB) dulu. Namun jika ingin mengirim MSB dulu maka set bit ini pada kondisi low atau 0. Bit 4: MSTR – Master/Slave Select Bit ini digunakan untuk menyetting hardware sebagai master atau sebagai slave. Jika ingin menyetting sebagai master maka set bit ini pada kondisi high atau 1 (clock dihasilkan dari device lain). Jika bit di set low atau 0 maka device bertindak sebagai slave. Bit 3: CPOL – Clock Polarity Bit ini digunakan untuk memilih polaritas clock pada saat kondisi idle. Set bit ini pada kondisi high atau 1 untuk mengaktifkan clock tinggi pada saat idle, dan sebaliknya mengatur bit ini low atau 0 untuk mengaktifkan clock rendah pada saat idle. Artinya saat bit CPOL bernilai low maka clock SCK akan bersifat rising edge, dan jika pada kondisi high maka SCK akan bersifat Falling Edge. (Rising adalah perubahan pulsa pada saat 0 ke 1, falling sebaliknya adalah kondisi pada saat pulsa berubah dari 1 ke 0). Bit 2: CPHA – Clock Phase Bit inidigunakanuntuk sampling data. Set Bit satuatau high untuk sampling data saat SCK dalam edge yang pertama, set bit 0 atau low untuk sampling data saat sck dalam edge yang kedua. Bit 1,0: SPR1, SPR0 – SPI Clock Rate Select Digunakan untuk memilih pembagi atau prescaller dari clock SPI, dimana FOSC merupakan singkatan dari clock internal atau frekuensi kristal external.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
2.6.2.2. SPI Data Register (SPDR) SPI Data register adalah register yang digunakan untuk menyimpan data baik yang akan dikirim maupun yang sudah di terima.
Gambar 2.12. SPDR Register Bit ke 7 adalah bit Most Significant Bit (MSB) dan Bit yang ke 0 adalah bit Least Significant Bit (LSB). Sekarang kita bisa sambungkan ke Bit ke 5 SPCR, jika MSB yang dikirim duluan maka Bit 4 hingga 7 dari data registerlah yang akan dikirim pertama, namun jika LSB yang dikirim pertama maka Bit 0 hingga Bit 3 lah yang akan dikirim duluan.[12]
2.7. I2C (Inter Integrated Circuit ) Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan
dengan
sistem
I2C
bus
dapat
dioperasikan
sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master. Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL “1”. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “0” menjadi “1” pada saat SCL “1”. Pada gambar 2.13 adalah menunjukkan pengondisi sinyal star dan stop.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
Gambar 2.13. Kondisi sinyal start dan stop Sinyal dasar yang lain dalam I2C bus adalah sinyal acknowledge yang disimbolkan dengan ACK Setelah transfer data oleh master berhasil diterima slave, slave akan menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan membuat SDA menjadi “0” selama siklus clock ke 9. Ini menunjukkan bahwa Slave telah menerima 8 bit data dari Master. Gambar 2.14 merupakan sinyal ACK dan NACK
Gambar 2.14. Sinyal ACK dan NACK Dalam melakukan transfer data pada I2C Bus, harus mengikuti tata cara yang telah ditetapkan yaitu : 1.
Transfer data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk.
2.
Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL dalam keadan tinggi. Keadaan perubahan “1” atau “0” pada SDA hanya dapat dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan SDA pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap sebagai sinyal Start atau sinyal Stop.
2.7.1. Register Komunikasi I2C I2C (Inter-Integrated Circuit) umumnya disebut sebagai “two-wire interface”. Berikut Gambar 2.15 menjelaskan konfigurasi dari sistem I2C.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
Gambar 2.15. Konfigurasi sistem I2C Pada komunikasi I2C terdapat perangkat master dan slave. Master adalah perangkat yang mengatur jalur clock SCL. Sedangkan slave adalah perangkat yang merespon perintah master. Slave tidak dapat mengirim sinyal untuk dapat mentransfer data pada jalur I2C, hanya master yang dapat melakukannya. Berikut adalah Gambar 2.16 timing diagram dari sebuah master yang ingin meminta data yang terdiri dari dua sekuen khusus yang ditetapkan untuk I2C yaitu Start dan Stop.
Gambar 2.17. Timing diagram Data terdiri dari 8 bit dan menjadi 9 bit dengan bit terakhir adalah ACK (Acknowledge). ACK (Acknowledge) adalah sinyal yang dikirim oleh sinyal penerima. Jika perangkat penerima mengirim kembali bit low ACK, karena sudah menerima data dan berarti siap menerima data selanjutnya. Jika sinyal ACK yang dikirim adalah high maka perangkat tersebut tidak dapat menerima data lebih lanjut dan master harus menghentikan transfer dengan mengirim Stop sequence. Semua pengalamatan I2C terdiri dari 7 bit atau 10 bit. Penggunaan pengalamatan 10 bit jarang. Biasanya yang banyak digunakan adalah pengalamatan 7 bit. Data yang terdiri dari 9 bit terdapat R/W sebagai bit pengatur apakah maksud dari master adalah untuk write/menulis (nilai R/W bit = 0) data atau read/membaca (nilai R/W bit = 1) data dari slave. Pada intinya data yang dikirim adalah 8 bit dengan LSB adalah R/W bit.[13]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III RANCANGAN PENELITIAN 3.1. Proses Kerja Sistem Bab ini menjelaskan tentang perancangan alat secara umum dari hardware dan software. Perancangan alat ini terdiri dari beberapa bagian utama, yaitu IC Atmega16, IC MAX 232, LCD 2x16. Kegunaan IC MAX232 atau lebih dikenal dengan RS232 adalah sebagai driver, yang akan mengkonversi tegangan atau kondisi logika TTL dari hardware agar sesuai dengan tegangan pada mikrokontroler sehingga data dapat dibaca. Mikrokontroler Atmega16 berfungsi untuk mengatur dan memproser input data yang diterima dari sistem boiler. LCD yang digunakan adalah tipe LCD 2x16. LCD berfungsi untuk menampilkan data-data yang telah diatur dan diterima. Sistem ini merupakan fullduplex atau komunikasi dua arah yakni pengirimin (Tx) dan penerima (Rx). Bagian utama dari sistem tersebut memggunakan dua buah mikro dimana fungsinya sebagai master dan slave. Arsitektur umum sistem ditunjukan seperti diagram blok pada gambar 3.1.
Gambar 3.1. Diagram Blok Keseluruhan Sistem
3.2. Kebutuhan Perangkat Keras Ada beberapa komponen dalam perancangan sub sistem keras komunikasi serial diantaranya adalah sebagai berikut : 1. Minimun sistem ATmega16 2. LCD 2x16 24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
3. Minimum sistem IC MAX 232 4. Kabel RS-232
3.3. Perancangan Perangkat Keras Mekanik Perancangan ini merupakan desain modul komunikasi serial akan dibuat dengan bentuk gambar 3 dimensi, yang nantinya akan menjadi panduan untuk membuat alat yang sebenarnya. Pada perancangan boks untuk tempat model komunikasi serial, bahan yang digunakan adalah bahan jenis mika (plastik keras). Pada gambar 3.2 ditunjukkan desain untuk komunikasi serial dengan ukuran panjang x lebar x tinggi adalah 25cm x 15cm x 5cm. Didalam boks tersebut akan terpasang minimum sistem ATmega16 dan rangkaian RS232. Sementara untuk meletakkan koneksi port serial USART dan SPI disamping kotak boks. Untuk LCD 2x16 posisinya dapat diletakkan di atap boks. Desain boks di tunjukkan pada gambar 3.2 a dan b.
a. Gambar Tampak Atas
b. Gambar Tampak Samping
3.4. Perancangan Perangkat Keras Elektronika 3.4.1. Perancangan Minimum Sistem dan Display LCD 2x16 Minimum sistem merupakan pusat kontrol dan pengolahan data dari simulator boiler. Display LCD merupakan perangkat interface untuk menampilkan hasil data yang diterima dari simulator boiler. Dalam perancangan ini terdapat dua buah IC ATmega16 yaitu mikrokontroler A dan mikrokontroler B yang memiliki fungsi masing-masing. Mikrokontroler A fungsinya digunakan untuk menerima data dari model simulator boiler. Data yang diterima berupa data parameter boiler. Mikrokontroler B fungsinya digunakan untuk menerima data dari mikrokontroler A dan data tersebut akan ditampilkan pada LCD 2x16.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
Gambar 3.2 merupakan minimum sistem dengan IC mikrokontroler ATmega16 sebagai komponen utama. Pada minimum sistem ditambahkan rangkaian clock ekstrnal. Nilai kapasitor C1=C2=C4=C5= 22pF dan C3=C6= 100nF
sesuai dengan datasheet
ATmega16, yang berfungsi mengoptimalkan clock yang dihasilkan dari Crystal 11.0592 MHz. Nilai kapasitor dan resistor R1=R2=10K dimana fungsinya sebagai pembatas arus yang mengalir ke rangkaian, serta push button merupakan bagian dari rangkaian reset.. Gambar minimum sistem dan display LCD 2x16 seperti ditunjukan pada gamabar 3.2.
C3 100nF
R1 10k
C1
C2
22pF
22pF
1 2 3 4 5 6 7 8
PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7
PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2
PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK
AREF AVCC
14 15 16 17 18 19 20 21
D0 D1 D2 D3 D4 D5 D6 D7
XTAL1 XTAL2
RS RW E
40 39 38 37 36 35 34 33
7 8 9 10 11 12 13 14
13 12
22 23 24 25 26 27 28 29
VSS VDD VEE
CRYSTAL
16_X_2_LCD PC0/SCL PC1/SDA PC2/TCK PC3/TMS PC4/TDO PC5/TDI PC6/TOSC1 PC7/TOSC2
4 5 6
X1
LCD1
Micro B
RESET
1 2 3
U2 9
32 30
ATMEGA16
U1 9
C6
13 12
100nF
40 39 38 37 36 35 34 33
R2 10k
X2 CRYSTAL
C5
C4
22pF
22pF
1 2 3 4 5 6 7 8
RESET XTAL1 XTAL2 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK
P1
C8
Micro A PC0/SCL PC1/SDA PC2/TCK PC3/TMS PC4/TDO PC5/TDI PC6/TOSC1 PC7/TOSC2 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2
22 23 24 25 26 27 28 29 14 15 16 17 18 19 20 21
10uF
11 12 10 9
U3
1
3
C1+
C1-
T1IN R1OUT T2IN R2OUT
T1OUT R1IN T2OUT R2IN VS+ VS-
MAX232
C2+ 4
AREF AVCC
1 6 2 7 3 8 4 9
14 13 7 8
DCD DSR RXD RTS TXD CTS DTR RI
ERROR
C10
COMPIM_PCB
2 6 10uF
C2-
C7
32 30
5
C9 10uF
J1 1 2 3 4
Connector SPI
10uF
ATMEGA16
Gambar 3.3. Minimum Sistem dan Display LCD 2x16
3.4.2. Perancangan Rangkaian RS-232 RS232 adalah standard komunikasi serial yang digunakan untuk koneksi periperal ke periperal. Biasa juga disebut dengan jalur I/O ( input / output ). Fungsi dari serial port RS232 adalah untuk menghubungkan / koneksi dari perangkat yang satu dengan perangkat yang lain, atau peralatan standard yang menyangkut komunikasi data antara mikrokontroler. Pada IC MAX232 terdapat pin untuk komunikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
serial yaitu Rx dan Tx. Rx digunakan untuk mengirimkan data secara serial sedangkan Tx digunakan untuk menerima data secara serial. Pada mikrokontroler ATmega16, pin D0 dan D1 digunakan untuk komunikasi serial usart (Universal Synchronous and Asynchronous Serial Receiver And Transmiter) yang mendukung komunikasi full duplex (komunikasi dua arah). Dengan fasilitas Rx dan Tx ini mikrokontroler bisa berkomunikasi secara serial usart baik antara devais. Sistem komunikasi ini, jumlah data yang diterima merupakan data 8 bit dan data yang akan diterima dari model simultor boiler ada lima buah parameter sebagai berikut : 1.
Temperatur
2.
Tekanan
3.
Level air
4.
Level oli
5.
Blower
Nilai komponen C7=C8=C9=C10=10uF pada rangkaian RS232 mengacu pada datasheet IC MAX232. Gambar rangkaian RS232 seperti ditunjukkan pada gambar 3.3.
Gambar 3.4. Rangkaian RS232
3.5. Perancangan Perangkat Lunak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
Rancangan program ini dibuat kedalam bentuk flowchart, guna mempermudah proses pembuataan listing program. Program mikrokontroler yang akan dibuat menggunakan bahasa C, kemudian program tersebut disusun (compile) secara otomatis ke dalam bentuk file *.hex untuk dimasukan ke dalam IC ATmega16. Listing program yang akan dibuat meliputi: 1.
Komunikasi Serial Usart
2.
Komunikasi I2C
3.
Komunikasi SPI
3.5.1. Diagram Alir Utama Diagram alir utama ditunjukkan pada gambar 3.5. Program utama menunjukkan proses mikrokontroler keseluruhan. START
INISIALISASI
TERIMA DATA DARI MODEL SISTEM BOILER
KOMUNIKASI DENGAN SISTEM PENAMPIL
KIRIM PAKET DATA
YA APAKAH ADA DATA FEEDBACK ?
KOMUNIKASI DENGAN SISTEM MODEL SIMULATOR BOILER
TIDAK
END
Gambar 3.5. Diagram Alir Utama Setelah start, program melakukan inisialisasi terhadap port-port mikrokontroler yang digunakan untuk proses pengendalian alat. Proses pengiriman data dari sistem model boiler akan diterima oleh mikrokontroler A dan program tersebut selanjutnya diteruskan ke
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
sistem panampil dan sistem monitoring boiler. Data yang di terima oleh sistem monitoring berupa sebuah paket data. Pada saat data parameter yang diterima oleh sistem monitoring boiler melebihi atau kurang dari batas yang ditentukan (set point) , maka sistem monitoring dapat melakukan umpan balik (feedback) ke model sistem boiler. Timing (pewaktuan) yang dibutuhkan untuk proses pengiriman dan penerimaan harus sinkron supaya tidak terdapat ada kesalahan atau error.
3.5.2. Diagram Alir Komunikasi Serial Dengan Sistem Boiler Diagram alir modul serial komunikasi dengan sistem boiler, data yang akan dikirim dengan menggunakan cara komunikasi serial USART. Setelah start, program melakukan inisialisasi terhadap port-port mikrokontroler A. Setelah data parameter dari sistem model boiler diterima kemudian data tersebut dapat diproses lebih lanjut oleh mikrokontroler A. Ketika pemrosesan data parameter pada mikrokontroler A sudah selesai maka data tersebut akan dikirim ke mikrontroler B. Gambar diagram alir model serial komunikasi dengan sistem boiler dapat ditunjukkan pada gambar 3.6. START
INISIALISASI
TERIMA DATA
TIDAK DATA DI KIRIM ?
YA
MIKRO B
END
Gambar 3.6. Diagram Alir Model Serial Komunikasi dengan Sistem Bolier
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
3.5.3. Diagram Alir Komunikasi Serial Dengan Sistem Penampil Berikut ini menjelaskan komunikasi serial antara mikrokontroler A dengan mikrokontroler B menggunakan cara komunikasi serial I2C. Untuk komunikasi ini sendiri merupakan komunikasi satu arah dimana mikrokontroler A sebagai pemancar (TX) dan mikrokontroler B sebagai penerima (RX). Setelah start, program melakukan inisialisasi terhadap port-port mikrokontroler B. Saat proses penguraian data parameter pada mikrokontroler B sudah selesai dan data tersebut akan ditampilkan pada LCD 2x16. Gambar 3.7 merupakan diagram alir serial komunikasi sistem penampil. START
INISIALISASI
PROSES PENGURAIA N DATA
MENAMPILKAN DATA
END
Gambar 3.7. Diagram Alir Komunikasi Serial dengan Sistem Penampil Proses penguraian data dari sistem model simulator boiler akan dilakukan secara berurutan atau satu per satu. Parameter yang akan diterima langsung tampil di LCD. Data yang diterima pada sistem penampil ini akan sama dengan data yang akan dikirimkan dari sistem model simulator boiler. Setiap parameter akan diberi kode seperti terlihat pada tabel 3.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
Tabel 3.1. Kode parameter boiler No
Parameter
Kode
Satuan
1
Temperatur
T
C (C)
2
Tekanan
P
bar (b)
3
Level Air
A
ton (t)
4
Level Oli
O
meter kubik(m3)
5
Blower
B
-
Setiap parameter yang diterima akan diberikan kode ASCII (American Standard Code for Information Interchange). Contohnya untuk kondisi blower di LCD akan ditampilkan “B=1”, dimana B merupakan kode dari blower dan 1 menunjukan kondisi blower sedang ON. Kode ASCII (American Standard Code for Information Interchange) dari B=1 dalam bentuk desimal dan biner ditunjukan pada tabel 3.2. Tabel 3.2. Karakter ASCII “B=1” dalam desimal dan biner ASCII
Desimal
Biner
B
11
00001011
=
61
00111101
1
1
00000001
Data yang terima lebih dahulu adalah LSB (least significant bit). LSB merupakan bit yang paling kanan. Dengan demikian, gambaran paket data dari “B=1” yang akan diterima diperlihatkan seperti pada gambar 3.8.
Gambar 3.8. Paket data serial “B=1” Karena data diterima dengan kecepatan 9600 bit/detik, maka setiap bitnya memerlukan waktu selama 1/9600 = 104 mikrodetik/bit. Satu paket data untuk satu karakter terdiri dari 10 bit (8-bit data, 1-bit start dan 1-bit stop). Dengan demikian, penerimaan satu karakter (yang terdiri dari 10-bit) akan membutuhkan waktu selama 10 x 104 mikrodetik = 1.040 mikrodetik atau menjadi 1,04 milidetik. Pengiriman kata B=1 akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
membutuhkan waktu sekitar 3 milidetik pada kecepatan 9600 bps. Jika ingin mengirim karakter yang lain, dapat mengacu pada tabel 3.8. untuk tiap-tiap karakter ASCII. Untuk menerima dan menampilkan data parameter yang diatur menggunakan LCD 2x16. Data yang akan ditampilkan pada sistem penampil sama dengan data yang akan dikirim oleh model simulator boiler. Data yang akan diterima merupakan parameter yang sudah diatur oleh model simulator boiler. Setiap parameter akan diberi simbol atau kode sebagai berikut : 1.
Temperatur
: T dengan satuan C (C)
2.
Tekanan
: P dengan satuan bar (b)
3.
Level Air
: A dengan satuan ton (t)
4.
Level Oli
: O dengan satuan liter (L)
5.
Blower
: B dengan kondisi (OFF : 0 dan ON : 1)
Pada gambar 3.9. merupakan contoh dari tampilan data yang diharapkan pada LCD.
Gambar 3.9. Contoh Data yang Akan Ditampilkan Tabel 3.3. Karakter ASCII dalam format heksa dan desimal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
Tujuan pemberian kode agar data yang sudah dikirim oleh model simulator boiler dapat dikenali atau dibaca oleh mikrokontroler dari modul komunikasi serial sebelum data tersebut ditampilkan pada LCD.
3.5.4. Diagram Alir Komunikasi Serial Dengan Sistem Monitoring Diagram alir komunikasi serial dengan sistem monitoring menggunakan cara komunikasi serial SPI dan komunikasi ini merupakan komunikasi dua arah. Disebut sebagai komunikasi dua arah karena komunikasi sistem yang satu berfungsi sebagai pemancar (TX) dan yang satu sebagai penerima (RX) dan begitu sebaliknya. Setelah start, program melakukan inisialisasi terhadap port-port mikrokontroler A. Jadi parameter data input dari sistem boiler akan diterima oleh mikrokontroler A, selanjutnya data pada mikrokontroler A tersebut akan dikirim dan ditampilkan di bagian sistem monitoring. Pada saat data parameter nilainya melebihi atau kurang dari batas yang ditentukan (set point), sehingga sistem monitoring akan melakukan umpan balik (feedback) ke model simulatorboiler untuk mematikan blower. Gambar diagram alir modul serial komunikasi dengan sistem monitoring dapat ditunjukkan pada gambar 3.10. STAR
INISIALISASI
INPUT BOILER
AMBIL DATA ?
TIDAK
YA KIRIM DATA KE SISTEM MONITORING
YA ADA DATA FEEDBACK ?
DATA DITAMPILKAN
TIDAK
END
Gambar 3.10. Diagram alir modul serial komunikasi dengan Sistem Monitoring
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV HASIL DAN PEMBAHASAN
Bab ini berisi tentang gambar fisik
hardware yang dibuat. Hardware yang dibuat
bertujuan untuk mengimplementasikan rancangan dari alat yang sudah dibahas dalam bab III. Setiap perangkat mengambil bagian penting dari sebuah sistem secara keseluruhan. Berikut ini merupakan hasil implemetasi dari perancangan alat dan bagian-bagian komponen yang merupakan satu kesatuan dari keseluruhan sistem.
4.1. Bentuk Fisik Hardware Elektronika 4.1.1. Bentuk Fisik Minimum System ATmega16 Bentuk fisik minimum system ATmega16 terdapat dua buah minimum sistem, yakni minimum system A yang secara keseluruhan ditunjukkan pada pada gambar 4.1 dan minimum system B yang secara keseluruhan ditunjukkan pada gambar 4.2. Minimum sistem A terdiri dari IC ATmega16, IC Max232, port A, port B, port C, port D, port female rs232, dan connector Vcc, sedangkan minimum system B terdiri dari IC ATmega 16, port A, port B, port C, port D dan connector Vcc Minimum system A fungsinya digunakan untuk menerima data dari model simulator boiler. Data yang diterima berupa data parameter boiler. Minimum system B fungsinya digunakan untuk menerima data dari minimum system A dan data tersebut akan ditampilkan pada LCD .
Gambar 4.1. Minimum System A 34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
Gambar 4.2. Minimum System B
4.1.2. Bentuk Fisik LCD 2x16 Bentuk Fisik LCD 2x16 secara keseluruhan terdapat pada gambar 4.3. LCD berfungsi untuk menampilkan data-data yang telah diatur dan diterima. Data yang ingin ditampilkan berupa data parameter yang diolah oleh minimum system B. Port yang digunakan yakni port D.
Gambar 4.3. LCD 2x16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
Gambar 4.4. Rangkaian Keseluruhan Modul Komunikasi Serial
Gambar 4.5. Bentuk Fisik Modul Komunikasi Serial
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
Tabel 4.1. Penggunaan Port Pada Mynsis Mikrokontroler No
Saluran
Fungsi
1
PA0
BUZZER
2
PA1
LED Indikator
3
PB0
RS LCD
4
PB1
RW LCD
5
PB2
Enable LCD
6
PB4
D4 LCD
7
PB5
D5 LCD
8
PB6
D6 LCD
9
PB7
D7 LCD
10
PC0
SCL
11
PC1
SDA
12
PD0
RXD
13
PD1
TXD
4.1.4. Cara Penggunaan Alat Hardware modul komunikasi serial akan langsung hidup secara otomatis ketika mendapatkan tegangan dari power supply. User dapat mengatur kecerahan LCD dengan mengatur potensiometer. Pada hardware ini terdapat dua buah potensiometer untuk mengatur masing-masing kecerahan LCD.
Selain itu terdapat dua buah tombol reset
dimana fungsinya untuk merestart program, sehingga kembali ke program awal.
4.2. Pengujian Keberhasilan 4.2.1. Pengujian Penerimaan Data Temperatur Pengujian untuk penerimaan data temperatur dilakukan dengan mengamati apakah data yang dikirim dari model simulator boiler dan data yang diterima di modul komunikasi serial (USART dan I2C) akan di tampilkan pada LCD sudah sama atau berbeda. Untuk pengujian percobaan ini diharapkan data yang diterima akan di tampilkan pada tiap LCD harus sinkron semua. Untuk pengujian penerimaan data temperatur dilakukan sebanyak 11 percobaan (sama dengan jumlah pengujian yang dilakukan pada bagian model
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
simulator boiler). Hasil pengujian penerimaan data temperatur pada modul komunikasi serial ditunjukan pada tabel 4.2. Tabel 4.2. Hasil Pengujian Penerimaan Data Temperatur Data Dari Model
LCD 1
LCD 2
Error
Simulator Boiler
USART
I2C
(%)
0
0
0
0
24
24
24
0
55
55
55
0
79
79
79
0
109
109
109
0
134
134
134
0
160
160
160
0
184
184
184
0
211
211
211
0
233
233
233
0
254
254
254
0
4.2.2. Pengujian Penerimaan Data Tekanan Pengujian untuk penerimaan data tekanan dilakukan dengan mengamati apakah data yang dikirim dari model simulator boiler dan data yang diterima di modul komunikasi serial (USART dan I2C) akan di tampilkan pada LCD sudah sama atau berbeda. Untuk pengujian percobaan ini diharapkan data yang diterima akan di tampilkan pada tiap LCD harus sinkron semua. Untuk pengujian penerimaan data tekanan dilakukan sebanyak 11 percobaan (sama dengan jumlah pengujian yang dilakukan pada bagian model simulator boiler). Hasil pengujian penerimaan data tekanan
pada modul komunikasi serial
ditunjukan pada tabel 4.3. Tabel 4.3. Hasil Pengujian Penerimaan Data Tekanan Data Dari Model
LCD 1
LCD 2
Error
Simulator Boiler
USART
I2C
(%)
0
0
0
0
0,9
0,9
0,9
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
Tabel 4.3. (Lanjutan) Hasil Pengujian Penerimaan Data Tekanan 2,1
2,1
2,1
0
3,1
3,1
3,1
0
4,3
4,3
4,3
0
5,2
5,2
5,2
0
6,3
6,3
6,3
0
7,3
7,3
7,3
0
8,3
8,3
8,3
0
9,1
9,1
9,1
0
9,9
9,9
9,9
0
4.2.3. Pengujian Penerimaan Data Level Air Pengujian untuk penerimaan data level air dilakukan dengan mengamati apakah data yang dikirim dari model simulator boiler dan data yang diterima di modul komunikasi serial (USART dan I2C) akan di tampilkan pada LCD sudah sama atau berbeda. Untuk pengujian percobaan ini diharapkan data yang diterima akan di tampilkan pada tiap LCD harus sinkron semua. Untuk pengujian penerimaan data level air dilakukan sebanyak 11 percobaan (sama dengan jumlah pengujian yang dilakukan pada bagian model simulator boiler). Hasil pengujian penerimaan data level air
pada modul komunikasi serial
ditunjukan pada tabel 4.4. Tabel 4.4. Hasil Pengujian Penerimaan Data Level Air Data Dari Model Simulator Boiler
LCD 1 USART
0 0,7
LCD 2
Error
0 0,7
I2C 0 0,7
(%) 0 0
2,1
2,1
2,1
0
3,3
3,3
3,3
0
4,2
4,2
4,2
0
5,2
5,2
5,2
0
6,6
6,6
6,6
0
7,2
7,2
7,2
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
Tabel 4.4. (Lanjutan) Hasil Pengujian Penerimaan Data Level Air 8,2
8,2
8,2
0
9,0
9,0
9,0
0
9,9
9,9
9,9
0
4.2.4. Pengujian Penerimaan Data Level Oli Pengujian untuk penerimaan data level oli dilakukan dengan mengamati apakah data yang dikirim dari model simulator boiler dan data yang diterima di modul komunikasi serial (USART dan I2C) akan di tampilkan pada LCD sudah sama atau berbeda. Untuk pengujian percobaan ini diharapkan data yang diterima akan di tampilkan pada tiap LCD harus sinkron semua. Untuk pengujian penerimaan data level oli dilakukan sebanyak 11 percobaan (sama dengan jumlah pengujian yang dilakukan pada bagian model simulator boiler). Hasil pengujian penerimaan data level oli
pada modul komunikasi serial
ditunjukan pada tabel 4.5. Tabel 4.5. Hasil Pengujian Penerimaan Data Level Oli Data Dari Model
LCD 1
LCD 2
Error
Simulator Boiler
USART
I2C
(%)
0
0
0
0
9
9
9
0
19
19
19
0
27
27
27
0
37
37
37
0
44
44
44
0
52
52
52
0
61
61
61
0
71
71
71
0
77
77
77
0
85
85
85
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
4.3. Pembahasan Software Pada tugas akhir ini software yang digunakan adalah Code Vision AVR Compiler (bahasa C). Software ini digunakan untuk membuat program pada IC mikrokontroler yang akan digunakan. IC yang akan digunakan pada modul komunikasi serial adalah mikrokontroler ATmega16. Berikut ini merupakan pembahasan dari program modul komunikasi serial (USART dan I2C).
4.3.1. Program USART Berikut ini merupakan pembahasan dari program modul komunikasi serial untuk bagian usart.
Pada program kode diatas merupakan library yang akan digunakan. Berhubung yang akan digunakan adalah IC ATmega16, delay, LCD dan fungsi sprintf maka dituliskan include librarinya masing-masing.
Ini adalah bagian dari inisialisasi USART untuk ATmega16, penulisan programnya otomatis setelah melakukan setting awal pada codevision AVR Nilai baud rate dapat diatur dengan menggunakan standar kecepatan yang disediakan, diantaranya 1.200, 2.400, 4.800, 9600, 19.200, 38.400, 57.600, dan 115.200 bps. Salah satu kecepatan yang paling umum digunakan adalah 9.600 bps. Umumnya baud rate yang digunakan dalam pengiriman data antar mikrokontroler adalah 9600 bps. Karena baud rate 9600 bps merupakan standar unuk komunikasi serial.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
char tx_buffer[80] Transmisi Data untuk I2C, char rx_buffer[80] Data Yang diterima dari I2C, char dataString[16] Penampung untuk komunikasi USART, char data1[33],data2[33],data3[33],data4[33] penampung untuk setiap data yang diterima int suhu,oli, variabel untuk memeriksa kondisi suhu dan level oli , float tekanan,air Variabel untuk memeriksa kondisi tekanan dan level air.
Membersihkan variabel penampung untuk menerima data selanjutnya yang dikirim
Menerima dan memeriksa karakter kemudian mengubahnya kedalam string
getString();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
sprintf(data1,"%s",dataString) Menyimpan data suhu pada data1 getString(); sprintf(data2,"%s",dataString) Menyimpan data tekanan pada data2 suhu=atoi(data1) Ubah data1 menjadi integer untuk suhu tekanan=atof(data2) Ubah data2 menjadi float untuk tekanan
Periksa kondisi boiler jika nilai suhu < 20 atau suhu >200 maka buzzer akan bunyi (on) , jika nilai tekanan < 4 atau tekanan > 9 maka buzzer akan bunyi (on) PORTA.0=1 buzzer akan aktif ( on), PORTA.0=0 buzzer akan non aktif (off).
Menampilkan data yang diambil pada LCD Tampilkan data untuk suhu, tampilkan data untuk tekanan, PORTA.1=0 merupakan kondisi awal dari buzzer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
sprintf(tx_buffer," T=%sC P=%sb\n A=%st O=%sm3",data1,data2,data3,data4) Untuk mengirimkan data boiler ke slave menggunakan komunikasi serial I2C. if (twi_master_trans(TWI_SLAVE_ADDR,tx_buffer,strlen(tx_buffer),rx_buffer,sizeof(rx_buff er))) { Mengirim data ke slave dan menunggu respon dari slave if (twi_rx_index) { Respon yang akan dilakukan jika I2C tidak error if (twi_rx_index) { rx_buffer[twi_rx_index]=NULL; } } } Pastikan data terakhir NULL karakter
4.3.2. Program I2C Berikut ini merupakan pembahasan dari program modul komunikasi serial untuk bagian I2C.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
char rx_buffer[32] variabel untuk menampung data yang diterima char tx_buffer[32] variabel untuk mengirim respon slave
bool slave_rx_handler(bool rx_complete) { if (twi_result==TWI_RES_OK) received_ok=true; else { Ini merupakan bagian program untuk mengecek I2C terlebih dahulu jika ada data yang dikirim tanpa error.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
else { lcd_clear(); lcd_putsf("Receive error:\n"); lcd_putsf(status_msg[twi_result]); received_ok=false; return false; } Program ini untuk membaca jika ada data yang diterima error, maka sinyal akan dikirimkan dengan pesan error untuk menghentikan pengecekan
unsigned char slave_tx_handler(bool tx_complete) { unsigned char i; if (tx_complete==false) { strcpyf(tx_buffer,"Data diterima OK\n\r"); return strlen(tx_buffer); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
if (received_ok) { lcd_clear();
for (i=0;i
4.4. Pembahasan Komunikasi Serial Untuk menguji komunikasi serial yang dilakukan antara model simulator boiler dan modul komunikasi serial alat yang digunakan adalah osiloskop. Dengan osiloskop penerima data parameter boiler dapat diamati. Bentuk gelombang tersebut dapat diidentifikasi dan disesuaikan dengan data yang diterima pada program mikrokontroler. Pengujian komunikasi serial menggunakan osiloskop dilakukan sebanyak 27 kali percobaan. Setiap parameter boiler dilakukan percobaan sebanyak 6 sampai 7 kali percobaan. Untuk analisis pengujian komunikasi serial hanya menggunakan data temperatur karena temperatur merupakan data pertama (data1), tekanan merupakan data kedua (data2), level air merupakan data ketiga (data3), dan level oli merupakan data terakhir (data4). Data parameter yang lain tidak dapat dianalisis karena keterbatasan kemampuan osiloskop untuk menampilkan seluruh data yang diterima. Ada 2 percobaan yang akan dianalsis untuk mewakili setiap percobaan yang telah dilakukan, yaitu : 1. Data Temperatur ( T=50C )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
Gambar 4.6. Komunikasi serial data temperatur (T=50C)
Gambar 4.7. Data temperatur pada osiloskop (T=50C) Gambar 4.7. merupakan komunikasi serial yang dilakukan oleh bagian model simulator boiler dengan bagian modul komunikasi serial. Data temperatur yang diatur oleh user menunjukan nilai temperatur adalah T=50C, sedangkan nilai parameter yang lain tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
diubah karena pada percobaan ini hanya akan melihat perubahan bentuk data temperatur pada osiloskop. Gambar 4.7. merupakan gelombang dari data temperatur pada osiloskop dengan nilai T=50C. Pada bagian program mikrokontroler (software) hanya nilai data saja yang diterima, contohnya T=50C maka yang akan diterima hanya data 50. Pengiriman data yaitu per karakter kemudian dikumpulkan menjadi sebuah kalimat. Setiap data yang diterima akan dipisahkan dengan karakter # (data1#data2#data3#data4#). Data yang diterima lebih dahulu adalah LSB (least significant bit). LSB merupakan bit yang paling kanan. Dari bentuk gelombang pada gambar 4.7. terdapat 5 buah karakter dan dapat dilihat pada tabel 4.6. Tabel 4.6. Biner dari (T=50) dalam hex dan karakter Biner
Hex
Karakter
1010 1100 = 0011 0101
35
5
0000 1100 = 0011 0000
30
0
1100 0100 = 0010 0011
23
#
0001 1100 = 0011 1000
38
8
0111 0100 = 0010 1110
2E
.
Dari tabel 4.6 dapat dilihat bahwa pengujian pengiriman data parameter boiler yang dilakukan dengan menggunakan osiloskop membuktikan jika data yang diterima sesuai dengan program mikrokontoler (software) yang telah dibuat.
2. Data Temperatur ( T=200C )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
Gambar 4.8. Komunikasi serial data temperatur (T=200C)
Gambar 4.9. Data temperatur pada osiloskop (T=200C) Gambar 4.8. merupakan komunikasi serial yang dilakukan oleh bagian model simulator boiler dengan bagian modul komunikasi serial. Data temperatur yang diatur oleh user menunjukan nilai temperatur adalah T=200C, sedangkan nilai parameter yang lain tidak diubah karena pada percobaan ini hanya akan melihat perubahan bentuk data temperatur pada osiloskop.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
Gambar 4.9. merupakan gelombang dari data temperatur pada osiloskop dengan nilai T=200C. Pada bagian program mikrokontroler (software) hanya nilai data saja yang diterima, contohnya T=200C maka yang akan diterima hanya data 200. Pengiriman data yaitu per karakter kemudian dikumpulkan menjadi sebuah kalimat. Setiap data yang dikirimkan akan dipisahkan dengan karakter # (data1#data2#data3#data4#). Data yang terkirim lebih dahulu adalah LSB (least significant bit). LSB merupakan bit yang paling kanan. Dari bentuk gelombang pada gambar 4.9. terdapat 5 buah karakter dan dapat dilihat pada tabel 4.7. Tabel 4.7. Biner dari (T=200) dalam hex dan karakter Biner
Hex
Karakter
1010 1100 = 0011 0101
32
2
0000 1100 = 0011 0000
30
0
0000 1100 = 0011 0000
30
0
1100 0100 = 0010 0011
23
#
0001 1100 = 0011 1000
38
8
Dari tabel 4.7 dapat dilihat bahwa pengujian penerima data parameter boiler yang dilakukan dengan menggunakan osiloskop membuktikan jika data yang diterima sesuai dengan program mikrokontoler (software) yang dibuat.
4.5. Pembahasan Komunikasi I2C Berikut ini adalah pembahasan untuk komunikasi I2C. Untuk pengujian komunikasi I2C dengan menggunakan osiloskop untuk menidentifikasi data yang diterima dari model simulator boiler sesuai data yang dikirim. Serial data (SDA) dan serial clock (SCL) merupakan data dan waktu yang akan ditampilkan di osiloskop. Percobaan dilakukan sebanyak 4 kali sesuai dengan parameter boiler. Ada 2 percobaan yang akan dianalsis untuk mewakili setiap percobaan yang telah dilakukan, yaitu :
1. Data Temperatur ( T=50C )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
Gambar 4.10. Data dan clock temperatur pada osiloskop (T=50C)
2. Data Temperatur ( T=200C )
Gambar 4.11. Data dan clock temperatur pada osiloskop (T=50C) Dari gambar 4.8 dan gambar 4.9 dapat dilihat bahwa data dan clock untuk data temperatur pada T=50C dan T=200C hampir sama, tidak terlihat perbedaan karena saat pengujian terjadi kesalahan dalam setting diosiloskop (Time/Div) sehingga bentuk gelombang satu paket data tidak dapat terlihat. Sehinnga gelombang kotak SDA dan SCL tidak bisa dapat diamati untuk diidentifikasi.
4.6. Analisa Sistem Secara Keseluruhan Dari hasil pengujian alat dan listing program di atas dapat dianalisa bahwa sistem secara keseluruhan tidak berjalan sesuai perancangan awal. Pada perancangan awal keseluruhan sistem menggunakan komunikasi dua arah namun pada implementasinya komunikasi hanya satu arah, dikarenakan pada bagian sistem monitoring boiler mengalami
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
kendala sehingga proses pengerjaannya terhenti. Sehingga pada pengujian keseluruhan sistem hanya terdapat model simulator boiler dan modul komunikasi serial. Pada implementasi feedback tidak ada karena bagian yang memberikan feedback adalah sistem monitoring boiler, sehingga modul komunikasi serial hanya menerima data dari model simulator boiler dan ditampilkan pada LCD. Data yang diterima dari model simulator boiler merupakan data parameter, saat data yang diterima kurang atau melebihi batas maksimal maka buzzer akan bunyi (on). Sebenarnya buzzer ada pada bagian model simulator boiler dimana fungsinya sebagai alarm, namun pada implementasi buzzer dipindahkan ke bagian komunikasi
serial dikarena
mempengaruhi data yang sudah diatur oleh user pada bagian model simulator boiler. Untuk buzzer menggunakan port A0 di bagian mikrokontroler (master). Lampu indikator juga merupakan bagian yang dipindahkan dari model simualtor boiler ke modul komunikasi serial. LED indikator berfungsi sebagai pertanda jika data telah diterima. LED indikator dipindahkan dibagian modul komunikasi serial karena berperan sebagai penerima data. LED indikator menggunakan port A1 pada mikrokontroler (master). Pada perancangan untuk komunikasi serial menggunakan RS232 namun pada pengujian awal RS232 tidak dapat berfungsi (salah satu antara model simulator boiler dan modul komunikasi serial). Untuk sarana komunikasi serial usart antara model simulator boiler dengan modul komunikasi serial langsung menggunakan port tx dan rx yang ada di mynsis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan Berdasarkan penelitian yang telah dilakukan dimana dimulai dari tahap perancangan sistem, implementasi, pengujian sistem, hasil pengujian, serta pembahasan, maka dapat dapat ditarik kesimpulan, antara lain : 1. Alat yang dibuat oleh penulis tidak sesuia dengan perancangan awal 2. Untuk komunikasi serial (USART dan I2C) bekerja dengan baik, dimana data dapat diterima dan ditampilkan pada LCD 3. Data yang ditampilkan pada LCD berubah-ubah atau tidak stbil. 4. Perlu dilakukan pengujian alat yang cukup sering agar didapat data yang sesuai.
5.2. SARAN Saran untuk pengembangan sistem modul komunikasi serial (USART dan I2C) adalah sebagai berikut : 1. Untuk penelitian selanjutnya, bisa lebih ditingkatkan lagi desain dan penggunaan bahan perangkat keras sebagai bahan untuk penelitian ini. 2. Alat ini bisa dikembangkan lagi menggunakan bluetooth dan wifi sebagai media komunikasi 3. Diharapkan untuk dapat dijadikan referensi agar dilakukan penelitian lebih lanjut suapaya bisa mendapatkan hasil yang lebih optimal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA [1]
http://www.engineersgarage.com/embedded/avr-microcontroller-projects/serialcommunication-atmega16-usart, Di akses pada tanggal 4 Maret 2016
[2]
Heri Andrianto, Maret 2013 (Edisi Revisi), Pemrograman Mikrokontroler AVR Atmega16 Menggunakan Bahasa C (Code VisionAVR) : Bab 15 Komunikasi Serial Usart, hal, 123.
[3]
Banks, Michael A. (1990). "BITS, BAUD RATE, AND BPS Taking the Mystery Out of Modem Speeds". Brady Books/Simon & Schuster. Retrieved 17 September 2014. Di akses pada tanggal 7 Maret 2016
[4]
https://tutorkeren.com/artikel/dasar-komunikasi-serial.htm, Di akses Pada Tanggal 7 Maret 2016
[5]
http://www.academia.edu/5225096/Atmega_16 , Diakses Pada Tanggal 15 Maret 2016
[6]
----, 2012, data Sheet ATmega16, ATMEL Corporation
[7]
Heri Andrianto, Maret 2013 (Edisi Revisi), Pemrograman Mikrokontroler AVR Atmega16 Menggunakan Bahasa C (Code VisionAVR) : Bab 2 Pemrograman Mikrokontroler AVR Atmega16, hal, 21
[8]
http://elektronika-dasar.web.id/lcd-liquid-cristal-display-dot-matrix-2x16-m1632/, Di akses pada tanggal 16 Maret 2016
[9]
http://www.insinyoer.com/prinsip-kerja-komunikasi-serial-rs32/, Di akses pada tanggal 17 Maret 2016
[10]
http://www.vedcmalang.com/pppptkboemlg/index.php/menuutama/listrikelectro/1054-ds, Di akses pada tanggal 17 Maret 2016
[11]
http://www.engineersgarage.com/embedded/avr-microcontroller-projects/serialcommunication-atmega16-usart, Di Akses Pada Tanggal 22 Maret 2016
[12]
http://elektro.studentjournal.ub.ac.id/index.php/teub/article/download/246/204, Di akses Pada Tanggal 25
[13]
http://www.robot-electronics.co.uk/i2c-tutorial, Di akses Pada tanggal 26 Maret 2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-1
LAMPIRAN Program USART : #include
#include <stdio.h> #include <string.h> #include <delay.h> #include #include #include <stdlib.h>
// 7bit Alamat i2c Slave #define TWI_SLAVE_ADDR 0x50
char tx_buffer[80]; char rx_buffer[80]; char dataString[16]; char data1[33],data2[33],data3[33],data4[33]; int suhu,oli; float tekanan,air;
void clearStringBuffer(){ unsigned char i=0; for (i=0;i<16;i++){ dataString[i]=''; } PORTA.1=1; }
void getString(){ unsigned char i=0,temp; clearStringBuffer();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-2
temp = getchar();
while (temp!='#'){ dataString[i]=temp; i++; temp = getchar(); } }
void main(void) {
// Konfigurasi untuk PORT // Input/Output Ports initialization // Port A initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=Out Bit1=Out Bit0=Out DDRA=(0<
// Port B initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<
// Port C initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-3
DDRC=(0<
// Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=(0<<WGM00) | (0<
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-4
// Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(0<
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0<
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0<
// External Interrupt(s) initialization // INT0: Off
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-5
// INT1: Off // INT2: Off MCUCR=(0<
// USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: Off // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=(0<
// Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<
// ADC initialization // ADC disabled
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-6
ADCSRA=(0<
// SPI initialization // SPI disabled SPCR=(0<<SPIE) | (0<<SPE) | (0<
// TWI initialization // Mode: TWI Master // Bit Rate: 100 kHz twi_master_init(100);
// Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTB Bit 0 // RD - PORTB Bit 1 // EN - PORTB Bit 2 // D4 - PORTB Bit 4 // D5 - PORTB Bit 5 // D6 - PORTB Bit 6 // D7 - PORTB Bit 7 // Characters/line: 16 lcd_init(16);
// Globally enable interrupts #asm("sei")
while (1) {
getString();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-7
sprintf(data1,"%s",dataString);
getString(); sprintf(data2,"%s",dataString);
getString(); sprintf(data3,"%s",dataString);
getString(); sprintf(data4,"%s",dataString);
suhu=atoi(data1); tekanan=atof(data2); air=atof(data3); oli=atoi(data4);
if ( suhu<20||suhu>200 ||tekanan<4||tekanan>9 ||air<3||air>9 ||oli<24||oli>80) { PORTA.0=1; } else { PORTA.0=0; }
lcd_clear();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-8
lcd_gotoxy(1,0); lcd_putsf("T="); lcd_puts(data1); lcd_putsf("C");
lcd_gotoxy(9,0); lcd_putsf("P="); lcd_puts(data2); lcd_putsf("b");
lcd_gotoxy(1,1); lcd_putsf("A="); lcd_puts(data3); lcd_putsf("t");
lcd_gotoxy(9,1); lcd_putsf("O="); lcd_puts(data4); lcd_putsf("m3");
PORTA.1=0;
sprintf(tx_buffer," T=%sC P=%sb\n A=%st O=%sm3",data1,data2,data3,data4);
if (twi_master_trans(TWI_SLAVE_ADDR,tx_buffer,strlen(tx_buffer),rx_buffer,sizeof(rx_b uffer))) { // Respon yang akan dilakukan jika I2C tidak error if (twi_rx_index)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-9
{ // Pastikan data terakhir NULL karakter rx_buffer[twi_rx_index]=NULL; } } } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-10
Program I2C
#include #include <stdio.h> #include #include <delay.h> #include #include <string.h>
// 7bit slave I2C address #define TWI_SLAVE_ADDR 0x50
char rx_buffer[32]; char tx_buffer[32];
// flag that signals that the TWI slave reception was OK bit received_ok=false;
flash char * flash status_msg[8]= { "OK", "Buffer overflow", "Arbitration lost", "Bus error", "NACK received", "Bus timeout", "Fail", "Unknown error" };
bool slave_rx_handler(bool rx_complete) { if (twi_result==TWI_RES_OK) received_ok=true; else
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-11
{
lcd_clear(); lcd_putsf("Receive error:\n"); lcd_putsf(status_msg[twi_result]); received_ok=false; return false; }
if (rx_complete)
return false; // no more bytes to receive
return (twi_rx_index<sizeof(rx_buffer)); }
unsigned char slave_tx_handler(bool tx_complete) { unsigned char i; if (tx_complete==false) {
strcpyf(tx_buffer,"Data packet received OK\n\r");
return strlen(tx_buffer); }
if (received_ok) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-12
lcd_clear(); for (i=0;i
void main(void) {
lcd_init(16); lcd_clear();
twi_slave_init(false,TWI_SLAVE_ADDR,rx_buffer,sizeof(rx_buffer),tx_buffer,slave_rx_ handler,slave_tx_handler);
lcd_putsf("TWI slave OK"); delay_ms(2000);
#asm("sei")
while (1); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-14
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-15
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-17
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-18
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-19
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-22
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-26
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-28
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-29
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-37
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-40