Anda di halaman 1dari 75

PROYEK AKHIR

RANCANG BANGUN SISTEM OTOMATISASI PINTU GARASI


BERBASIS MIKROKONTROLLER DENGAN SMS
-- PENGONTROLAN PINTU OTOMATIS
MENGGUNAKAN ATmega8535 --

MARIFATUL 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:

MARIFATUL 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 1. Amang Sudarsono, ST


NIP. 131 843 904 NIP. 132 300 371

2. I Gede Puja Astawa, ST, MT 2. Akuwan Saleh, SST


NIP. 132 102 837 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, its 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

Assalamualaikum 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.

Wassalamualaikum 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. Ayah & Ibu yang saya sayangi dan hormati, Kakakku (Alm. M. Nurul
Chakim), Neng Eli dan Nafi terima kasih telah memberikan kasih
sayang dan doa yang tak henti henti di panjatkan.
2. Keluarga Besar Alm. Sulchan dan Almh. Malichah Serta Keluarga
Besar Bapak Subandi B. dan Rani Matur sembah Nuwun atas
semangat dan doanya .
3. Bapak Dr. Ir. Titon Dutono, M.Eng, selaku Direktur Politeknik
Elektronika Negeri Surabaya.
4. Bapak Drs. Miftahul Huda, MT selaku ketua Jurusan Telekomunikasi
Politeknik Elektronika Negeri Surabaya.
5. Bapak Amang Sudarsono, ST dan Bapak Akuwan Saleh, SST selaku
dosen pembimbing.
6. Ibu Ir. Prima Kristalina, MT, Bapak I Gede Puja Astawa, ST, MT, dan
Ibu Haniah Mahmudah, ST selaku dosen penguji.
7. 3 TB Teman satu kelas 30 anak ini TOP BGT deh I Luv U &
Thanks For all serta smua Ce_21.

Dan mohon maaf 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 ................................................................................... i


Lembar Pengesahan ........................................................................ ii
Abstrak ............................................................................................ iii
Abstract ........................................................................................... iv
Kata Pengantar ................................................................................ v
Ucapan Terima kasih ....................................................................... vi
Daftar Isi ......................................................................................... vii
Daftar Gambar ................................................................................. x
Daftar Tabel .................................................................................... xi

BAB I PENDAHULUAN .............................................................. 1


1.1.LATAR BELAKANG .................................................... 1
1.2 TUJUAN ........................................................................ 1
1.3 PERMASALAHAN ....................................................... 1
1.4 BATASAN MASALAH ................................................ 2
1.5 METODOLOGI ............................................................. 2
1.6 SISTEMATIKA PEMBAHASAN ................................ 2

BAB II TEORI PENUNJANG ..................................................... 5


2.1 MIKROKONTROLLER AVR ATmega8535 ............... 5
2.1.1 Arsitektur AVR ATmega8535 ............................. 5
2.1.2 Pena Pena ATmega8535 ................................... 7
2.1.3 Deskripsi Mikrokontroller ATmega8535 .............. 9
2.1.4 Port Sebagai Input/Output Digital ........................ 10
2.1.5 Organisasi Memori AVR ATmega8535 ............... 11
2.1.5.1 Program Memori ...................................... 11
2.1.5.2 Data Memori ............................................. 12
2.1.6 Instruksi Aritmatika ATmega8535 ....................... 13
2.2. BAHASA C .................................................................. 14
2.2.1 Proses Kompilasi dan Linking Program C ........... 15
2.2.2 Struktur Penulisan Program C .............................. 16
2.2.3 Dasar Dasar Pemrograman C ............................ 16
2.2.3.1 Tipe Data Dasar ....................................... 16
2.2.3.2 Operator ................................................... 17
2.2.3.2.1 Operator Aritmatika .................. 17
2.2.3.3 Menampilkan Data Ke Layar ................... 17
2.2.3.3.1 Fungsi printf() ........................... 17
2.2.3.3.2 Fungsi putchar() ........................ 18
2.2.3.4 Memasukkan Data dari Keyboard ........... 18
2.2.3.4.1 Fungsi scanf() ............................ 18
2.2.3.4.2 Fungsi getchar() ........................ 18
2.3 MOTOR DC ................................................................. 18
2.3.1..................................................................... Prinsip
Kerja Motor DC.........................................................18
2.3.2..................................................................... Konstruksi
Motor DC...................................................................19
2.3.3..................................................................... enis Motor
DC..............................................................................20
2.3.4.....................................................................Karakteristi
k Motor DC................................................................21
2.3.5.....................................................................engaturan
Motor DC...................................................................21
2.4 DRIVER MOTOR DC.......................................................22
2.5 PENGATUR ARAH PUTARAN MOTOR DC.................23
2.6 KOMUNIKASI SERIAL RS232........................................24
BAB III PERENCANAAN DAN PEMBUATAN PERANGKAT
KERAS DAN LUNAK ............27
3.1ROSES KERJA SISTEM....................................................27
3.2PERENCANAAN DAN PEMBUATAN PERANGKAT
KERAS................................................................................28
3.2.1.....................................................................er
encanaan dan Pembuatan Pengubah Level Tegangan
...................................................................................28
3.2.2.....................................................................erencanaan
dan Pembuatan Driver Motor DC..............................29
3.2.3.....................................................................Pe
rencanaan dan Pembuatan Antar Muka (interfaces)
dengan Mikrokontroller ATmega8535......................30
3.2.4.....................................................................m
buatan Perangkat Keras Downloader Mikrokontroller
ATmega8535..............................................................30
3.3PERENCANAAN DAN PEMBUATAN PERANGKAT
LUNAK...............................................................................31
3.3.1..................................................................... Program
Utama.........................................................................32
3.3.2..................................................................... Kontrolling
....................................................................................32
3.3.3.....................................................................er
angkat Lunak Mikrokontroller Untuk Pergerakan
Motor DC...................................................................34
3.3.2.1 Program Untuk Pergerakan Motor DC..........35
3.3.3.....................................................................engaturan
BaudRate Pada Komunikasi Serial............................36
3.3.4...........................................................................CodeVision
AVR..................................................................................37

BAB IV PENGUJIAN ALAT DAN ANALISA................................39


4.1PENGUJIAN PERANGKAT KERAS................................39
4.1.1......................................................................Pengujian
Port Mikrokontroller...................................................39
4.1.2......................................................................engujian
Komunikasi Serial.......................................................40
4.1.3......................................................................engujian
Rangkaian Driver Tanpa Beban..................................41
4.1.4............................................................Pengujian Rangkaian
Driver dengan Beban......................................42
4.1.5 Pengujian Sistem
(Kontrol Motor Menggunakan SMS).............................43

BAB V PENUTUP...............................................................................47
5.1..............................................................................KESIMPU
LAN.....................................................................................47
5.2SARAN................................................................................48
DAFTAR PUSTAKA...............................................................49
LAMPIRAN LISTING PROGRAM
LAMPIRAN DATA SHEET ATmega 8535

BIODATA PENULIS
DAFTAR GAMBAR

Gambar 2.1 Blok Diagram Mikrokontroller ATmega8535 ........... 7


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

Tabel 2.1 Konfigurasi Pin Port.............................................................11


Tabel 2.2 Instruksi Aritmatika..............................................................14
Tabel 2.3 Ukuran Memori Untuk Tipe Data........................................17
Tabel 2.4 Fungsi Masing Masing Pin RS232....................................25
Tabel 3.1 Konfigurasi Pin IC MAX232...............................................29
Tabel 4.1 Hasil Pengujian Komunikasi Serial......................................40
Tabel 4.2 Hasil Pengujian Driver Tanpa Beban...................................42
Tabel 4.3 Hasil Pengujian Diver Dengan Beban
(Motor DC ).........................................................................43
Tabel 4.4 Hasil Pengujian Sistem Keseluruhan...................................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 langkah-
langkah penyelesaian sebagai berikut:

D 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.
D Perencanaan dan Pembuatan
Merencanakan dan membuat peralatan dan sistem yang dibutuhkan
secara perangkat keras.
D 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, Power-
down,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 eskripsi 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

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.

2.2 BAHASA C
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()
{ Fungsi Utama
statemen statemen;
}

Fungsi_Fungsi_Lain()
{ Fungsi fungsi lain yang
statemen statemen 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 Kawasan Keterangan
char 8 - 128 s/d 127 Karakter
int 32 - 2147483648 s/d 2147483647 Bilangan integer
float 32 1.7E-38 s/d 3.4E+38 Bil. real presisi-tunggal
double 64 2.2E-308 s/d 1.7E+308 Bil. Rel presisi-ganda

2.2.3.2 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) (b)
Gambar 2.8. Motor DC
a. Konstruksi Motor DC
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.
b) 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

2.3.4. Karakteristik Motor DC


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

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

2. Karakteristik Torsi
............................................... (2.2)
= K.Ia.
Dimana : = Torsi
K = Konstanta
Ia = Arus Armature (Ampere)
2
= Fluks (Wb/m )

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.

2. Pengaturan dengan mengatur tahanan Ra.


Tahanan jangkar bisa diatur dengan menyisipkan tahanan variable
secara seri terhadap tahanan jangkar tersebut. Dengan
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. Proses Kerja Sistem
2. Perencanaan dan Pembuatan Perangkat Keras
3. Perencanaan dan Pembuatan Perangkat Lunak

3.1. 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 Keras


DownLoader Mikrokontroller ATmega8535

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 pendownload-
an 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("07912658050000F001000D91265846585642F900000
F");
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
................................................ (3.1)
19200 = 16(UBRR +
1)
19200 = 20.000MHz
(3.2)
16(UBRR +
1)

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.

Gam
bar 3.
8.
Code
Visio
n
AVR

2. Buat project baru Pilih File-7New Pilih project lalu tekan tombol
OK.
Creat
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-7Generate, 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 Output RS232
a a
b b
c c
dst 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

Langkah langkah pengujian rangkaian driver adalah 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.

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 Input LED Relay
1 2 1 2
1. FF H (opened) ON OFF ON OFF
2. 00 H (closed) OFF ON 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 Input Output (Arah Putar Motor DC)
1. FF H (opened) KANAN
2. 00 H (closed) 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 User Server Report kondisi MotorDC
pintu
1. opened opened has been opened Buka Putar kanan
2. closed closed has been closed Tutup 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.1ESIMPULAN
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.

2. Teknik pemrograman untuk mikrokontroller ATmega8535 dapat dilakukan


dengan ISP (In System Programming), sehingga memudahkan programmer.
Perangkat lunak downloader yang digunakan CodeVisionAVR.

3. 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.

4. 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.

c. 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).

d. 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).
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.

5.2 SARAN

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. Menggunakan seluruh jaringan yang ada, baik GSM maupun CDMA.


2. Menggunakan pintu garasi asli / sesungguhnya sehingga kedepan dapat
langsung diaplikasikan ke masyarakat.
DAFTAR PUSTAKA

1. A. E. Fitzgerald, Charles Kingsley Jr, Stephen D. Umans, Mesin


Mesin Listrik, Edisi Keempat, 1997
2. Drs.Sumanto, MA, Mesin Arus Searah, Penerbit Andi Offset
Yogyakarta
2. http://www.atmel.com
3. http://www.lookrs232.com/
4. 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_
etchar( no[7]=g
);

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_h
p=1;
retur
n
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_h
p=1;
retur
n
flag
_no;
} 12;i++)
if(h
=0) //cek no 3
{ {
hasil=rx_no[i]-
br no2[i]; if(i==11
e && hasil==0)
k;
}
}
}
void
cek_nu
mber3()
{

u
n
s
i
g
n
e
d

c
h
a
r

h
a
s
i
l
;

f
o
r
(
i
=
0
;
i
<
{ 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(h
} asil!
has =0)
il= brea
0; k;
if(!xpsn)
{ for(i=0;i<=11;i++) //tutp
{

hasi
l=rx
_ps
n[i]-
psn
2[i];
if(i=
=11
&&
hasi
l==
0)
{

xpsn=1;buka=1;tutup=0;report2();
}
if(hasil!=0) break;
} ............................................be sure that GSM is
hasil=rea printf("at+cmgl=0");enter;dat=getchar();//............AT+C
0; dy MGL=0 to read
}
} UNREAD SMS (New SMS)

}
void
cek_new_S
MS()
{

unsigned
char dat;
P
O
R
T
A
.
0
=
1
;

r
e
a
d
y
_
g
s
m
(
)
;
/
/
.
.
.
.
.
.
.
.
.
//.....................................+ 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 : Marifatul Iman


TTL : Sidoarjo, 25 Oktober 1984
Kelas : 3 Telkom B
Alamat : 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

Anda mungkin juga menyukai