P. 1
7203030017

7203030017

4.71

|Views: 3,363|Likes:
Dipublikasikan oleh anggar_55

More info:

Published by: anggar_55 on Oct 23, 2008
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/01/2013

pdf

text

original

PROYEK AKHIR

RANCANG BANGUN SISTEM OTOMATISASI PINTU GARASI BERBASIS MIKROKONTROLLER DENGAN SMS -- PENGONTROLAN PINTU OTOMATIS MENGGUNAKAN ATmega8535 --

MA’RIFATUL IMAN NRP. 7203030038

Dosen Pembimbing: AMANG SUDARSONO, ST NIP. 132 300 371 AKUWAN SALEH, SST NIP. 131 831 467

JURUSAN TEKNIK TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA SURABAYA 2006

RANCANG BANGUN SISTEM OTOMATISASI PINTU GARASI BERBASIS MIKROKONTROLLER DENGAN SMS -- PENGONTROLAN PINTU OTOMATIS MENGGUNAKAN MIKROKONTROLLER ATmega8385 -Oleh:

MA’RIFATUL IMAN 7203 030 038 Proyek Akhir ini Digunakan Sebagai Salah Satu Syarat untuk Memperoleh Gelar Ahli Madya (A.Md.) di Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya Disetujui oleh Tim Penguji: Dosen Pembimbing:

1. Ir. Prima Kristalina, MT NIP. 131 843 904

1. Amang Sudarsono, ST NIP. 132 300 371

2. I Gede Puja Astawa, ST, MT NIP. 132 102 837

2. Akuwan Saleh, SST NIP. 131 831 467

3. Haniah Mahmudah, ST NIP. 132 297 803

Mengetahui, Ketua Jurusan Telekomunikasi

Drs. Miftahul Huda, MT NIP. 132 055 257

ABSTRAK
Pengiriman pesan menggunakan teknologi selular dipercaya menjadi trend terbaru. Karena popularitasnya, sehingga diaplikasikan pada tiap-tiap sektor. Format Siemens yang dulu digunakan untuk menerima dan mengirimkan data dikenal sebagai Modul PDU (Protocol Data Unit). Pada modul disebut AT Command. Dan menggunakan mikrokontroller AVR ATmega8535. Pada Proyek akhir ini, suatu alat dapat membuka dan menutup pintu garasi via SMS. Mengirim SMS (opened) ke HP server, kemudian pesan diteruskan ke mikrokontroller. Apabila beban dapat diaktifkan, maka mikrokontroller akan memberikan aksi yang berupa instruksi kepada HP server untuk mengirim pesan berupa SMS (has been opened) ke HP user sebagai report bahwa beban dapat diaktifkan secara otomatis. Begitu juga untuk mengirim SMS (closed) ke HP server, kemudian pesan diteruskan ke mikrokontroller. Apabila beban dapat diaktifkan, maka mikrokontroller akan memberikan aksi yang berupa instruksi kepada HP server untuk mengirim pesan berupa SMS (has been closed) ke HP user sebagai report bahwa beban dapat diaktifkan secara otomatis Dengan demikian lebih efisien terhadap waktu untuk mengontrol pintu garasi dari jarak jauh menggunakan SMS . Kata kunci : Mikrokontroller AVR ATmega8535, SMS, PDU, opened, closed, report, AT command

ABSTRACT
Sending message using cellular technology is believed to become trend on these recent days. Because of the popularity, it’s applied in every sector. Siemens format that used to receive and send data is known as PDU (Protocol Data Unit) Module. Orders in the module are called AT Command. And used to control the Plant by using microcontroller AVR ATmega8535. In this Final Project, a tool that can open and closed the garage via SMS. Send SMS (opened) to Hp server, and will be process in microcontroller. If burden can be actived, and then mikrokontroller will give action which is in the form of instruction to HP server to send message of SMS (has been opened) to HP user as report that burden can be activated automatically. So also to send SMS (closed) to HP server, And the order will be process to microcontroller, If burden can be actived, and then mikrokontroller will give action which is in the form of instruction to HP server to send message of SMS ( has been closed) to HP user as report that burden can be activated automatically. Thereby more efficient to time to control garage door from long distance used SMS . Key words − AVR ATmega8535 Microcontroller, SMS, PDU, opened, closed, report, AT command.

KATA PENGANTAR

Assalamu’alaikum Wr. Wb, Puji Syukur Alhamdulillah kehadlirat Allah SWT yang senantiasa selalu memberikan Ridho dan Rahmatnya sehingga penulis dapat menyelesaikan proyek akhir ini dengan judul:
Rancang Bangun Sistem Otomatisasi Pintu Garasi Berbasis Mikrokontroller Dengan SMS -- Pengontrolan Pintu Otomatis Menggunakan ATmega8535--

Dalam menyelesaikan proyek akhir ini, penulis berpegang pada teori yang pernah didapat dan bimbingan dari para dosen pembimbing proyek akhir. Dan juga pihak – pihak lain yang sangat membantu hingga terselesaikannya proyek akhir ini. Proyek akhir ini merupakan salah satu syarat akademis untuk memperoleh gelar Ahlli Madya (A.Md.) di Politeknik Elektronika Negeri Surabaya, Institut Teknologi Sepuluh November Surabaya. Dalam pembuatan Buku Proyek akhir ini penulis menyadari bahwa masih jauh dari kekurangan di dalamnya. Untuk itu mohon saran dan kritik yang membangun. Dan semoga buku ini dapat memberikan manfaat kepada para pembaca. Akhir kata tiada gading yang tak retak. Wassalamu’alaikum Wr.Wb. Surabaya, Juli 2006

Penulis

UCAPAN TERIMA KASIH
Dalam pelaksanaan dan pembuatan proyek akhir ini tentunya saya banyak mendapatkan bantuan dan semangat dari berbagai pihak. Saya sangat bersyukur dan berterima kasih kepada Allah SWT atas segala rahmat dan karunianya. Juga tak lupa Shalawat serta Salam saya haturkan kepada Junjungan kita Rosulullah Muhammad SAW. Dan tanpa mengurangi rasa hormat saya mengucapkan terima kasih kepada pihak - pihak yang telah membantu, antara lain : 1. 2. 3. 4. 5. 6. 7. Ayah & Ibu yang saya sayangi dan hormati, ‘Kakakku’ (Alm. M. Nurul Chakim), ‘Neng’ Eli dan Nafi terima kasih telah memberikan kasih sayang dan do’a yang tak henti – henti di panjatkan. Keluarga Besar Alm. Sulchan dan Almh. Malichah Serta Keluarga Besar Bapak Subandi B. dan Rani Matur sembah Nuwun atas semangat dan do’anya . Bapak Dr. Ir. Titon Dutono, M.Eng, selaku Direktur Politeknik Elektronika Negeri Surabaya. Bapak Drs. Miftahul Huda, MT selaku ketua Jurusan Telekomunikasi Politeknik Elektronika Negeri Surabaya. Bapak Amang Sudarsono, ST dan Bapak Akuwan Saleh, SST selaku dosen pembimbing. Ibu Ir. Prima Kristalina, MT, Bapak I Gede Puja Astawa, ST, MT, dan Ibu Haniah Mahmudah, ST selaku dosen penguji. 3 TB Teman satu kelas 30 anak ini TOP BGT deh… I Luv U & Thank’s For all serta smua Ce_21.

Dan mohon ma’af apabila semua pihak yang banyak membantu dalam proyek akhir ini tidak dapat disebutkan satu persatu. Akan tetapi, hanya ucapan terima kasihlah yang dapat terlontarkan.

DAFTAR ISI
Lembar Judul ................................................................................... Lembar Pengesahan ........................................................................ Abstrak ............................................................................................ Abstract ........................................................................................... Kata Pengantar ................................................................................ Ucapan Terima kasih ....................................................................... Daftar Isi ......................................................................................... Daftar Gambar ................................................................................. Daftar Tabel .................................................................................... BAB I PENDAHULUAN .............................................................. 1.1.LATAR BELAKANG .................................................... 1.2 TUJUAN ........................................................................ 1.3 PERMASALAHAN ....................................................... 1.4 BATASAN MASALAH ................................................ 1.5 METODOLOGI ............................................................. 1.6 SISTEMATIKA PEMBAHASAN ................................ BAB II TEORI PENUNJANG ..................................................... 2.1 MIKROKONTROLLER AVR ATmega8535 ............... 2.1.1 Arsitektur AVR ATmega8535 ............................. 2.1.2 Pena – Pena ATmega8535 ................................... 2.1.3 Deskripsi Mikrokontroller ATmega8535 .............. 2.1.4 Port Sebagai Input/Output Digital ........................ 2.1.5 Organisasi Memori AVR ATmega8535 ............... 2.1.5.1 Program Memori ...................................... 2.1.5.2 Data Memori ............................................. 2.1.6 Instruksi Aritmatika ATmega8535 ....................... 2.2. BAHASA C .................................................................. 2.2.1 Proses Kompilasi dan Linking Program C ........... 2.2.2 Struktur Penulisan Program C .............................. 2.2.3 Dasar – Dasar Pemrograman C ............................ 2.2.3.1 Tipe Data Dasar ....................................... 2.2.3.2 Operator ................................................... 2.2.3.2.1 Operator Aritmatika .................. 2.2.3.3 Menampilkan Data Ke Layar ................... 2.2.3.3.1 Fungsi printf() ........................... 2.2.3.3.2 Fungsi putchar() ........................ 2.2.3.4 Memasukkan Data dari Keyboard ........... 2.2.3.4.1 Fungsi scanf() ............................ 2.2.3.4.2 Fungsi getchar() ........................ 2.3 MOTOR DC ................................................................. i ii iii iv v vi vii x xi 1 1 1 1 2 2 2 5 5 5 7 9 10 11 11 12 13 14 15 16 16 16 17 17 17 17 18 18 18 18 18

2.3.1 Prinsip Kerja Motor DC ....................................... 2.3.2 Konstruksi Motor DC ........................................... 2.3.3 Jenis Motor DC .................................................... 2.3.4 Karakteristik Motor DC ........................................ 2.3.5 Pengaturan Motor DC .......................................... 2.4 DRIVER MOTOR DC .................................................. 2.5 PENGATUR ARAH PUTARAN MOTOR DC ........... 2.6 KOMUNIKASI SERIAL RS232 ..................................

18 19 20 21 21 22 23 24

BAB III PERENCANAAN DAN PEMBUATAN PERANGKAT KERAS DAN LUNAK .................................................................. 27 3.1 PROSES KERJA SISTEM ............................................. 27 3.2 PERENCANAAN DAN PEMBUATAN PERANGKAT KERAS ........................................................................... 28 3.2.1 Perencanaan dan Pembuatan Pengubah Level Tegangan .............................................................. 28 3.2.2 Perencanaan dan Pembuatan Driver Motor DC .... 29 3.2.3 Perencanaan dan Pembuatan Antar Muka (interfaces) dengan Mikrokontroller ATmega8535 ................. 30 3.2.4 Pembuatan Perangkat Keras Downloader Mikrokontroller ATmega8535 ............................. 30 3.3 PERENCANAAN DAN PEMBUATAN PERANGKAT LUNAK .......................................................................... 31 3.3.1 Program Utama ..................................................... 32 3.3.2 Kontrolling ............................................................ 32 3.3.3 Perangkat Lunak Mikrokontroller Untuk Pergerakan Motor DC ............................................................. 34 3.3.2.1 Program Untuk Pergerakan Motor DC ..... 35 3.3.3 Pengaturan BaudRate Pada Komunikasi Serial .... 36 3.3.4 CodeVisionAVR ......................................................... 37 BAB IV PENGUJIAN ALAT DAN ANALISA ........................... 4.1 PENGUJIAN PERANGKAT KERAS .......................... 4.1.1 Pengujian Port Mikrokontroller.............................. 4.1.2 Pengujian Komunikasi Serial ................................ 4.1.3 Pengujian Rangkaian Driver Tanpa Beban ............ 4.1.4 Pengujian Rangkaian Driver dengan Beban.............. 4.1.5 Pengujian Sistem (Kontrol Motor Menggunakan SMS)......................... BAB V PENUTUP ......................................................................... 5.1 KESIMPULAN .............................................................. 5.2 SARAN .......................................................................... DAFTAR PUSTAKA ......................................................... 39 39 39 40 41 42 43 47 47 48 49

LAMPIRAN LISTING PROGRAM LAMPIRAN DATA SHEET ATmega 8535 BIODATA PENULIS

DAFTAR GAMBAR
Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Blok Diagram Mikrokontroller ATmega8535 ........... Konfigurasi Pin Mikrokontroller ATmega8535 ........ Arsitektur CPU dari AVR ......................................... Pemetaan Program Memori ....................................... Pemetaan Data Memori ............................................. Proses Kompilasi – Linking dari Program C ............. Prinsip Kerja Motor DC ............................................ Motor DC a. Konstruksi Motor DC ............................................ b. Diagram Skematik Motor ...................................... Gambar 2.9 Rangkaian Driver Motor DC ..................................... Gambar 2.10 Dasar Pengaturan Arah Putar Motor .......................... Gambar 2.11 Pengatur Arah dengan Menggunakan Saklar ............ Gambar 2.12 Format Pengiriman Data Serial ................................. Gambar 2.13 IC Serial Max 232 ..................................................... Gambar 2.14 Karakteristik Elektrik RS232 .................................... Gambar 2.15 RS232 (Sebagai Komunikasi Serial) ......................... Gambar 3.1 Blok Diagram Sistem ................................................ Gambar 3.2 Rangkaian Pengubah Level Tegangan ...................... Gambar 3.3 Rangkaian Driver Motor DC ...................................... Gambar 3.4 Rangkaian DownLoader ISP CodeVision AVR ........ Gambar 3.5 Flowchart Utama ....................................................... Gambar 3.6 Flowchart Kontrolling ................................................ Gambar 3.7 Flowchart Mikrokontroller Untuk Pergerakan Motor DC ................................................................... Gambar 3.8 CodeVision AVR ...................................................... Gambar 3.9 Create Project Baru .................................................... Gambar 3.10 Pilihan untuk menggunakan CodeWizard AVR ........ Gambar 3.11 Menseting Jenis Chip Port I/O ................................... Gambar 3.12 Menghasilkan Kode Program ..................................... Gambar 4.1 Pengujian Komunikasi Serial Pada Hyper Terminal . Gambar 4.2 Pengujian Rangkaian driver Tanpa Beban ................ Gambar 4.3 Pengujian Rangkaian Driver Dengan beban............... Gambar 4.4 Blok Diagram Pengujian Sistem ................................ 7 8 8 12 13 15 19 19 19 23 23 24 25 25 26 26 27 28 30 31 32 33 34 37 37 37 38 38 40 41 42 44

DAFTAR TABEL
Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel 2.1 Konfigurasi Pin Port ....................................................... 2.2 Instruksi Aritmatika ........................................................ 2.3 Ukuran Memori Untuk Tipe Data .................................. 2.4 Fungsi Masing – Masing Pin RS232 .............................. 3.1 Konfigurasi Pin IC MAX232 ......................................... 4.1 Hasil Pengujian Komunikasi Serial ................................ 4.2 Hasil Pengujian Driver Tanpa Beban .............................. 4.3 Hasil Pengujian Diver Dengan Beban (Motor DC ) .................................................................... Tabel 4.4 Hasil Pengujian Sistem Keseluruhan ............................. 11 14 17 25 29 40 42 43 44

BAB I PENDAHULUAN

1.1 LATAR BELAKANG Dengan semakin berkembangnya tekhnologi maka tingkat mobilitas dan cara berpikir manusia semakin meningkat pula. Oleh karena itu, manusia dituntut untuk dapat melakukan berbagai aktivitas dalam durasi waktu yang relatif singkat. Dalam kehidupan sehari-hari, sampai saat ini masyarakat masih bergantung pada alat seperti remote control untuk mengendalikan pintu garasi dalam jarak jauh. Akan tetapi pengontrolan tersebut hanya dapat dilakukan pada jarak tertentu saja, sehingga apabila jarak antara alat yang dikontrol dengan pengontrolnya itu melewati batas toleransinya maka peralatan tersebut tidak dapat berfungsi sesuai dengan keinginan. Untuk mengatasi permasalahan tersebut, maka diperlukan sebuah sistem yang dapat digunakan untuk mengontrol (opened atau closed) pintu garasi yang dalam penggunaannya tidak bergantung pada jarak yaitu dengan mengoptimalkan SMS pada Handphone. 1.2 TUJUAN Tujuan proyek akhir ini adalah merancang sebuah sistem yang mampu mengontrol (opened atau closed) pintu garasi pada jarak jauh menggunakan Short Message Service (SMS). 1.3 PERMASALAHAN Adapun permasalahan pada pembuatan proyek akhir ini adalah pengontrolan pintu garasi secara otomatis dari jarak jauh menggunakan SMS dengan karakter opened/closed.

1.4 BATASAN MASALAH Batasan masalah dalam proyek akhir ini adalah mengerjakan Input Karakter SMS yang ada pada Handphone Server, Kemudian diproses untuk mengatur pergerakan Motor DC. 1.5 METODOLOGI Perencanaan dan pembuatan proyek akhir ini memerlukan langkahlangkah penyelesaian sebagai berikut: Studi Literatur Mempelajari prinsip kerja dari sistem membuka dan menutup pintu garasi menggunakan teknologi SMS, yang dilanjutkan dengan pembelajaran tentang karakteristik SMS, program bahasa C pada CodeVisionAVR dan Mikrokontroller AVR ATmega8535. Perencanaan dan Pembuatan Merencanakan dan membuat peralatan dan sistem yang dibutuhkan secara perangkat keras. Pengujian Alat dan Analisa Sistem Mengintegrasikan sistem antara perangkat keras dengan perangkat lunak. Kemudian dilakukan pengujian antar segmen dan analisa terhadap hasil yang telah didapatkan 1.6 SISTEMATIKA PEMBAHASAN Sistematika pembahasan dalam proyek akhir ini adalah sebagai berikut : Bab I Pendahuluan Menguraikan tentang latar belakang, tujuan, permasalahan, batasan masalah, metodologi, dan sistematika pembahasan masalah yang digunakan dalam pembuatan proyek akhir ini. Bab II Teori Penunjang Teori – teori berisi tentang pembahasan secara garis besar mikrokontroller AVR ATmega8535, Bahasa C, Motor DC, Driver Motor DC Pengatur Arah Putaran Motor DC dan Komunikasi Serial RS232. Bab III Perencanaan dan Pembuatan Perangkat Keras dan Lunak Membahas secara langkap tentang perencanaan dan pembuatan sistem yang akan dibangun seperti pembuatan pengubah level tegangan, driver motor DC, Interfaces ATmega8535, DownLoader mikrokontroller ATmega8535, perangkat lunak pengontrol putaran motor DC dan pengaturan baudrate pada komunikasi serial.

Bab IV Pengujian Alat dan Analisa Membahas tentang pengujian alat dan analisa perangkat keras dari sistem yang telah dibuat. Bab V Penutup Berisi tentang kesimpulan dan saran yang berdasarkan analisa hasil data yang diperoleh.

<Halaman ini sengaja dikosongkan>

BAB II TEORI PENUNJANG

2.1 MIKROKONTROLLER AVR ATmega8535 2.1.1 Arsitektur AVR ATmega8535 AVR merupakan seri mikrokontroller CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving. Beberapa diantaranya mempunyai ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega8535. ATmega8535 adalah mikrokontroller CMOS 8-bit daya-rendah berbasis arsitektur RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock, ATmega8535 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi komsumsi daya versus kecepatan proses. Blok diagram dari mikrokontroller dapat dilihat pada gambar 2.1 Mikrokontroller ATmega8535 memiliki sejumlah keistimewaan sebagai berikut : • Advanced RISC Architecture o 130 Powerful Instructions – Most Single Clock Cycle Execution o 32 x 8 General Purpose Working Registers o Fully Static Operation o Up to 16 MIPS Throughput at 16 MHz o On-chip 2-cycle Multiplier • Nonvolatile Program and Data Memories o 8K Bytes of In-System Self-Programmable Flash - Endurance: 10,000 Write/Erase Cycles o Optional Boot Code Section with Independent Lock Bits - In-System Programming by On-chip Boot Program - True Read-While-Write Operation o 512 Bytes EEPROM - Endurance: 100,000 Write/Erase Cycles o 512 Bytes Internal SRAM o Programming Lock for Software Security • Peripheral Features o Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes o One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode

o Real Time Counter with Separate Oscillator o Four PWM Channels o 8-channel, 10-bit ADC - 8 Single-ended Channels - 7 Differential Channels for TQFP Package Only - 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x for TQFP Package Only o Byte-oriented Two-wire Serial Interface o Programmable Serial USART o Master/Slave SPI Serial Interface o Programmable Watchdog Timer with Separate On-chip Oscillator o On-chip Analog Comparator • Special Microcontroller Features o Power-on Reset and Programmable Brown-out Detection o Internal Calibrated RC Oscillator o External and Internal Interrupt Sources o Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Powerdown,Standby and Extended Standby • I/O and Packages o 32 Programmable I/O Lines o 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF • Operating Voltages o 2.7 - 5.5V for ATmega8535L o 4.5 - 5.5V for ATmega8535 • Speed Grades o 0 - 8 MHz for ATmega8535L o 0 - 16 MHz for ATmega8535

Gambar 2.1 Blok Diagram Mikrokontroller ATmega8535 2.1.2 Pena - Pena ATmega8535

Konfigurasi Pin Mikrokontroller ATmega8535 dengan kemasan 40-pin DIP (dual in-line package) dapat dilihat pada Gambar 2.2. Untuk memaksimalkan performa dan paralelisme, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). Arsitektur CPU dari AVR ditunjukkan oleh gambar 2.3 Instruksi pada memori program dieksekusi dengan pipelining single level. Selagi sebuah instruksi sedang dikerjakan, instruksi berikutnya diambil dari memori program.

Gambar 2.2. Konfigurasi Pin Mikrokontroller ATmega8535

Gambar 2.3. Arsitektur CPU dari AVR

2.1.3 Deskripsi Mikrokontroller ATmega8535 VCC (power supply) GND (ground) Port A (PA7..PA0) Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga berfungsi sebagai suatu Port I/O 8-bit dua arah, jika A/D Konverter tidak digunakan. Pin - pin Port dapat menyediakan resistor internal pull-up (yang dipilih untuk masing-masing bit). Port A output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Ketika pin PA0 ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah, pin – pin akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pin Port A adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. Port B (PB7..PB0) Port B adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Port B output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin port B yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pin Port B adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. Port C (PC7..PC0) Port C adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Port C output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin port C yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pin Port C adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. Port D (PD7..PD0) Port D adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Port D output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin port D yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pin Port D adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. RESET (Reset input) XTAL1 (Input Oscillator) XTAL2 (Output Oscillator) AVCC adalah pin penyedia tegangan untuk port A dan A/D Konverter AREF adalah pin referensi analog untuk A/D konverter.

2.1.4. Port Sebagai Input / Output Digital ATmega8535 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bi-directional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’ mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam regiter DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1)atau kondisi output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Maka harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi. Lebih detil mengenai port ini dapat dilihat pada manual datasheet dari IC ATmega8535.

Tabel 2.1. Konfigurasi Pin Port

Bit 2 – PUD : Pull-up Disable Bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1). 2.1.5. Organisasi Memori AVR ATmega8535 AVR arsitektur mempunyai dua ruang memori utama, Ruang Data Memori dan Ruang Program Memori. Sebagai tambahan, ATmega8535 memiliki fitur suatu EEPROM Memori untuk penyimpanan data. Semua tiga ruang memori adalah reguler dan linier. 2.1.5.1. Program Memori ATmega8535 berisi 8K bytes On-Chip di dalam sistem Memori flash Reprogrammable untuk penyimpanan program. Karena semua AVR instruksi adalah 16 atau 32 bits lebar, Flash adalah berbentuk 4K x 16. Untuk keamanan perangkat lunak, Flash Ruang program memori adalah dibagi menjadi dua bagian, bagian boot program dan bagian aplikasi program. Flash Memori mempunyai suatu daya tahan sedikitnya 10,000 write/erase Cycles. ATmega8535 Program Counter (PC) adalah 12 bit lebar, alamat ini 4K lokasi program memori.

Gambar 2.4. Pemetaan Program Memori 2.1.5.2. Data Memori 608 lokasi alamat data memori menunjuk register file, I/O memori, dan internal data SRAM. Yang pertama 96 lokasi alamat file register dan I/O memori penempatan menunjuk Memori I/O dan yang berikutnya 512 lokasi alamat internal data SRAM. Lima perbedaan mode pengalamatan data memori cover: Langsung,Tidak langsung dengan jarak, Tidak langsung, Tidak langsung dengan Pre-Decrement, dan Tidak langsung dengan Post-Increment. Di dalam file register, register R26 ke R31 memiliki fitur penunjukan pengalamatan register tidak langsung. Jangkauan pengalamatan langsung adalah keseluruhan ruang data. Mode Tidak langsung dengan jarak jangkauan 63 lokasi alamat dari alamat dasar yang diberi oleh Y- atau Z-Register. Manakala penggunaan register mode tidak langsung dengan pre-decrement otomatis dan postincrement, alamat register X, Y, dan Z adalah decremented atau incremented. 32 tujuan umum kerja register, 64 I/O register, dan 512 bytes data internal SRAM di dalam ATmega8535 adalah semua dapat diakses melalui semua mode pengalamatan.

Gambar 2.5. Pemetaan Data Memori 2.1.6. Instruksi Aritmatika Instruksi - instruksi dalam kelompok aritmatika selalu melibatkan akumulator, hanya beberapa saja yang melibatkan register seperti DPTR. Instruksi aritmatika yang umum digunakan adalah ADD (penjumlahan), SUBB (pengurangan), MUL (perkalian), dan DIV (pembagian). Contoh penulisan operasi aritmatika ADD adalah sbb: ADD A,7FH (direct addressing) ADD A,@R0 (indirect addressing) ADD A,R7 (register addressing) ADD A,#127 (immediate constant) Untuk selengkapnya daftar instruksi – instruksi aritmatika yang dapat digunakan dalam AVR ATmega8535 dapat dilihat pada tabel 2.2.

Tabel 2.2 Instruksi Aritmatika

2.2

BAHASA C

Akar bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Bahasa C adalah bahasa standart, artinya suatu program yang ditulis dengan versi bahasa C tertentu akan dapat dikompilasi dengan versi bahasa C yang lain dengan sedikit modifikasi. Beberapa alasan mengapa bahasa C banyak digunakan, diantaranya adalah sebagai berikut : 1. Bahasa C tersedia hampir di semua jenis komputer. 2. Kode bahasa C sifatnya portabel. 3. Bahasa C hanya menyediakan sedikit kata – kata kunci. 4. Proses executable program bahasa C lebih cepat. 5. Dukungan Pustaka yang banyak.

6. C adalah bahasa yang terstruktur. 7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat Menengah. 8. Bahasa C adalah kompiler 2.2.1 Proses Kompilasi dan Linking Program C Agar suatu program dalam bahasa pemrograman dapat dimengerti oleh komputer, program haruslah diterjemahkan dahulu ke dalam kode mesin. Adapun penerjemah yang digunakan bias berupa interpreter atau kompiler. Interpreter adalah suatu jenis penerjemah yang menerjemahkan baris per baris instruksi untuk setiap saat. Proses dari bentuk program sumber C (source program, yaitu program yang ditulis dalam bahasa C) hingga menjadi program yang executable (dapat dieksekusi secara langsung) ditunjukkan pada gambar 2.6. di bawah ini.

Gambar 2.6. Proses Kompilasi-Linking dari program C. 2.2.2 Struktur Penulisan Program C Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari program harus dimengerti terlebih dahulu. Tiap bahasa Komputer mempunyai struktur program yang berbeda. Struktur dari program memberikan gambaran secara luas, bagaimana bentuk dari program secara umum. Struktur dari program C dapat dilihat sebagai kumpulan dari sebuah atau lebih fungsi – fungsi. Fungsi pertama yang harus ada di program C sudah ditentukan namanya, yaitu bernama main(). Suatu fungsi di program C dibuka dengan kurung kurawal ({) dan ditutup dengan kurung kurawal tertutup (}). Diantara kurung kurawal dapat dituliskan statemen – statemen program C. Berikut ini adalah struktur dari program C.

main() { statemen – statemen; } Fungsi_Fungsi_Lain() { statemen – statemen }

Fungsi Utama

Fungsi – fungsi lain yang Ditulis oleh Pemrograman Komputer

2.2.3 Dasar – Dasar Pemrograman C 2.2.3.1. Tipe Data Dasar Data merupakan suatu nilai yang biasa dinyatakan dalam bentuk konstanta atau variabel. Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah – ubah selama eksekusi berlangsung. Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan sebagai tipe data dasar. Kelima tipe data dasar adalah : 1. Bilangan bulat (integer) 2. Bilangan real presisi-tunggal 3. Bilangan real-presisi ganda 4. Karakter 5. Tak bertipe (void) Tabel 2.3. memberikan informasi mengenai ukuran memori yang diperlukan dan kawasan dari masing – masing tipe data dasar. Tabel 2.3. Ukuran Memori untuk tipe data Tipe Total Bit char 8 int 32 float 32 double 64 2.2.3.2 Kawasan - 128 s/d 127 - 2147483648 s/d 2147483647 1.7E-38 s/d 3.4E+38 2.2E-308 s/d 1.7E+308 Keterangan Karakter Bilangan integer Bil. real presisi-tunggal Bil. Rel presisi-ganda

Operator

Operator atau tanda operasi adalah suatu tanda atau simbol yang digunakan untuk suatu operasi tertentu. 2.2.3.2.1. Operator Aritmatika

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :
* / Perkalian Pembagian

% + -

Sisa Pembagian Penjumlahan pengurangan

Adapun operator yang tergolong sebagai operator unary Tanda Minus
+ Tanda plus

2.2.3.3

Menampilkan Data ke Layar

Untuk keperluan menampilkan data/informasi, C menyediakan sejumlah fungsi. Beberapa diantaranya adalah berupa printf() dan putchar(). 2.2.3.3.1 . Fungsi printf() Fungsi printf() merupakan fungsi yang paling umum digunakan dalam menampilkan data. Berbagai jenis data dapat ditampilkan ke layar dengan memakai fungsi ini. 2.2.3.3.2 . Fungsi putchar() Fungsi putchar()digunakan khusus untuk menampilkan sebuah karakter di layar. Penampilan karakter tidak diakhiri dengan perpindahan baris. Contoh : Putchar (‘A’); Menghasilkan keluaran yang sama dengan Printf (“%c”,’A’); 2.2.3.4 Memasukkan Data dari Keyboard Data dapat dimasukkan lewat keyboard saat eksekusi berlangsung. Untuk keperluan ini, C menyediakan sejumlah fungsi, diantaranya adalah scanf() dan getchar(). 2.2.3.4.1 Fungsi scanf() Fungsi scanf() merupakan fungsi yang dapat digunakan untuk memasukkan berbagai jenis data. 2.2.3.4.2 Fungsi getchar() Fungsi getchar()digunakan khusus untuk menerima masukan berupa sebuah karakter dari keyboard.

2.3

MOTOR DC

2.3.1. Prinsip Kerja Motor DC Motor DC atau motor arus searah adalah suatu mesin yang berfungsi untuk mengubah tenaga listrik arus searah menjadi tenaga gerak atau tenaga mekanik, yang tenaga gerak tersebut berupa putaran dari rotor. Prinsip kerja dari motor DC hampir sama dengan generator AC, perbedaannya hanya terletak dalam konversi daya. Prinsip dasarnya adalah apabila suatu kawat berarus diletakkan diantara kutub – kutub magnet (U- S), maka pada kawat itu akan bekerja suatu gaya yang menggerakkan kawat tersebut.

Gambar 2.7. Prinsip Kerja Motor DC Apabila sebuah belitan terletak dalam medan magnet yang homogen, arah gerakan ditunjukkan seperti gambar diatas, karena kedua sisi lilitan mempunyai arus yang arahnya berlawanan. 2.3.2. Konstruksi Motor DC Bagian – bagian penting dari motor DC ditunjukkan oleh gambar 2.8, statornya mempunyai kutub menonjol dan diterjal oleh satu atau lebih kumparan medan. Pembagian fluks celah udara yang dihasilkan oleh lilitan medan secara simetris berada di sekitar tengah kutub medan, sumbu ini dinamakan sumbu medan atau sumbu langsung.

(a) Gambar 2.8. Motor DC a. Konstruksi Motor DC

(b)

b. Diagram Skematik Motor Kumparan penguat dihubungkan seri, jangkar merupakan besi laminasi yang bergerak untuk mengurangi arus eddy. Letak kumparan jangkar pada slot besi disebelah luar permukaan jangkar. Pada jangkar terdapat komutator yang terbentuk silender dan isolasi sisi kumparan dihubungkan dengan segmen komutator pada beberapa bagian yang berbeda, sesuai dengan jenis lilitannya. 2.3.3. Jenis Motor DC a) Berdasarkan sumber arus penguatan magnet 1. Motor DC Penguatan Permanen. 2. Motor DC Penguatan Terpisah Bila arus penguatan magnet diperoleh dari sumber DC diluar motor. 3. Motor DC dengan Penguatan Sendiri Bila arus penguatan magnet berasal dari motor itu sendiri. Berdasarkan hubungan Lilitan penguat magnet terhadap lilitan jangkar 1. Motor DC Shunt Motor Jenis ini memiliki kumparan medan yang dihubungkan secara parallel dengan kumparan jangkar sehingga akan menghasilkan kecepatan yang relatif konstan meskipun terjadi perubahan beban. Perubahan beban hanya sekitar 10 %. 2. Motor DC Seri Motor jenis ini memiliki medan penguat yang dihubungkan seri dengan medan jangkar. Arus jangkar untuk motor jenis ini lebih besar daripada arus jangkar pada kumparan jangkar untuk motor jenis shunt, selain itu kumparan Ns lebih sedikit. Tahanan medan Rf lebih kecil disebabkan tahanan tersebut merupakan bagian dari jumlah lilitan yang sedikit. Pada waktu start bisa memberi momen yang besar dengan arus start yang rendah juga dapat memberi perubahan kecepatan atau beban dengan arus kecil dibandingkan mootr tipe lain, tetapi kecepatan akan besar bila beban rendah atau tanpa beban dan hal ini sangat berbahaya. Kecepatannya bisa diatur melalui tegangan supply. 3. Motor DC Kompond Motor ini merupakan gabungan dari sifat – sifatt dari motor DC shunt dan seri, tergantung mana yang lebih kuat lilitannya, umumnya motor jenis ini memiliki moment start yang besar seperti pada motor DC seri. Perubahan kecepatan sekitar 25% terhadap keceatan tanpa beban. Motor ini dibagi menjadi dua jenis yaitu : Motor Kompond Panjang Motor Kompond Pendek

b)

2.3.4. Karakteristik Motor DC

Untuk menentukan karakteristik motor DC, hal yang harus diingat adalah dua persamaan dasar yaitu : 1. Karakteristik Kecepatan Putaran

n=

Vs − Ia.Ra C.φ

.............................................

(2.1)

Dimana : n = Kecepatan Putaran Vs = Tegangan Shunt ( Volt) Ia = Arus Armature (Ampere) Ra = Resistansi Armature ( Ohm) C = Kopel φ = Fluks (Wb/m2) 2.

τ = K .Ia.φ Dimana : τ = Torsi

Karakteristik Torsi

...............................................

(2.2)

K = Konstanta Ia = Arus Armature (Ampere) φ = Fluks (Wb/m2) 2.3.5. Pengaturan Motor Dc Berdasarkan persamaan 2.1 – 2.2 diatas dapat dilihat bahwa kecepatan (n), dapat diatur dengan mengubah – ubah besaran φ , Ra,Vt. 1. Pengaturan kecepatan dengan mengatur medan shunt ( φ ) Dengan menyisipkan tahanan variable yang dipasang secara seri terhadap kumparan medan (pada motor shunt), dapat diatur arus medan If dan fluksnya. Cara ini mudah dan sederhana, selain itu juga memperkecil rugi panas. Akan tetapi besaran fluks yang bisa dicapai oleh kumparan medan terbatas, sehingga kecepatan yang diatur terbatas. Kecepatan terendah didapatkan dengan membuat tahanan variable sama dengan nol, sedangkan kecepatan tertinggi dibatasi perencanaan mesin dimana gaya sentrifugal maksimum tidak sampai merusak motor. Kopel maksimum ada pada kecepatan terendah. Cara ini biasanya diterapkan pada motor shunt atau motor kompond. Pengaturan dengan mengatur tahanan Ra. Tahanan jangkar bisa diatur dengan menyisipkan tahanan variable secara seri terhadap tahanan jangkar tersebut. Dengan

2.

tahanan yang bisa diatur ini maka kecepatannya bisa dikontrol. Cara ini kurang efisien dan jarang dipakai karena menimbulkan rugi panas yang besar. 3. Pengaturan dengan mengatur tegangan Vt. Pengaturan dengan cara ini lebih dikenal dengan sebutan sistem Ward Leonard dan motor yang dipakai adalah motor berpenguatan bebas. Motor penggerak mulai dipakai untuk menggerakkan generator pada kecepatan yang konstan. Perubahan tahanan medan akan mengubah tegangan Vt yang diberikan pada motor. Dengan cara ini mempunyai batasan yang cukup halus. Satu kerugiannya adalah pembiayaan yang cukup besar akibat penambahan generator dan penggerak mula. 2. 4. DRIVER MOTOR DC Driver motor digunakan sebagai penghubung antara mikrokontroller ke motor DC. Digunakan driver motor karena arus yang keluar dari mirokontroller tidak mampu mencukupi kebutuhan dari motor DC. Rangkaian driver motor dengan komponen utama transistor, mosfet dan Relay. Relay digunakan untuk membalik polaritas motor yang diaktifkan oleh transistor. Sedangkan mosfet digunakan untuk mengatur kecepatan motor DC. Nilai yang diberikan pada input motor digunakan untuk menentukan arah putaran motor. Nilai yang diberikan pada input PWM digunakan untuk mengatur kecepatan putaran motor.

Gambar 2.9. Rangkaian Driver Motor DC 2.5. PENGATUR ARAH PUTARAN MOTOR DC

Dalam aplikasinya seringkali sebuah motor digunakan untuk arah yang searah dengan jarum jam maupun sebaliknya. Untuk mengubah putaran dari sebuah motor dapat dilakukan dengan mengubah arah arus yang mengalir melalui motor tersebut. Secara sederhana seperti yang ada pada gambar 2.10, hal ini dapat dilakukan hanya dengan mengubah polaritas tegangan motor.

Gambar 2.10. Dasar Pengaturan Arah Putar Motor Agar pengubahan polaritas tegangan motor dapat dilakukan dengan mudah, maka hal ini dilakukan dengan menggunakan dua buah saklar seperti pada gambar 2.11, di mana kedua saklar tersebut harus berada pada posisi yang saling berlawanan. Apabila S1 berada di posisi kiri (terhubung dengan positif) maka S2 harus berada di posisi kanan (terhubung dengan negatif) dan demikian pula sebaliknya dengan perubahan yang serempak.

Gambar 2.11. Pengatur Arah dengan Menggunakan Saklar 2.6. KOMUNIKASI SERIAL RS232

Komunikasi data serial sangat berbeda dengan format pemindahan data paralel. Disini, pengiriman bit-bit tidak dilakukan sekaligus melalui saluran pararel, tetapi setiap bit dikirimkan satu persatu melalui saluran tunggal (perhatikan Gambar 2.12). Dalam pengiriman data secara serial harus ada sinkronisasi atau penyesuaian antara pengirim dan penerima agar data yang dikirimkan dapat diterima dengan tepat dan benar oleh penerima. Salah satu mode transmisi dalam komunikasi serial adalah mode asynchronous. Transmisi serial mode ini digunakan apabila pengiriman data dilakukan satu karakter tiap pengiriman. Antara satu karakter dengan yang lainnya tidak ada waktu antara yang tetap. Karakter dapat dikirimkan sekaligus ataupun beberapa karakter

kemudian berhenti untuk waktu yang tidak tentu, kemudian dikirimkan sisanya. Dengan demikian bit-bit data ini dikirimkan dengan periode yang acak sehingga pada sisi penerima data akan diterima kapan saja. Adapun sinkronisasi yang terjadi pada mode transmisi ini adalah dengan memberikan bit-bit penanda awal dari data dan penanda akhir dari data pada sisi pengirim maupun dari sisi penerima. Format data komunikasi serial terdiri dari parameter - parameter yang dipakai untuk menentukan bentuk data serial yang dikomunikasikan, dimana elemen-elemennya terdiri dari : 1. Kecepatan mobilisasi data per bit (baud rate) 2. Jumlah bit data per karakter (data length) 3. Parity yang digunakan 4. Jumlah stop bit dan start bit

Gambar 2.12. Format Pengiriman Data Serial IC serial RS232 atau MAX 232 diperlihatkan pada gambar 2.13

Gambar 2.13. IC Serial MAX 232 RS232 sebagai komunikasi serial mempunyai 9 pin yang memiliki fungsi masing-masing. Pin yang biasa digunakan adalah pin 2 sebagai received data, pin 3 sebagai transmited data, dan pin 5 sebagai ground signal. Karakteristik elektrik dari RS232 adalah sebagai berikut : Space (logic 0) mempunyai level tegangan sebesar +3 s/d +25Volt. Mark (logic 1) mempunyai level tegangan sebesar -3 s/d -25 Volt. Level tegangan antara +3 s/d -3 Volt tidak terdefinisikan. Arus yang melalui rangkaian tidak boleh melebihi dari 500 mA., ini dibutuhkan agar sistem yang dibangun bekerja dengan akurat.

Gambar 2.14. Karakteristik Elektrik RS232

Gambar 2.15. RS232 (Sebagai Komunikasi Serial ) Tabel 2.4. Fungsi masing-masing pin RS232

BAB III PERENCANAAN DAN PEMBUATAN PERANGKAT KERAS DAN LUNAK

Pada bab ini akan dibahas sistem perencanaan dan pembuatan perangkat keras dan perangkat lunak yang dibuat yang meliputi : 1. 2. 3. 3.1. Proses Kerja Sistem Perencanaan dan Pembuatan Perangkat Keras Perencanaan dan Pembuatan Perangkat Lunak

PROSES KERJA SISTEM

Pada Proyek akhir akan dirancang dan dibuat suatu alat (Modul Mikrokontroller) untuk mengontrol pintu garasi secara otomatis menggunakan ATmega8535 dengan Short Message Service (SMS). Dalam hal ini pengiriman karakter hanya menggunakan satu kata yaitu opened atau closed. Jika dikirim karakter opened, maka di dalam mikrokontroller akan diproses, sehingga kata tersebut dapat dikenali sebagai perintah untuk membuka pintu garasi. Sebaliknya jika dikirim karakter closed maka di dalam mikrokontroller akan diproses, sehingga kata tersebut dapat dikenali sebagai perintah untuk menutup pintu garasi. Tetapi jika karakter yang dikirim selain kata opened atau closed maka kata tersebut akan dihapus, karena tidak sesuai dengan perintah yang ditentukan (opened atau closed). Blok diagram sistem yang dibuat dapat dilihat pada gambar 3.1

Gambar 3.1 Blok Diagram Sistem

3.2.

PERENCANAAN DAN PEMBUATAN PERANGKAT KERAS

Perencanaan perangkat keras pada proyek akhir ini menggunakan ATmega8535 sebagai otak sistem. Empat port yang dimiliki oleh chip ini yang digunakan sebagai jalur bi-directional dengan pilihan internal pull-up. Untuk saluran komunikasi Handphone dengan mikrokontroller menggunakan konektor default Siemens yang terhubung ke Handphone, kemudian diujung yang satunya terhubung ke mikrokontroller menggunakan komunikasi serial RS232 yang menggunakan DB9 sebagai konektornya. 3.2.1. Perencanaan dan Pembuatan Pengubah LevelTegangan Pembuatan proyek akhir ini menggunakan IC MAX232 sebagai pengubah level tegangan. IC MAX232 mempunyai 2 receivers yang berfungsi sebagai pengubah level tegangan dari level RS232 ke level Transistor Transistor Logic (TTL) dan mempunyai 2 drivers yang berfungsi mengubah level tegangan dari level TTL ke level RS232. Pasangan driver/receiver ini digunakan untuk TX dan RX, sedangkan pasangan yang lainnya digunakan untuk CTS dan RTS. Dalam pembuatan rangkaian, IC MAX232 memerlukan beberapa kapasitor. Kapasitor yang digunakan sebesar 0.1 µF dengan tegangan 16 Volt pada beberapa kaki pin. IC ini memerlukan input +5 Volt.

Gambar 3.2. Rangkaian Pengubah Level Tegangan Ada 4 kapasitor yang digunakan dalam rangkaian ini yaitu pada pin 1 (+) dengan pin 3 (-), pin 4 (+) dengan pin 5 (-), pin 2 (+) dengan pin 16 (-). Untuk pin 6, karena bertegangan -10 Volt maka terhubung dengan kaki kapasitor (-) sedangkan Ground (+). Koneksi antara IC MAX232 dengan RS232 terhubung melalui pin 14 (driver 1 output) yaitu sebagai Tx (transmitter) dengan DB9 pin2 (received data) dan pin 13 (receiver 1 input) sebagai Rx (receiver) dengan DB9 pin 3 (transmitted data). Sedangkan pin 12 dan pin 13 menuju ke mikrokontroller.

Tabel 3.1 Konfigurasi Pin IC MAX 232

3.2.2. Perencanaan dan Pembuatan Driver Motor DC Secara teoritis, sebuah motor DC dapat digerakkan langsung oleh mikrokontroller. Dalam kenyataannya, arus dan tegangan yang dikeluarkan oleh mikrokontroller terlalu kecil untuk menggerakkan sebuah DC. Gerbang-gerbang Transistor Transistor Logic (TTL) mikrokontroller hanya mampu mengeluarkan arus dalam orde mili-ampere dan tegangan antara 2 sampai 2,5 Volt. Sementara itu untuk menggerakkan motor DC diperlukan arus yang lebih besar (dalam orde ampere) dan tegangan berkisar 5 sampai 12 Volt. Untuk mengatasi masalah tersebut, maka digunakan sebuah piranti tambahan yang memenuhi kebutuhan arus dan tegangan yang cukup besar. Rangkaian driver motor dengan komponen utama transistor, mosfet dan Relay. Relay digunakan untuk membalik polaritas motor yang diaktifkan oleh transistor. Sedangkan mosfet digunakan untuk mengatur kecepatan motor DC.

Gambar 3.3. Rangkaian DriverMotor DC 3.2.3. Perencanaan dan Pembuatan Antar Muka (Interfaces) dengan Mikrokontroller ATmega8535 Dalam proyek akhir ini digunakan ATmega8535 sebagai interface antara Mobilephone server dengan memanfaatkan pin Tx, Rx yang ada pada ATmega8535 sebagai komunikasi serial. 3.2.4. Pembuatan Perangkat ATmega8535 Keras DownLoader Mikrokontroller

Rangkaian ini digunakan untuk men-download-kan program ke mikrokontroller untuk pengontrolan arah putaran motor DC. Pemrograman secara In System Programming adalah programmer tidak perlu melepas IC mikrokontroller pada waktu akan di-download-kan, hal ini berarti pendownloadan program dapat langsung dilakukan pada rangkaian aplikasi. Yaitu dengan memanfaatkan pin-pin pada mikrokontroller ATmega8535.

Gambar 3. 4. Rangkaian Downlader ISP CodeVision AVR 3.3. PERENCANAAN DAN PEMBUATAN PERANGKAT LUNAK

Perangkat Lunak diperlukan sebagai protokol antara Handphone dengan mikrokontroller. Mikrokontroller dalam proses pengenalan SMS dari dan ke Handphone menggunakan protokol PDU (Protocol Data Unit). Artinya mikrokontroller harus mengikuti protokol PDU pada device seluler yang digunakan, dalam hal ini Siemens M35i. Sistem komunikasi antara Handphone dengan mikrokontroller terjadi dua arah yaitu receive dan transmit (deliver dan submit). Pengiriman pesan atau SMS Submit dari Handphone server ke Handphone user menggunakan jalur serial (serial port) dari mikrokontroller. Mikrokontroller menyesuaikan baud rate Handphone, yaitu 19200 bps (bit per second). 3.3.1 Program Utama Main program atau program utama menunjukkan proses mikrokontroller secara global. Alur programnya dapat dilihat pada gambar 3.5. Pertama-tama setelah start program kemudian diinisialisasi program serial mikrokontroller. Kemudian dilakukan proses kontroling, yaitu cek ke HandPhone server apakah

ada SMS baru yang masuk atau tidak, jika ya maka mikrokontroler akan menerjemahkan format PDU dari SMS tersebut untuk mengontrol pintu garasi.

Gambar 3.5. Flowchart Utama 3.3.2. Kontrolling Proses kontroling mikrokontroller merupakan proses dimana mikrokontroller akan scanning ke HandPhone server apakah ada SMS baru yang masuk atau tidak dari operator. Jika terdapat SMS baru maka informasi ini akan diolah oleh mikrokontroller untuk dikenali sebagai penerus perintah untuk mengontrol pintu garasi (opened dan closed). Tetapi disini SMS yang bisa dikontrol hanyalah SMS yang berasal dari nomor operator tertentu dan isi dari perintah kontrol juga telah ditentukan dan sudah diset didalam program mikrokontroller. Jadi apabila ada SMS baru yang bukan berasal dari nomor operator yang diseting sebelumnya maka nomor dan isi SMS akan langsung dihapus. Begitu juga jika isi bukan perintah kontrol yang sudah diset, maka akan diabaikan meskipun berasal dari nomor operator yang sudah diseting sebelumnya . Didalam proses kontrolling mikrokontroller melakukan cek/scanning ke HandPhone server menggunakan perintah AT-Command AT+CMGL=0. Proses kontroling ditandai dengan dimulainya pengiriman perintah AT-Command AT+CMGL=0. Ini merupakan perintah pembacaan pesan (Command Message List) yang baru datang yang belum pernah dibaca. Handphone kemudian mengirimkan jawaban dan dicek oleh mikrokontroller apakah jawabannya OK atau tidak. Apabila jawabannya OK, berarti tidak ada SMS baru yang datang. Jika jawaban yang muncul selain OK maka akan muncul jawaban +CMGL: xx yang berarti ganti baris PDU mode, sehingga mikrokontroller akan menghitung byte sampai no. HandPhone kemudian dicek apa benar no. Handphone user yang mengirim pesan, apabila benar langkah selanjutnya adalah cek isi SMS (dalam format PDU) apakah berisi perintah kontroling. Jika ya maka mikrokontroller akan menggerakkan motor DC sesuai dengan perintah. Namun apabila bukan no HandPhone user dan isi SMS bukan perintah kontroling maka proses akan selesai dan kembali pooling ke main program. Alur kerja dari proses kontroling dapat digambarkan seperti gambar 3.6

Gambar 3.6. Flowchart Kontrolling 3.3.3 Perangkat Lunak Mikrokontroller Untuk Pergerakan Motor DC Perangkat lunak ini digunakan untuk pengontrolan arah putaran motor DC untuk membuka dan menutup pintu garasi. Motor DC yang digunakan adalah motor DC magnet permanen yang terletak pada bagian stator. Pada poros rotor dari motor terdapat kumparan jangkar dengan jumlah jangkar 13. Motor ini memiliki gear box sehingga torsi dari motor meningkat meskipun kecepatan dari rotor motor menurun dibandingkan dengan output dari poros gear box. Untuk meningkatkan kecepatan putar motor dilakukan dengan melilit ulang kumparan jangkar. Pertama kali program akan menginisialisasi Handpone Server ketika ada SMS maka akan di cek input karakter opened/closed dari Handpone Server. Adapun flowchart pengontrolan motor DC terdapat pada gambar 3.7.

Gambar 3.7. Flowchart Mikrokontroller Untuk Pergerakan Motor DC 3.3.3.1. Program Untuk Pergerakan Motor DC 1. Pencarian file dilakukan pada direktori khusus (direktori file include, yang bisa disetel melalui kompiler). #include <mega8535.h> #include <stdio.h> #include <delay.h> 2. Deklarasi Variabel Global bit flag_no,xpsn; #define enter putchar(13) #define buka PORTA.6 #define tutup PORTA.7 #define xbuka PORTA.4 #define xtutup PORTA.5 flash unsigned char
no[13]={"085648565249"},psn1[13]={"6F78D95D2603"},psn2[13]={"63F67B5E2603"}; unsigned char rx_no[13],rx_psn[13],i,hasil;

3.

Membuat fungsi untuk mengirim laporan membuka dari mikrokontroller ke handphone user void report1() { printf("at"); putchar(13); while (getchar()!='O'); if (getchar()=='K') PORTA.2=1; printf("at+cmgs=28");putchar(13); while (getchar()!=62); if (getchar()==32) { printf("07912658050000F001000D91265846585642F900000F"); printf("E8F01C242E97DDA037BCEC2E9301");// "has been opened" putchar(26); PORTA.2=0; }

4.

Membuat fungsi untuk mengirim laporan menutup dari mikrokontroller ke handphone user void report2() { printf("at"); putchar(13); while (getchar()!='O'); if (getchar()=='K') PORTA.2=1; printf("at+cmgs=24");putchar(13); while (getchar()!=62); if (getchar()==32) { printf("07912658050000F001000D91265846585642F900000F"); printf("E8F01C242E97DDA031FB3D2F9301");// "has been closed" putchar(26); PORTA.2=0;} }

3.3.4. Pengaturan Baud Rate Pada Komunikasi Serial Baud rate yang digunakan dalam komunikasi serial ini adalah 19200 bps. Penentuan baud rate sangat bergantung pada crystal yang digunakan, crystal ini adalah sebagai oscillator. Crystal yang digunakan adalah 20,000 MHz. Penghitungannya adalah sebagai berikut :

f OSC 16(UBRR + 1) 20.000MHz 19200 = 16(UBRR + 1) 19200 =

................................................ (3.1) ……………………………… (3.2)

Dengan frekwensi oscillator sebesar 20,000 MHz, UBRR adalah 64 atau dalam format heksa 040H. 3.3.5 CodeVisionAVR CodeVisionAVR merupakan software C- cross compiler, dimana program dapat ditulis menggunakan bahasa-C. Dengan menggunakan pemrograman bahasa-C diharapkan waktu disain (deleloping time) akan menjadi lebih singkat. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Mikrokontroller AVR mendukung sistem download secara ISP (In-System Programming). Cara memulai project baru pada CodeVisionAVR adalah : 1. Jalankan software CodeVisionAVR.

Gambar 3. 8. CodeVision AVR 2. Buat project baru Pilih File New Pilih project lalu tekan tombol OK.

Gambar 3.9. Create Project Baru

3. Kemudian muncul dialog apakah akan menggunakan CodeWizard AVR untuk mempermudah merancang kerangka program. Pilih YES. dengan portB.

Gambar 3.10. Pilihan untuk menggunakan CodeWizardAVR 3. Board yang digunakan menggunakan chip ATmega8535 dengan clock 4MHz, kemudian pilih tab Ports, secara default port merupakan pin input, lakukan seting untuk portD sebagai output, lalu pilih tab LCD, gunakan portB karena pada board LCD terhubung dengan port B.

Gambar 3.11. Menseting Jenis Chip Port I/O

5. Kemudian pilih File Generate, Save and Exit.

Gambar 3.12. Menghasilkan Kode Program

BAB IV PENGUJIAN ALAT DAN ANALISA

Setelah perencanaan dan pembuatan sistem maka langkah selanjutnya yaitu melakukan pengujian alat dan analisa terhadap perangkat keras yang telah dibuat. Pengujian perangkat keras terdiri dari: Pengujian Port mikrokontroller, komunikasi serial RS232, Pengujian Rangkaian Driver Tanpa Beban dan Pengujian Rangkaian Driver Dengan Beban. 4.1 PENGUJIAN PERANGKAT KERAS

Pengujian perangkat keras dilakukan dengan cara pengecekan dan pengukuran jalur rangkaian serta menguji komponen penunjangnya secara keseluruhan. Pengujian ini dilakukan untuk mengetahui peralatan yang ada pada perangkat keras yang dibuat (baik buruknya kondisi alat dan kinerjanya). 4.1.1. Pengujian Port Mikrokontroller Pengujian Port mikrokontroller dimaksudkan untuk mengecek apakah data yang dimasukkan (input) dan dikeluarkan (output) mikrokontroller sesuai dengan deskripsi kerja sistem. Untuk simulasi awal pengecekan I/O menggunakan simulasi nyala Led dengan menggunakan program sederhana menyalakan led di port 1. Berikut ini merupakan listing program menyalakan led di port 1:
--------------------------------------------------------------------------------------while (1) { PORTA=PORTA-1; delay_ms(300); }; } ---------------------------------------------------------------------------------------

Berdasarkan program diatas maka tampilan yang didapatkan pada nyala led yaitu pada saat program pertama kali dijalankan maka led akan menyala yaitu led yang dihubungkan dengan P1.0 sampai dengan P1.3 kemudian setelah selang waktu yang telah ditentukan pada delay maka nyala led akan berjalan dari awal hingga akhir kemudian diulang lagi mulai awal hingga akhir begitu seterusnya. 4.1.2. Pengujian Komunikasi Serial RS232 Komunikasi asinkron driver RS232 merupakan piranti yang sangat vital karena apabila driver ini tidak di uji kinerjanya mengakibatkan kesalahan pengiriman atau penerimaan data. Satu hal yang sangat penting sebelum melakukan pengujian pada IC ini adalah mematuhi ketentuan-ketentuan yang sesuai dengan karakteristik pada data sheet RS232. Peralatan bantu utama untuk

melakukan pengujian diantaranya PC dengan fasilitas hyper terminal, sistem minimum mikrokontroller, dan kabel serial RS232. Hasil pengamatan program komunikasi serial RS232 pada hyper terminal dengan menggunakan baudrate sebesar 19200 dapat dilihat pada gambar 4.1. Sedangkan hasil pengujiannya dapat dilihat pada tabel 4.1.

Gambar 4.1. Pengujian Komunikasi Serial pada Hyper Terminal Tabel 4.1 Hasil Pengujian Komunikasi Serial Input dari Keyboard a b c dst Output RS232 a b c dst

Dari hasil pengamatan di ketahui bahwa data karakter yang dikirim adalah sama dengan huruf yang kita masukkan. Dengan demikian konverter RS232 telah dapat mengirim data atau menerima data dengan baik pada kecepatan data 19200 bps, dan pada percobaan diatas tidak terdapat karakter yang rusak atau error. 4.1.3 Pengujian Rangkaian Driver Tanpa Beban Pengujian rangkaian driver tanpa beban dilakukan untuk mengetahui apakah rangkaian driver yang dibuat sudah dapat bekerja dengan baik dan sesuai dengan yang diharapkan atau belum. Peralatan yang digunakan : Rangkaian Driver tanpa dihubungkan dengan beban. Power Supply Multitester.

Gambar 4.2. Pengujian Rangkaian Driver tanpa Beban 1. 2. Langkah – langkah pengujian rangkaian driver adalah sebagai berikut : Memastikan bahwa semua jalur telah tersambung dengan benar dan semua komponennya telah terpasang dengan sempurna. Menyiapkan power supply dengan output tegangan ± 5 Volt sebagai pengganti Output dari Mikrokontroller AVR ATmega8535.

Ketika power supply yang dihubungkan dengan rangkaian driver memiliki keluaran 0 Volt maka LED yang merupakan indikator dari beban masih dalam keadaan mati dan ketika power supply dinaikkan sampai mencapai ± 5 Volt maka LED akan menyala, yang mengindikasikan bahwa beban bekerja (ON). Tabel 4.2 Hasil Pengujian Driver Tanpa Beban Output No 1. 2. Input FF H (opened) 00 H (closed) LED 1 ON OFF 2 OFF ON Relay 1 2 ON OFF OFF ON

Berdasarkan Tabel diatas maka dapat di analisa bahwa ketika diberi input FFH atau karakter opened maka LED 1 akan menyala sehingga mengkondisikan relay 1 bergerak ke kanan (pintu terbuka). Dan sebaliknya jika diberi input 00H atau karakter closed maka LED 2 akan menyala sehingga mengkondisikan relay 2 bergerak ke kiri (pintu tertutup). 4.1.4 Pengujian Rangkaian Driver Dengan Beban Pengujian rangkaian driver dengan beban untuk mengetahui apakah rangkaian driver yang telah terhubung dengan beban dapat bekerja dengan baik atau belum.Peralatan yang digunakan : Rangkaian driver yang telah dihubungkan dengan beban dan PLN 220V Power Supply Multitster

Gambar 4.3. Pengujian Rangkaian Driver Dengan Beban. Setelah semua langkah – langkah pada pengujian driver tanpa beban selesai dilaksanakan, selanjutnya dilakukan langkah – langkah sebagai berikut : 1. Memastikan bahwa semua jalur telah tersambung dengan benar dan semua komponennya telah terpasang dengan sempurna. 2. Menyiapkan power supply dengan output tegangan ± 5 Volt sebagai pengganti output dari Mikrokontroller AVR ATmega8535. 3. Menghubungkan beban ( motor DC ) dan tegangan output dari PLN 220 V dengan rangkaian driver. Tabel 4.3 Hasil Pengujian Driver Dengan Beban (Motor DC) No 1. 2. Input FF H (opened) 00 H (closed) Output (Arah Putar Motor DC) KANAN KIRI

Berdasarkan Tabel diatas maka dapat di analisa bahwa ketika diberi input FFH atau karakter opened maka arah putar motor DC akan bergerak ke kanan (pintu terbuka). Dan sebaliknya jika diberi input 00H atau karakter closed maka arah putar motor DC akan bergerak ke kiri (pintu tertutup). Apabila semua langkah sudah terpenuhi maka rangkaian driver sudah siap untuk dihubungkan dengan ATmega8535. 4.1.5 Pengujian Sistem (Kontrol Motor DC Menggunakan SMS) Pengujian sistem dilakukan dengan proses sebagai berikut : 1) Pesan yang dikirim dari HP user ke HP server adalah dalam bentuk huruf biasa (yaitu:opened,closed,has been opened,dan has been closed) dan diterima oleh mikrokontroller sudah dikonversi dalam bentuk PDU (Protocol Data Unit). Pesan dalam format PDU (Protocol Data Unit) dikirim oleh mikrokontroller ke HP server kemudian diterima oleh HP user sudah dalam bentuk huruf biasa karena secara otomatis dikonversi.

2) Di dalam mikrokontroller sendiri terdapat program untuk menerima data perintah kontrol. Kemudian data tersebut diubah ke bentuk desimal untuk dibandingkan dengan data referensi yang telah ditentukan didalam mikrokontroller. Dari hasil perbandingan tersebut,maka mikrokontroller akan mengaktifkan beban secara otomatis hingga perintah kontrol diubah kembali. 3) Mengirim SMS (opened) ke HP server, kemudian karakter diteruskan ke mikrokontroller, apabila beban (motor DC) dapat diaktifkan, maka mikrokontroller akan memberikan aksi yang berupa instruksi kepada HP server untuk mengirim laporan berupa SMS (has been opened) ke HP user. 4) Begitu juga untuk mengirim SMS (closed) ke HP server, kemudian karakter diteruskan ke mikrokontroller, apabila beban (motor DC) dapat diaktifkan, maka mikrokontroller akan memberikan aksi yang berupa instruksi kepada HP server untuk mengirim laporan berupa SMS (has been closed) ke HP user.

Gambar 4.4 Blok Diagram Pengujian Sistem Tabel 4.4 Hasil Pengujian Sistem Keseluruhan No 1. 2. User opened closed Server opened closed Report has been opened has been closed kondisi pintu Buka Tutup MotorDC Putar kanan Putar Kiri

Berdasarkan Tabel diatas maka dapat di analisa bahwa ketika Handphone User mengirimkan SMS dengan karakter opened ke Handphone Server yang kemudian karakter tersebut akan diproses oleh mikrokontroller untuk membuka pintu dengan menggerakkan arah putar motor DC ke kanan. Setelah pintu terbuka maka mikrokontroller akan mengirimkan laporan (report) berupa karakter has been opened ke Handphone User. Dan sebaliknya ketika Handphone User mengirimkan SMS dengan karakter closed ke Handphone Server yang kemudian karakter tersebut akan diproses oleh mikrokontroller untuk menutup pintu dengan menggerakkan arah putar motor DC ke kiri. Setelah pintu tertutup maka mikrokontroller akan mengirimkan laporan (report) berupa karakter has been closed ke Handphone User.

<Halaman ini sengaja dikosongkan>

BAB V PENUTUP

5.1 KESIMPULAN Setelah melakukan proses pengujian dan analisa terhadap sistem yang telah dibuat dapat diambil kesimpulan bahwa: 1. Pada sistem pengontrolan pintu garasi secara otomatis diperlukan sebuah Handphone user, sebuah Handphone server (Siemens M35i), Modul Mikrokontroller (RS232, ATmega8535 dan Driver Motor DC) dan yang dikontrol yaitu arah pergerakan motor DC untuk membuka/menutup pintu garasi. Teknik pemrograman untuk mikrokontroller ATmega8535 dapat dilakukan dengan ISP (In System Programming), sehingga memudahkan programmer. Perangkat lunak downloader yang digunakan CodeVisionAVR. Pada komunikasi serial, penginisialisasian baudrate dilakukan pada mikrokontroller AVR ATmega8535 (mikrokontroller menyesuaikan baud rate Handphone) dan kabel serial RS232. Kedua inisialisasi ini harus sama. Pada sistem ini digunakan baudrate sebesar 19200 bps. Pengujian Perangkat Keras terdiri atas : a. Pengujian Port Mikrokontroller Pengecekan I/O menggunakan simulasi nyala Led. b. Pengujian Komunikasi Serial RS232 Komunikasi serial RS232 dikatakan berfungsi dengan baik bila Output RS232 sama dengan Input dari Keybord. Pengujian Rangkaian Driver Tanpa Beban Ketika diberi input FFH (opened) maka LED1 menyala dan relay1 bergerak ke kanan (pintu terbuka). Dan sebaliknya jika diberi input 00H (closed) maka LED2 akan menyala dan relay2 bergerak ke kiri (pintu tertutup). Pengujian Rangkaian Driver Dengan Beban Ketika diberi input FFH (opened), motor DC bergerak ke kanan (pintu terbuka). Dan jika diberi input 00H (closed), motor DC akan bergerak ke kiri (pintu tertutup).

2.

3.

4.

c.

d.

e.

Pengujian Sistem (Kontrol Motor DC Menggunakan SMS) Hp User mengirim SMS opened ke Hp Server. Kemudian mikrokontroller akan memproses untuk menggerakkan motor DC ke kanan dan mengirimkan laporan (report) has been opened. Dan jika Hp User mengirim SMS closed ke Hp Server. Kemudian mikrokontrollerakan memproses untuk menggerakkan motor DC ke kiri dan mengirimkan laporan (report) has been closed. SARAN

5.2

Pada Sistem pengontrolan pintu garasi memiliki banyak kekurangan, maka perlu pengembangan lebih lanjut pada waktu yang akan datang. Adapun saran-saran untuk proyek akhir ini adalah: 1. 2. Menggunakan seluruh jaringan yang ada, baik GSM maupun CDMA. Menggunakan pintu garasi asli / sesungguhnya sehingga kedepan dapat langsung diaplikasikan ke masyarakat.

DAFTAR PUSTAKA

1. 2. 2. 3. 4.

A. E. Fitzgerald, Charles Kingsley Jr, Stephen D. Umans, Mesin – Mesin Listrik, Edisi Keempat, 1997 Drs.Sumanto, MA, Mesin Arus Searah, Penerbit Andi Offset Yogyakarta http://www.atmel.com http://www.lookrs232.com/ http://www.andipublisher.com

<Halaman ini sengaja dikosongkan>

LAMPIRAN

Listing Program
#include <mega8535.h> #include <stdio.h> #include <delay.h> // Declare your global variables here bit flag_no,xpsn; int no_hp; #define enter putchar(13) #define buka PORTA.6 #define tutup PORTA.7 #define xbuka PORTA.4 #define xtutup PORTA.5 flash unsigned char no1[13]={"085648565249"},no2[14]={"08123168426"},no3[15]={"081332985 105"},psn1[13]={"6F78D95D2603"},psn2[13]={"63F67B5E2603"}; unsigned char rx_no[13],rx_psn[13],i,hasil; void set_noecho() { printf("ate0"); enter; while(getchar()!='O'){printf("ate0"); enter;}; delay_ms(100); } void ready_gsm() { printf("at");enter; while(getchar()!='O'){printf("at");enter;}; delay_ms(500); } void delete() { PORTA.1=1; printf("at+cmgd=1");putchar(13); // while(getchar()!='O'){printf("at+cmgd=1");enter;}; delay_ms(300); PORTA.1=0; } void scan_number() //manual scan number is easier to compare with reference Number........! { rx_no[0]='0';

rx_no[2]=getchar();rx_no[1]=getchar();rx_no[4]=getchar();rx_no[3]=g etchar(); rx_no[6]=getchar();rx_no[5]=getchar();rx_no[8]=getchar();rx_no[7]=g etchar(); rx_no[10]=getchar();rx_no[9]=getchar();getchar();rx_no[11]=getchar(); } void cek_number1() { unsigned char hasil; for(i=0;i<12;i++) //cek no 1 { hasil=rx_no[i]-no1[i]; if(i==11 && hasil==0) { flag_no=1; no_hp=1; return flag_no; } if(hasil!=0) { break; } } } void cek_number2() { unsigned char hasil; for(i=0;i<12;i++) //cek no 2 { hasil=rx_no[i]-no2[i]; if(i==11 && hasil==0) { flag_no=1; no_hp=1; return flag_no; } if(hasil!=0) { break; } } } void cek_number3() { unsigned char hasil; for(i=0;i<12;i++) //cek no 3 { hasil=rx_no[i]-no2[i]; if(i==11 && hasil==0)

{ flag_no=1; no_hp=1; return flag_no; } if(hasil!=0) { break; } } } void report1() { printf("at"); putchar(13); while (getchar()!='O'); if (getchar()=='K') PORTA.2=1; printf("at+cmgs=28");putchar(13); while (getchar()!=62); if (getchar()==32) { if(no_hp==1){ printf("07912658050000F001000D91265846585642F900"); } if(no_hp==2) { printf(""); } if(no_hp==3){ printf("06912618010000240D91261833925801F500") printf("E8F01C242E97DDA037BCEC2E9301");// "has been opened" putchar(26); PORTA.2=0; } } void report2() { printf("at"); putchar(13); while (getchar()!='O'); if (getchar()=='K') PORTA.2=1; printf("at+cmgs=24");putchar(13); while (getchar()!=62); if (getchar()==32) { if(no_hp==1){ printf("07912658050000F001000D91265846585642F900"); if(no_hp==2) { printf("");

} if(no_hp==3){ printf("06912618010000240D91261833925801F500") printf("E8F01C242E97DDA031FB3D2F9301");// "has been closed" putchar(26); PORTA.2=0; } } void compare_sms() { if(flag_no==1) //command bellow will be accesed if SMS from number ................ { xpsn=0; for(i=0;i<=11;i++) //bukA { hasil=rx_psn[i]-psn1[i]; if(i==11&& hasil==0) { xpsn=1;tutup=1; buka=0;report1(); } if(hasil!=0) break; } hasil=0; if(!xpsn) { for(i=0;i<=11;i++) //tutp { hasil=rx_psn[i]-psn2[i]; if(i==11&& hasil==0) { xpsn=1;buka=1;tutup=0;report2(); } if(hasil!=0) break; } hasil=0; } } } void cek_new_SMS() { unsigned char dat; PORTA.0=1; ready_gsm();//.....................................................be sure that GSM is ready printf("at+cmgl=0");enter;dat=getchar();//............AT+CMGL=0 to read UNREAD SMS (New SMS)

//.....................................+ as header New SMS and E indicate ERROR / No New SMS while(dat!='+'&& dat!='O'){printf("at+cmgl=0");enter;dat=getchar();}; if(dat=='+') //............................... !=R (ERROR) indicate recieve New SMS { for(i=0;i<=25;i++) getchar();//43 scan_number(); for(i=0;i<=19;i++) getchar(); for(i=0;i<12;i++) rx_psn[i]=getchar(); //...............................masukkan psn cek_number1();//....................................................Cek no USER cek_number2(); cek_number3(); cek=cek_number1(); if cek==1 delay_ms(1000); compare_sms(); //....................................compare SMS with reference data delay_ms(1000); for(i=0;i<10;i++){ rx_no[i]=0;}//................................CLEAR NO in SRAM uC for(i=0;i<=5;i++){ rx_psn[i]=0;}//..............................CLEAR PSN in SRAM uC } else { } delete(); //..........................................DELETE SMS in HP delay_ms(2000); PORTA.0=0; } void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func0=Out Func1=Out Func2=Out Func3=Out Func4=Out Func5=Out Func6=Out Func7=Out // State0=0 State1=0 State2=0 State3=0 State4=0 State5=0 State6=0 State7=0 PORTA=0xC0; DDRA=0xFF;

// Port B initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; OCR1AH=0x00; OCR1AL=0x00;

OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 19200 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x23; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off // Analog Comparator Output: Off ACSR=0x80; SFIOR=0x00; ready_gsm(); set_noecho();//.............................................Turn off GSM ECHO */ //delay_ms(1000); while (1) { // Place your code here

cek_new_SMS(); delay_ms(1000); }; }

LAMPIRAN DATA SHEET MIKROKONTROLLER AVR ATmega8535

BIODATA PENULIS

Nama
TTL Kelas Alamat

: Ma’rifatul Iman

: Sidoarjo, 25 Oktober 1984 : 3 Telkom B : Jl. Brigjend Katamso II No 29 RT 20/05 Pengkol Kedungrejo,Waru Sidoarjo 61256 No : 031 –8548027 / 081332985105 Pendidikan : TK Muslimat Kedungrejo MINU Kedungrejo SLTP YPM I Sepanjang SMU WH - 2 Sepanjang PENS ITS Surabaya E-mail : rifa_afi@yahoo.com

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->