• Tidak ada hasil yang ditemukan

Perancangan H-bridge bipolar sebagai driver motor stepper berbasis Mikrokontroler AT 89S51

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan H-bridge bipolar sebagai driver motor stepper berbasis Mikrokontroler AT 89S51"

Copied!
39
0
0

Teks penuh

(1)

PERANCANGAN H-BRIDGE BIPOLAR SEBAGAI DRIVER MOTOR STEPPER BERBASIS MIKROKONTROLER AT 89S51

TUGAS AKHIR

Isron Jogi Sinaga 042408066

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(2)

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Kemajuan dan perkembangan dunia terus melaju dan berkembang dengan pesat. Hal ini terjadi di berbagai bidang, baik di bidang ekonomi, sosial budaya, maupun bidang-bidang eksakta dan teknologi. Ini menuntut manusia untuk menghadapinya. Oleh sebab itu manusia harus terus berfikir dan berusaha untuk menemukan hal-hal yang baru guna mempermudah aktifitas sehari-hari.

Berkaitan dengan hal diatas, komputer merupakan salah satu solusinya. Kehadiran komputer sepertinya sudah menjadi sebuah alat bantu bagi manusia. Ini terbukti dengan semakin banyaknya permasalahan yang dapat diatasi dengan memanfaatkan komputer.

(3)

Untuk itu penulis ingin mencoba merancang suatu sistem yang dapat membantu mengatasi hal tersebut dan menuangkannya dalam bentuk laporan Tugas Akhir dengan judul “Perancangan H-bridge bipolar sebagai driver motor stepper berbasis Mikrokontroler AT 89S51”. Bahasa yang digunakan dalam pembahasan laporan ini adalah bahasa Assembler.

1.2. Rumusan Masalah

Mengacu pada hal diatas, pada Laporan ini saya akan merancang sistem H-bridge bipolar sebagai driver motor stepper dengan menggunakan mikrokontroler .

Pada alat ini akan digunakan sebuah mikrokontroler AT89S51, dan sebuah driver motor stepper.

Mikrokontroler AT89S51 sebagai otak dari sistem, yang berfungsi mengendalikan semua peralatan elektronik.

1.3 Tujuan Penulisan

Tujuan dilakukan Laporan ini adalah sebagai berikut:

(4)

1.4 Batasan Masalah

Mengacu pada hal diatas, kami akan merancang sebuah alat yang dapat merancang H-bridge bipolar sebagai driver motor stepper dengan memanfaatkan mikrokontroler dengan batasan-batasan sebagai berikut : 1. Mikrokontroler yang digunakan adalah jenis AT89S51.

2. Driver motor stepper.

3. Bahasa program yang digunakan pada mikrokontroler adalah bahasa “Assembler”.

1.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja sistem perancangan H-bridge sebagai driver motor stepper dengan menggunakan mikrokontroler, maka penulis menulis laporan ini sebagai berikut :

BAB I. PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB II. LANDASAN TEORI

(5)

bahasa program yang digunakan. serta karekteristik dari komponen-komponen pendukung.

BAB III. PERANCANGAN ALAT DAN PROGRAM

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, skematik dari masing-masing rangkaian dan diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51.

BAB IV. ANALISA RANGKAIAN DAN SISTEM KERJA ALAT

Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai program-program yang digunakan untuk mengaktifkan rangkaian, penjelasan mengenai program yang diisikan ke mikrokontroler AT89S51.

BAB V. KESIMPULAN DAN SARAN

(6)

BAB II

TINJAUAN PUSTAKA

2.1. PERANGKAT KERAS

2.1.1. Arsitektur Mikrokontroler AT89S51

Mikrokontroler, sebagai suatu terobosan teknologi mikrokontoler dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara missal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebetuhan pasar, mikrokontelor hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat Bantu dan mainan yang lebih canggih.

Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin menggunakan computer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.

(7)

lebih nyaman jika dipasang suatu system pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu system akuisisi data sekaligus system pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan. Tidak seperti system komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada system computer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.

2.1.2. Kontruksi AT89S51

(8)

dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.

Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda.

Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam.

Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.

Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.

(9)

Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.

Sarana Input/Ouput yang disediakan cukup banyak dan bervariasa. AT89S51 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).

AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P1.0 dan P1.1 di kaki nomor 2 dan 3, seningga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai.

AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.

(10)

2.1.3. SFR (Register Fungsi Khusus ) Pada Keluarga 51

Sekumpulan SFR atau Special Function Register yang terdapat pada Mikrokontroler Atmel Keluarga 51 ditunjukan pada gambar I.01, pada bagian sisi kiri dan kanan dituliskan alamat-alamatnya dalam format heksadesimal.

Tidak semua alamat pada SFR digunakan, alamat-alamat yang tidak digunakan diimplementasikan pada chip. Jika dilakukan usaha pembacaan pada alamat-alamat yang tidak terpakai tersebut akan menghasilkan data acak dan penulisannya tidak menimbulkan efek sama sekali. Pengguna perangkat lunak sebaiknya jangan menuliskan ‘1’ pada lokasi-lokasi ‘tak bertuan’ tersebut, karena dapat digunakan untuk mikrokontroler generasi selanjutnya. Dengan demikian, nilai-nilai reset atau non-aktif dari bit-bit baru ini akan selalu ‘O’ dan nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:

8 Bytes

F8 FF

F0 B F7

E8 EF

E0 ACC E7

D8 DF

D0 PSW D7

C8 (T2CON) (T2MOD) (RCAP2L) (RCAP2H) (TL2) (TH2) CF

C0 C7

B8 IP BF

B0 P3 B7

A8 IE AF

A0 P2 A7

98 SCON SBUF 9F

90 P1 97

88 TCON TMOD TLO TL1 THO TH1 8F

80 PO SP DPL DPH PCON 87

(11)

Tanda (…) untuk SFR yang dijumpai di keluarga 51 dengan 3 Timer

Akumulator

ACC atau akumulator yang menempati lokasi E 0h digunakan sebagai register untuk penyimpanan data sementara dalam program, instruksi mengacunya sebagai register A (bukan ACC).

Register B

Register B (lokasi D 0h) digunakan selama operasi perkalian dan pembagian, untuk instruksi lain dapat diperlakukan sebagai register scratch pad (“papan coret-coret”)

lainnya.

Program Status Word (PSW)

Register PSW (lokasi D 0h) mengandung informasi status program.

Stack Pointer

(12)

Data Pointer

Register Data Pointer atau DPTR mengandung DPTR untuk byte tinggi (DPH) dan byte rendah (DPL) yang masing-masing berada dilokasi 83h dan 82h, bersama-sama membentuk register yang mampu menyimpan alamat 16-bit. Dapat dimanipulasi sebagai register 16-bit atau ditulis dari/ke port, untuk masing-masing Port 0,Port 1, Port2 dan Port 3.

Serial Data Buffer

SBUF atau Serial Data Buffer (lokasi 99h) sebenarnya terdiri dari dua register yang terpisah, yaitu register penyangga pengirim (transmit buffer) dan penyangga penerima (receive buffer). Pada saat data disalin ke SBUF, maka data sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.

Time Register

Pasangan register (TH0, TL0) dilokasi 8Ch dan 8Ah,(TH1, TL1) dilokasi 8Dh dan 8Bh serta (TH2, TL2) dilokasi CDh dan CCH merupakan register-register pencacah 16-bit untuk masing-masing Timer 0, Timern 1 dan Timer 2.

Capture Register

(13)

TH2 dan TL2 disalin masing-masing ke RCAP2H dan RCAP2L. Timer 2 juga memiliki mode isi-ulang-otomatis 16-bit dan RCAP2H serta RCAP2L digunakan untuk menyimpan nilai isi-ulang tersebut.

Control Register

Register-register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON dan PCON berisi bit-bit control dan status untuk system interupsi, pencacah/pewaktu dan port serial.

Berikut ini merupakan spesifikasi dari IC AT89C51 :  Kompatible dengan produk MCS-51

 Empat K byte In-Sistem Reprogammable Flash Memory  Daya tahan 1000 kali baca/tulis

 Fully Static Operation : 0 Hz sampai 24 MHz  Tiga level kunci memori progam

 128x8 bit RAM internal  32 jalur I/O

(14)

Gambar 2. IC Mikrokontroler AT89S51 Deskripsi pin-pin pada mikrokontroler AT89S51 :

VCC (Pin 40)

Suplai tegangan

GND (Pin 20)

Ground

Port 0 (Pin 39-Pin 32)

(15)

biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.

Pada fungsi sebagai low order multiplex address/data, port ini akan mempunyai internal pull up.

Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat verifikasi program.

Port 2 (Pin 21 – pin 28)

Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengaksememori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink keempat buah input TTL.

Port 3 (Pin 10 – pin 17)

Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut :

Nama pin Fungsi

P3.0 (pin 10) RXD (Port input serial)

P3.1 (pin 11) TXD (Port output serial)

P3.2 (pin 12) INTO (interrupt 0 eksternal)

P3.3 (pin 13) INT1 (interrupt 1 eksternal)

(16)

P3.5 (pin 15) T1 (input eksternal timer 1)

P3.6 (pin 16) WR (menulis untuk eksternal data memori)

P3.7 (pin 17) RD (untuk membaca eksternal data memori)

RST (pin 9)

Reset akan aktif dengan memberikan input high selama 2 cycle.

ALE/PROG (pin 30)

Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash.

PSEN (pin 29)

Progam store enable digunakan untuk mengakses memori progam eksternal.

EA (pin 31)

Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt.

XTAL1 (pin 19)

(17)

XTAL2 (pin 18)

Output dari osilator.

Motor Langkah (Stepper)

Motor langkah (stepper) banyak digunakan dalam berbagai aplikasi, dipergunakan apabila dikehendaki jumlah putaran yang tepat atau diperlukan sebagian dari putaran motor. Suatu contoh dapat dijumpai pada disk drive, untuk proses pembacaan dan/atau penulisan data ke/dari cakram(disk), head baca-tulis ditempatkan pada tempat yang tepat di atas jalur atau track pada cakram, untuk head tersebut di hubungkan dengan sebuah motor langkah.

Aplikasi penggunaan motor langkah dapat juga dijumpai dalam bidang industri atau untuk jenis motor langkah kecil dapat digunakan dalam perancangan suatu alat mekatronik atau robot. Motor langkah berukuran besar digunakan, misalnya, dalam proses pengeboran logam yang menghendaki ketepatan posisi pengeboran, dalam hal ini di lakukan oleh sebuah robot yang memerlukan ketepatan posisi dalam gerakan lengannya dan lain-lain.

Pada gambar di bawah ditunjukkan dasar susunan sebuah motor langkah (stepper).

U

S A

D B

A C

(18)

Gambar .Diagram motor langkah (stepper)

Magnet permanen N-S berputar kearah medan magnet yang aktif. Apabila kumparan stator dialiri arus sedemikian rupa, maka akan timbul medan magnet dan rotor akan berputar mengikuti medan magnet tersebut. Setiap pengalihan arus ke kumparan berikutnya menyebabkan medan magnet berputar-putar menurut suatu sudut tertentu, biasanya informasi besar sudut putar tertulis pada badan motor langkah yang bersangkutan. Jumlah keseluruhan pengalihan menentukan sudut perputaran motor. Jika pengalihan arus ditentukan, maka rotor akan berhenti pada posisi terakhir. Jika kecepatan pengalihan tidak terlalu tinggi, maka slip akan dapat dihindari. Sehingga tidak diperlukan umpan balik (feedback) pada pengendalian motor langkah.

Motor langkah yang akan di gunakan memiliki 4 fase (pole atau kutub), pengiriman pulsa dari mikrokontroler ke rangkaian motor langkah dilakukan secara bergantian, masing-masing 4 data (sesuai dengan jumlah phase-nya), sebagian di tunjukkan pada gambar di bawah ini :

Gambar. Pemberian data/pulsa pada motor stepper

Pada saat yang sama ,untuk tiap motor langkah, tidak boleh ada 2 (dua) masukan atau lebih yang mengandung pulsa sama dengan 1 (high), atau dengan

C

D A

(19)

kata lain, pada suatu saat hanya sebuah masukan yang bernilai 1 (satu) sedangkan lainnya bernilai 0 (nol).

2.2. PERANGKAT LUNAK

2.2.1. Bahasa Assembly MCS-51

Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa assembly untuk MCS-51. Angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Dari 51 instruksi, yang sering digunakan orang hanya 10 instruksi. Instruksi –instruksi tersebut antara lain :

1. Instruksi MOV

Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian nilai secara langsung :

MOV R0,#20h

Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.

Contoh pengisian nilai secara tidak langsung : MOV 20h,#80h

(20)

Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0).

Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.

2. Instruksi DJNZ

Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol, contoh :

MOV R0,#80h Loop: ...

...

DJNZ R0,Loop ...

R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.

3. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu, contoh : ...

ACALL TUNDA ...

TUNDA:

...

(21)

Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan, contoh :

ACALL TUNDA ...

TUNDA:

... RET

5. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, contoh : Loop:

... ... JMP Loop

6. Instruksi JB (Jump if bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1), contoh :

Loop:

JB P1.0,Loop ...

7. Instruksi JNB (Jump if Not bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0), contoh :

Loop:

(22)

8. Instruksi CJNZ (Compare Jump If Not Equal)

Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu, contoh :

Loop:

...

CJNE R0,#20h,Loop ...

Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h, maka program akan melanjutkan instruksi selanjutnya..

9. Instruksi DEC (Decreament)

Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1, contoh :

MOV R0,#20h R0 = 20h ...

DEC R0 R0 = R0 – 1 ...

10.Instruksi INC (Increament)

Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1, contoh :

MOV R0,#20h R0 = 20h ...

INC R0 R0 = R0 + 1 ...

(23)

2.2.2. Software 8051 Editor, Assembler, Simulator (IDE)

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler,dan Simulator (IDE).

Tampilannya seperti di bawah ini :

Gambar 3. 8051 Editor, Assembler, Simulator (IDE)

Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.

(24)

2.2.3. Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet.

Tampilannya seperti gambar di bawah ini :

Gambar 4. ISP- Flash Programmer 3.a

(25)

BAB III

PERANCANGAN SISTEM

3.1. Diagram Blok

Secara garis besar rangkaian pengendali peralatan elektronik dengan menggunakan PC, memiliki 6 blok utama, yaitu personal komputer (PC), Mikrokontroler AT89S51, relay, lampu beban, Pintu dan sensor arus. Diagram blok rangkaian tampak seperti gambar berikut :

Gambar di atas merupakan gambar diagram blok dari rangkaian pengendali peralatan elektronik dengan menggunakan PC. Jika komputer diberi perintah tertentu melalui program yang ada pada komputer, maka akan terjadi komunikasi data antara komputer dan mikrokontroler, Selanjutnya mikrokontroler akan mengambil data dari output komputer, sehingga mikrokontroler AT89S51 mengetahui data yang dikirimkan oleh komputer tersebut dan data ini akan

D

ri

v

er

s

te

p

p

er

P0.0

Motor stepper

P0.3 P0.2

(26)

dianggap oleh mikrokontroler sebagai perintah untuk mengerjakan sesuatu (mengaktifkan/menonaktifkan relay). Langkah selanjutnya mikrokontroler akan membandingkan data yang masuk dengan data yang telah diprogramkan dalam mikrokontroler, kemudian mengerjakan perintah (mengaktifkan/menonaktifkan relay tertentu) sesuai dengan data yang diterima. Relay yang aktif akan menyebabkan lampu yang dihubungkan ke relay tersebut menyala. Setiap lampu dihubungkan ke sensor arus, sehingga jika lampu menyala, maka sensor arus yang terhubung ke lampu tersebut akan aktif dan mengirimkan sinyal tertentu ke mikrokontroler AT89S51. Sehingga dengan demikian mikrokontroler mengetahui lampu-lampu mana saja yang menyala. Hal yang sama juga terjadi ketika dibuka atau ditutup pintu.

3.2. Perancangan Rangkaian Power Supplay (PSA)

Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt, keluaran 5 volt digunakan untuk menghidupkan seluruh rangkaian, sedangkan keluaran 12 volt digunakan untuk menghidupkan relay. Rangkaian tampak seperti gambar di bawah ini :

Gambar 4.1 Rangkaian Power Supplay (PSA) Vreg

LM7805CT

IN OUT TIP32C

100

100uF

330

2200uF 1uF

220 V AC

0 V

5 Volt DC

(27)

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 2200 µF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila PSA dinyalakan.

(28)

5V Sebenarnya tegangan 12 volt ini tidak stabil, namun karena tegangan 12 volt ini hanya digunakan untuk menghidupkan relay, jadi tidak dipermasalahkan, karena relay dapat hidup dengan tegangan 8 – 15 volt.

3. 3. Rangkaian Mikrokontroler AT89S51

Rangkaian mikrokontroler ini berfungsi sebagai pusat kendali dari seluruh rangkaian yang ada pada alat ini. Gambar rangkaian mikrokontroler AT89S51 ditunjukkan pada gambar 3.8 berikut ini :

Gambar 3.8 Rangkaian Mikrokontroler AT89S51

(29)

sebagai sumber clocknya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroler dalam mengeksekusi suatu perintah tertentu.

Pada pin 9 dihubungkan dengan sebuah kapasitor 10 uF yang dihubungkan ke positif dan sebuah resistor 10 Kohm yang dihubungkan ke ground. Kedua komponen ini berfungsi agar program pada mikrokontroler dijalankan beberapa saat setelah power aktif. Lamanya waktu antara aktifnya power pada IC mikrokontroler dan aktifnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut. Jika dihitung maka lama waktunya adalah :

10 10 1 det

tR x CKx Fm ik

Jadi 1 mili detik setelah power aktif pada IC kemudian program aktif.

Pin 17 yang merupakan P3.7 dihubungkan dengan transistor dan sebuah LED. Ini dilakukan hanya untuk menguji apakah rangkaian minimum mikrokontroler AT89S51 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroler tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah bekerja dengan baik atau tidak. Jika LED yang terhubug ke Pin 17 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Namun setelah seluruh rangkaian disatukan, LED yang terhubung ke in 17 ini tidak digunakan lagi. Perancangan Rangkaian Driver Motor Stepper

(30)

motor stepper. Rangkaian ini akan bekerja memutar motor stepper jika diberi sinyal high (1) secara bergantian pada ke-4 masukannya. Rangkaiannya seperti gambar di bawah :

Gambar Rangkaian Driver Motor Stepper

Rangkaian ini terdairi dari 4 buah transistor NPN TIP 122. Masing-masing transistor dihubungkan ke P0.0, P0.1, P0.2 dan P0.3 pada mikrokontroler AT89S51. Basis dari masing-masing transistor diberi tahanan 10 Kohm untuk membatasi arus yang masuk ke transistor. Kolektor dihubungkan dengan kumparan yang terdapat pada motor stepper, kemudian kumparan dihubungkan dengan sumber tegangan 12 volt.dan emitor dihubungkan ke ground.

Jika P0.0 diberi logika high (1), yang berarti basis pada transistor TIP 122 mendapat tegangan 5 volt, maka transistor akan aktif. Hal ini akan menyebabkan terhubungnya kolektor dengan emitor, sehingga kolektor mendapatkan tegangan 0 volt dari ground. Hal ini menyebabkan arus akan mengalir dari sumber tegangan 12 volt ke kumparan, sehingga kumparan akan menghasilkan medan magnet. Medan magnet ini akan menarik logam yang ada pada motor, sehingga motor mengarah pada kumparan yang memiliki medan magnet tesebut.

Tip 122 Tip 122

VCC 12V

MOTOR AT89S51 (P0.0)

AT89S51 (P0.2)

Stepper

VCC 12V

Tip 122 Tip 122

1.0k

1.0k

AT89S51 (P0.1)

1.0k

1.0k

(31)

Jika kemudian P0.0 diberi logika low (0), yang berarti transistor tidak aktif dan tidak ada arus yang mengalir pada kumparan, sehingga tidak ada medan magnet pada kumparan. Dan disisi lain P0.1 diberi logika high (1), sehingga kumparan yang terhubung ke P0.1 akan menghasilkan medan magnet. Maka motor akan beralih kearah kumparan yang terhubung ke P0.1 tersebut. Seterusnya jika logika high diberikan secara bergantian pada input dari driver motor stepper, maka motor stepper akan berputar sesuai dengan arah logika high (1) yang diberikan pada inputnya.

Untuk memutar dengan arah yang berlawanan dengan arah yang sebelumnya, maka logika high (1) pada input driver motor stepper harus diberikan secara bergantian dengan arah yang berlawanan dengan sebelumnya. 3.8. Perancangan program

Program yang digunakan dalam proyek ini adalah program visual basic untuk interface komputer ke rangkaian dan asssembler untuk mikrokontroler, adapun program yang diisikan adalah sbb:

program interface komputer ke rangkaian”:

Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)

Private Declare Function Portin Lib "IO.DLL" (ByVal Port As Integer) As Byte Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMiliseconds As Long) Private Declare Function Inp Lib "DllPort.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer

(32)

Sleep 50

PortOut &H378, &H1C End Sub

Private Sub Close_Click() Unload Me

End Sub

Private Sub Statusgerbang_Click() PortOut &H378, &H3A

Sleep 100

NilaiGerbang = Inp(&H379) If NilaiGerbang = 127 Then Statusgrb = "Terbuka" Else

Statusgrb = "Tertutup" End If

(33)

BAB IV

PENGUJIAN DAN ANALISA SISTEM

4.1. Pengujian Rangkaian Catu Daya

Pengujian pada bagian rangkaian catu daya ini dapat dilakukan dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan voltmeter digital. Dari hasil pengujian diperoleh tegangan keluaran pertama sebesar + 4,9 volt. Sedangkan tegangan keluaran kedua adalah sebesar +13,7 volt. Tegangan 4,9 volt digunakan untuk mensupplay tegangan ke mikrokontroler AT89S51. Sedangkan tegangan 13,7 volt digunakan untuk mensupplay tegangan ke relay.

4.2. Pengujian Rangkaian minimum mikrokontroller AT89S51

Pengujian rangkaian mikrokontroler dilakukan dengan menghubungkan rangkaian ini dengan sebuah transistor A733 yang dihubungkan dengan sebuah LED indikator, dimana transistor disini berfungsi sebagai saklar untuk mengendalikan hidup/mati LED. Dengan demikian LED akan menyala jika transistor aktif dan sebaliknya LED akan mati jika transistor tidak aktif. Tipe transistor yang digunakan adalah PNP A733, dimana transistor ini akan aktif (saturasi) jika pada basis diberi tegangan 0 volt (logika low) dan transistor ini akan tidak aktif jika pada basis diberi tegangan 5 volt (logika high). Basis transistor ini dihubungkan ke pin I/O mikrokontroler yaitu pada kaki 28 (P2.7).

Langkah selanjutnya adalah mengisikan program sederhana ke mikrokontroler AT89S51. Programnya adalah sebagai berikut :

(34)

Cpl P2.7

Acall tunda

sjmp loop

tunda:

mov r7,#255

tnd:

mov r6,#255

djnz r6,$

djnz r7,tnd

ret

Program di atas akan mengubah logika yang ada pada P2.7 selama selang waktu tunda. Jika logika pada P2.7 high maka akan diubah menjadi low, demikian juga sebaliknya jika logika pada P2.7 low maka akan diubah ke high, demikian seterusnya.

Logika low akan mengaktifkan transistor sehingga LED akan menyala dan logika high akan menonaktifkan transistor, sehingga LED padam. Dengan demikian program ini akan membuat LED berkedip terus-menerus. Jika LED telah berkedip terus menerus sesuai dengan program yang diinginkan, maka rangkaian mikrokontroler telah berfungsi dengan baik.

4.5. Pengujian rangkaian driver motor stepper

(35)

Program yang diberikan pada mikrokontroler untuk memutar motor stepper adalah sebagai berikut :

mov a,#11h

Mov r0,#100

Buka_Palang:

mov P0,a

acall tunda

Rl a

djnz r0,buka_palang

mov P0,#0h

Program diawali dengan memberikan nilai 11h pada accumulator (a), kemudian program akan memasuki rutin buka pintu. Nilai a diisikan ke port 0, sehingga sekarang nilai port 0 adalah 11h, ini berarti P0.0 dan P0.4 mendapatkan logika high sedangkan yang lainnya mendapatkan logika low, seperti tabel di bawah ini :

P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

P0 0 0 0 1 0 0 0 1

Program dilanjutkan dengan memanggil rutin tunda. Lamanya tunda akan mempengaruhi kecepatan perputaran motor. Semakin lama maka tunda, maka perputaran motor akan semakin lambat. Perintah berikutnya adalah Rl a,perintah ini akan memutar nilai yang ada pada accumulator (a), seperti tampak pada tabel di bawah ini :

(36)

Rl

a 0 0 1 0 0 0 1 0

Dst...

Nilai pada accumulator (a) yang awalnya 11h, setelah mendapat perintah Rl a, maka nilai pada accumulator (a) akan merubah menjadi 22h. Kemudian program akan melihat apakah nilai pada R0 sudah nol atau belum, jika nilai pada R0 belum nol, yang berarti palang belum terbuka lebar, maka program akan kembali ke rutin buka palang untuk terus membuka palang. Nilai yang ada pada accumulator (a), akan kembali diisikan ke port 0, maka nilai di port 0 akan berubah menjadi 22h, ini berarti P0.1 dan P0.5 mendapatkan logika high, sedangkan yang lainnya mendapatkan logika low, seperti tabel di bawah ini :

P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

P0 0 0 1 0 0 0 1 0

Sebelumnya telah dibahas bahwa P0.0, P0.1, P0.2, dan P0.3 dihubungkan ke masukan driver motor stepper, dengan program di atas maka P0.0, P0.1, P0.2, dan P0.3 akan mendapatkan nilai high (1) secara bergantian. Hal ini menyebabkan motor stepper akan berputar membuka palang. Palang akan terus dibuka sampai nilai pada r0 menjadi nol, yang berarti pintu telah terbuka lebar maka program akan melanjutkan ke baris berikutnya, yaitu mengisi port 0 dengan nilai 0h, yang merupakan perintah untuk menghentikan perputaran motor.

(37)

a 1 0 0 0 1 0 0 0 R r

a 0 1 0 0 0 1 0 0

(38)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

 Dengan menggunakan motor stepper apakah dapat bergerak atau tidak.  Dengan memberikan program dan mikrokontroler, maka mikrokontroler

dapat berkomunikasi dengan driver stepper motor , sehingga mikrokontroler dapat melaksanakan perintah-perintah yang diberikan.

5.2 Saran

 Komunikasi paralel antara mikrokontroler membutuhkan kabel yang

(39)

Gambar

Gambar I. Peta Register Fungsi Khusus – SFR (Special Function Register)
Gambar  2.   IC Mikrokontroler AT89S51
Gambar.  Pemberian data/pulsa pada motor stepper
Gambar  3.   8051 Editor, Assembler, Simulator (IDE)
+6

Referensi

Dokumen terkait

Jika tegangan yang didapat dari sensor yang lebih besar dari tegangan referensi maka rangkaian komprator akan bekerja dengan mengeluarkan tegangan 5 volt pada output. Sinyal

Arus AC yang mendorong electron keatas melalui resistor, saat melewati diode hanya setengah periode positif dari tegangan input yang akan memberikan bias forward pada diode,

Pada saat arus dihentikan, gaya magnet akan hilang, tuas akan kembali ke posisi semula dan kontak saklar kembali terbuka.Relay biasanya digunakan untuk menggerakkan arus/tegangan

Untuk mendapatkan tegangan pengisian yang konstan pada pengisian aki, sehingga arus pengisian akan turun pada level yang aman, maka diperlukan rangkaian

Pada rangkaian input ini, terdapat tegangan 5v dan apabila sensor mendeteksi adanya gerakan, maka arus listrik diterima oleh mikrokontroler yang akan memberikan perintah kepada

Setelah rangkaian itu bisa kalian buat kalian akan langsung tau penggunaan transistor pada rangkaian itu sebagai saklar arus listrik yang dimana arus yang mengalir dari tegangan

• Untuk mengetahui nilai tegangan output optocoupler dari sensor arus pada saat motor berputar, , seperti tampak pada gambar 4.4. • Untuk mengetahui nilai arus yang dihasilkan oleh

Pengujian rangkaian dilakukan dengan menggunakan multimeter, untuk mengetahui tegangan input dan output saat sensor mendeteksi warna dari objek warna mobil yang akan diujikan.