Anda di halaman 1dari 70
PROYEK AKHIR RANCANG BANGUN SISTEM OT OMATISASI PINTU GARASI BERBASIS MIKROKONT ROLLER DENGAN SMS --

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

Tim Penguji:

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

Disetujui oleh

Dosen Pembimbing:

1. Amang Sudarsono, ST NIP. 132 300 371

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

3. Haniah Mahmudah, ST NIP. 132 297 803

2. Akuwan Saleh, SST NIP. 131 831 467

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

KATA PENGANTAR Assalamu’alaikum Wr. Wb, Puji Syukur Alhamdulillah kehadlirat Allah SWT yang senantiasa selalu memberikan

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

2. Keluarga Besar Alm. Sulchan dan Almh. Malichah Serta Keluarga Besar Bapak Subandi B. dan Rani Matur sembah Nuwun atas semangat dan do’anya .

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 & Thank’s For all serta smua Ce_2 1 .

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

 

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

Prinsip Kerja Motor DC

18

2.3.2 Konstruksi Motor DC

19

2.3.3 Jenis Motor DC

20

2.3.4 Karakteristik Motor DC

21

2.3.5 Pengaturan Motor DC

21

2.4 DRIVER MOTOR DC

22

2.5 PENGATUR ARAH PUTARAN MOTOR DC

23

2.6 KOMUNIKASI SERIAL RS232

24

PERANGKAT

BAB III PERENCANAAN DAN PEMBUATAN 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

39

4.1

PENGUJIAN PERANGKAT KERAS

39

4.1.1 Pengujian Port Mikrokontroller

39

4.1.2 Pengujian Komunikasi Serial

40

4.1.3 Pengujian 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 KESIMPULAN

47

5.2 SARAN

 

48

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:

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, 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

o

2.7 - 5.5V for ATmega8535L

4.5 - 5.5V for ATmega8535

• Speed Grades

- 5.5V for ATmega8535L 4.5 - 5.5V for ATmega8535 • Speed Grades o o 0 -

o

o

0 - 8 MHz for ATmega8535L

0 - 16 MHz for ATmega8535

Gambar 2.1 Blok Diagram Mikrokontroller ATmega8535 2.1.2 Pena - Pena ATmega8535 Konfigurasi Pin Mikrokontroller

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

Gambar 2.2. Konfigurasi Pin Mikrokontroller ATmega8535

Gambar 2.2. Konfigurasi Pin Mikrokontroller ATmega8535 Gambar 2.3. Arsitektur CPU dari AVR

Gambar 2.3. Arsitektur CPU dari AVR

2.1.3

Deskripsi Mikrokontroller ATmega8535

VCC (power supply) (power supply)

GND (ground) (ground)

Port A (PA7 PA0) Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga berfungsi sebagai suatu 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, 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, 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 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) (Reset input)

XTAL1 (Input Oscillator) (Input Oscillator)

XTAL2 (Output Oscillator) (Output Oscillator)

AVCC adalah pin penyedia tegangan untuk port A dan A/D Konverter Konverter

AREF adalah pin referensi analog untuk A/D konverter.XTAL1 (Input Oscillator) XTAL2 (Output Oscillator) AVCC adalah pin penyedia tegangan untuk port A dan A/D

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

Tabel 2.1. Konfigurasi Pin Port Bit 2 – PUD : Pull-up Disable Bila bit diset bernilai

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

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

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

Tabel 2.2 Instruksi Aritmatika 2.2 BAHASA C Akar bahasa C adalah bahasa BCPL yang dikembangkan oleh

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.

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.

secara langsung) ditunjukkan pada gambar 2.6. di bawah ini. Gambar 2.6. Proses Kompilasi- Linking dari program

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

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 2.2E-308 s/d 1.7E+308

Bil. real presisi-tunggal Bil. Rel presisi-ganda

double

64

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

suatu operasi tertentu. 2.2.3.2.1. Operator Aritmatika Operator untuk operasi aritmatika yang tergolong sebagai

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :

*

Perkalian

/

Pembagian

% Sisa Pembagian + Penjumlahan - pengurangan Adapun operator yang tergolong sebagai operator unary -

%

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

memasukkan berbagai jenis data.

2.2.3.4.2 Fungsi getchar()

dapat

digunakan

untuk

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.

akan bekerja suatu gaya yang menggerakkan kawat tersebut. Gambar 2.7. Prinsip Kerja Motor DC Apabila sebuah

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.

kutub medan, sumbu ini dinamakan sumbu medan atau sumbu langsung. (a) (b) Gambar 2.8. Motor DC

(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 Panjangkeceatan tanpa beban. Motor ini dibagi menjadi dua jenis yaitu : Motor Kompond Pendek 2.3.4. Karakteristik

Motor Kompond Pendekkeceatan tanpa beban. Motor ini dibagi menjadi dua jenis yaitu : Motor Kompond Panjang 2.3.4. Karakteristik

Untuk menentukan karakteristik motor DC, hal yang harus diingat adalah dua persamaan dasar yaitu :

1. Karakteristik Kecepatan Putaran

n

Dimana :

=

V

s

Ia Ra

.

C .φ

n = Kecepatan Putaran V s = Tegangan Shunt ( Volt)

I a = Arus Armature

(Ampere)

R a = Resistansi Armature ( Ohm)

C = Kopel

φ = Fluks (Wb/m 2 )

2. Karakteristik Torsi

τ = K.Ia.φ

Dimana : τ

= Torsi K = Konstanta I a = Arus Armature

φ = Fluks (Wb/m 2 )

(Ampere)

2.3.5. Pengaturan Motor Dc

(2.1)

(2.2)

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.

input PWM digunakan untuk mengatur kecepatan putaran motor. Gambar 2.9. Rangkaian Driver Motor DC 2.5. PENGATUR

Gambar 2.9. Rangkaian Driver 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.

dilakukan hanya dengan mengubah polaritas tegangan motor. Gambar 2.10. Dasar Pengaturan Arah Putar Motor Agar

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.

demikian pula sebaliknya dengan perubahan yang serempak. Gambar 2.11. Pengatur Arah dengan Menggunakan Saklar 2.6.

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

Parity yang digunakan 4. Jumlah stop bit dan start bit Gambar 2.12. Format Pengiriman Data Serial

Gambar 2.12. Format Pengiriman Data Serial

IC serial RS232 atau MAX 232 diperlihatkan pada gambar 2.13

IC serial RS232 atau MAX 232 diperlihatkan pada gambar 2.13 Gambar 2.13. IC Serial MAX 232

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

Gambar 2.14. Karakteristik Elektrik RS232

Gambar 2.14. Karakteristik Elektrik RS232 Gambar 2.15. RS232 (Sebagai Komunikasi Serial ) Tabel 2.4. Fungsi

Gambar 2.15. RS232 (Sebagai Komunikasi Serial )

Tabel 2.4. Fungsi masing-masing pin RS232

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

( opened atau closed ). Blok diagram sistem yang dibuat dapat dilihat pada gambar 3.1 Gambar

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.

pada beberapa kaki pin. IC ini memerlukan input +5 Volt. Gambar 3.2. Rangkaian Pengubah Level Tegangan

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

Tabel 3.1 Konfigurasi Pin IC MAX 232 3.2.2. Perencanaan dan Pembuatan Driver Motor DC Secara teoritis,

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.

3.2.3. Perencanaan Gambar 3.3. Rangkaian DriverMotor DC dan Pemb uatan Antar Muka Mikrokontrolle r ATmega8535

3.2.3. Perencanaan

Gambar 3.3. Rangkaian DriverMotor DC

dan

Pembuatan

Antar

Muka

Mikrokontroller ATmega8535

(Interfaces)

dengan

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

ATmega8535

Perangkat

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

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.

PDU dari SMS tersebut untuk mengontrol pintu garasi. 3.3.2. Kontrolling Gambar 3.5. Flowchart Utama Proses

3.3.2. Kontrolling

Gambar 3.5.

Flowchart Utama

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 Mikrokontr oller Untuk Pergerakan Motor DC Perangkat lunak

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.

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");//

opened"

putchar(26);

"has

been

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 :

19200

=

19200 =

f OSC

16(

UBRR +

1)

(3.1)

20.000 MHz

……………………………… (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.

CodeVisionAVR adalah : 1. Jalankan software CodeVisionAVR. Gambar 3. 8. CodeVision AVR 2. Buat project baru

Gambar 3. 8. CodeVision AVR

2. Buat project baru Pilih File New Pilih project lalu tekan tombol OK.

AVR 2. Buat project baru Pilih File New Pilih project lalu tekan tombol OK. Gambar 3.9.

Gambar 3.9. Create Project Baru

3. Kemudian muncul dialog apakah akan menggunakan CodeWizard

AVR

untuk mempermudah merancang kerangka program. Pilih YES. dengan portB.

merancang kerangka program. Pilih YES. dengan portB. Gambar 3.10. Pilihan untuk menggunakan CodeWizardAVR 3.

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.

pilih tab LCD, gunakan portB karena pada board LCD terhubung dengan port B. Gambar 3.11. Menseting

Gambar 3.11. Menseting Jenis Chip Port I/O

5. Kemudian pilih File Generate, Save and Exit.

5. Kemudian pilih File Generate, Save and Exit . Gambar 3.12. Menghasilkan Kode Program

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.

Sedangkan hasil pengujiannya dapat dilihat pada tabel 4.1. Gambar 4.1. Pengujian Komunikasi Serial pada Hyper Terminal

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

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

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

4)

laporan berupa SMS ( has been closed ) ke HP user. 4) Gambar 4.4 Blok Diagram
laporan berupa SMS ( has been closed ) ke HP user. 4) Gambar 4.4 Blok Diagram

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>

5.1 KESIMPULAN

BAB V

PENUTUP

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.

3.

4.

<Halaman ini sengaja dikosongkan>

Listing Program

LAMPIRAN

#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;

}

{

}

}

}

void report1()

if(hasil!=0)

break;

{ 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)

been opened"

{

printf("");

}

if(no_hp==3){

printf("06912618010000240D91261833925801F500")

printf("E8F01C242E97DDA037BCEC2E9301");//

"has

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("");

been closed"

}

}

}

if(no_hp==3){

printf("06912618010000240D91261833925801F500")

printf("E8F01C242E97DDA031FB3D2F9301");//

"has

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();//

UNREAD SMS (New SMS)

AT+CMGL=0 to read

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(); //

reference data

delay_ms(1000);

compare

SMS with

for(i=0;i<10;i++){ rx_no[i]=0;}// SRAM uC

CLEAR

NO in

for(i=0;i<=5;i++){ rx_psn[i]=0;}// PSN in SRAM uC

CLEAR

 

}

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

LAMPIRAN DATA SHEET MIKROKONTROLLER AVR ATmega8535

BIODATA PENULIS

BIODATA PENULIS Nama : Ma’rifatul Iman TTL : Sidoarjo, 25 Oktober 1984 Kelas : 3 Telkom

Nama

: Ma’rifatul Iman

TTL

:

Sidoarjo, 25 Oktober 1984

Kelas

:

3 Telkom B

Alamat

: Jl. Brigjend Katamso II No 29 RT 20/05

No

Pengkol Kedungrejo,Waru Sidoarjo 61256 : 031 –8548027 / 081332985105

Pendidikan :

TK Muslimat Kedungrejo MINU Kedungrejo SLTP YPM I Sepanjang SMU WH - 2 Sepanjang PENS ITS Surabaya

E-mail