Perancangan Serial Stepper Blok diagram dari rangakaian yang dirancang tampak pada gambar dibawah ini :
Komputer
Antar Muka
Peralatan luar
Komputer Komputer berfungsi untuk mengendalikan peralatan luar, dengan peralatan luar yang dimaksud adalah motor stepper. Spesifikasi program yang dirancang memiliki kemampuan sebagai berikut : • Mengatur kecepatan motor stepper • Mengendalikan putaran motor secara manual melalui keyboard • Menjalankan motor secara kontinu
Antar Muka Antar muka berfungsi untuk mengkonversi data serial yang diterma dari komputer diubah menjadi data – data untuk mengendalikan motor stepper Antar muka terdiri dari dua unit rangkaian : • Rangkaian Mikrokontroler • Rangkaian Driver Motor stepper Antar Muka
Mikrokontroler
Driver motor Stepper
Mikrokontroler Mikrokontroler berfungsi untuk mengkonversi data serial yang diterima menjadi data paralel yang kemudian dikirimkan ke driver motor stepper. Model komunikasi serial yang digunakan yaitu komunikasi asinkron. Model paket komunikasi asinkron tampak seperti gambar dibawah ini : Dari gambar dibawah terlihat format bit pengiriman data serial asynchronous. selalu rendah Start
D0
selalu high
D1
D2
D3
D4
D5
D6
PARITY
Gambar 3 Format komunikasi asinkron
STOP
STOP
Dalam komunikasi asinkron dikenal dengan istilah Baudrate yaitu banyaknya data baud yang dikirim perdetik dikenal dengan satuan Bps Motor stepper yang akan dikendalikan memiliki spesifikasi sebagai berikut : • kecepatan maksimum 2 (dua) putaran perdetik • Putaran perstep motor sebesar 6 derajat maka untuk satu putaran dibutuhkan 360/6 = 60 data Dari spesifikasi diatas maka kecepatan pergantian data maksimum yaitu 1/(2*60) = 8,3 ms
(1)
Baudrate minimum yaitu: 1/8,3 ms > 120,5 Bps
(2)
Baudrate yang akan digunakan 4800 Bps Perancangan Perangkat lunak Mikrokontroler Program yang digunakan menggunakan bahasa assembly Intel MCS-51. Program yang akan dirancang mempunyai kemampuan membaca data dari komputer melalui port serial kemudian mengolah data yang diterima kemudian mengirimkan ke port paralel yang terhubung ke rangkaian driver motor stepper. Diagram Alir program mikro sebagai berikut : Start
Init
Ambil Data dari port serial
Baca data kecepatan motor
Konversi ke dalam waktu
Baca Model pengontrolan
Manual/ otomatis
Subrutin manual
Subrutin otomatis
Flowchart program di Mikrokontroler
Untuk pengaturan kecepatan hanya untuk pengaturan otomatis sedangkan untuk manual digunakan kecepatan default yaitu 20 rpm Sesuai dengan spesifikasi motor yang dikendalikan telah didapat data bahwa kecepatan motor maksimum yaitu 2 putaran perdetik maka dalam satu menit banyak putaran maksimum : 2*60 = 120 putaran/menit
(3)
Dengan demikian data jangkah kecepatan motor yaitu dari 1 – 120. Sesuai dengan perhitungan diawal kecepatan maksimum pergantian data yaitu setiap 8,3 milidetik. Rasio pertambahan waktu untuk mengurangi kecepatan motor yaitu delay = 8,3*n
(4)
Bila n makin besar maka makin lambat putaran motor yang dihasilkan Misal kecepatan putar diinginkan 4 rpm maka waktu untuk pergantian data yaitu : 8,3 * 4 = 33,2 milidetik = 33 milidetik (5) Perancangan Perangkat Lunak Mikrokontroler Perangkat mikrokontroler supaya dapat bekerja harus diisi program. Seperti telah dijelaskan diawal bahasa yang akan digunakan yaitu bahasa assembly Keluarga Intel MCS 51. Telah dijelaskan di bab II supaya mikrokontroler dapat berhubungan dengan komputer perlu dilakukan inisialisasi register SCON, TCON, TMOD dan TH1. Register TCON berfungsi untuk mengaktifkan timer, register TMOD untuk mengatur mode timer, TH1 untuk menginisialisasi baud rate komunikasi serial dari mikrokontroler sedangkan register SCON untuk mengaktifkan port serial dari mikrokontroler. Mengatur Register SCON Format Register SCON sebagai berikut : MSB SMO SM1
LSB SM2
REN
TB8
RB8
T1
R1
Detail fungsi masing masing bit telah dijelaskan di BAB II. Telah dijelaskan diatas komunikasi yang kita gunakan yaitu komunikasi asynchronous dengan baud rate sebesar 4800 Bps. Untuk komunikasi asynchronous mode yang digunakan yaitu mode 1, (UART 8 bit). Maka SM0 = 0, SM1 = 1, SM2 = 1. REN = 1, RB8 dan TB8 berfungsi untuk untuk menampung bit stop, bila RB8 bernilai 1 maka data diterima benar sebaliknya bila RB8 bernilai 0 maka data diterima salah dan RI tidak menjadi 1 meskipun SBUF sudah berisi data dari port serial. TB8 sebagai bit paritas yaitu untuk menampung bit ke 9. Disini bit paritas tidak digunakan sebagai default bit RB8 dan TB8 diberi nilai 0.
Bit TI berfungsi sebagai flag bila data telah komplit dikirim dan RI juga berfungsi sama seperti TI hanya bedanya untuk menandai bahwa data telah komplit diterima. Maka SCON = 01110000b Mengatur register TCON Format register TCON MSB TF1
TR1
TF0
TR0
IE1
IT1
IE0
LSB IT0
Register TCON berfungsi untuk mengaktifkan timer dan untuk mengaktifkan cukup dengan menset /atau merubah nilai bit dari 0 menjadi yaitu bit TR1. Mengatur Register TMOD Format register TMOD MSB GATE
LSB Timer/counter 1 C/T M1
M0
GATE
Timer/counter 0 C/T M1
M0
Register TMOD berfungsi untuk mengatur mode dari timer. Timer untuk komunikasi serial digunakan timer 1 dengan mode 1 yaitu auto reload 8 bit. Bit gate diisi 0 dan bit C/T diisi 0. Maka isi TMOD = 00010000b Mengatur register TH1 Register TH1 untuk mendefinisikan baud rate dari komunikasi serial yang kita gunakan. Formula untuk menghitung baud rate yaitu : TH1 = 256 -
(K * FREKUENSI OSCILATOR (384 * BAUD RATE)
(7)
Rangkaian yang dirancang menggunakan Frekuensi oscilator 11,0592 Mhz, k diisi 1 maka nilai TH1 didapat : 1 * 11,0592.10 6 256 − = 250 d = 0FAh (8) 384 * 4800
Flowchart inisialiasi Bahasa untuk memprogram mikro digunakan bahasa assembler MCS-51. Sesuai dengan rancangan yang dibuat diatas maka flowchart untuk inisialisasi awal sebagai berikut :
Start
Ambil data dari SBUF
Isi SBUF=stack T Y Baca model pengontrol
Rutin control
Flowchart Inisialisasi
Inisialisasi
Baca kode pengontrolan
Kode otomatis
Kode manual
Kode komunikasi selesai
Baca kecepatan yang diinginkan
Kode arah putaran
Baca kode tombol
Rutin putar kiri
Rutin putar kanan
Rutin stop
Ada penekanan tombol ?
Rutin putar kiri
Rutin putar kanan
Tombol masih ditekan
Tombol masih ditekan
Ada penekanan tombol ?
Selesai
Flowchart baca mode pengontrolan Kode untuk Rutin Putar Motor Data digital untuk menggerakkan motor stepper : Memutar ke kanan step 1 0 step 2 1 step 3 1 step 4 0 step 5 0
0 0 1 1 0
1 0 0 1 1
1 1 0 0 1
Memutar ke kiri step 1 0 step 2 0 step 3 1 step 4 1 step 5 0
0 1 1 0 0
1 1 0 0 1
1 0 0 1 1
Pergantian data untuk setiap stepnya disesuaikan dengan kecepatan yang dmasukkan. Data diatas akan dibuat dalam suatu subrutin khusus dan kode untuk memanggil subrutin untuk memutar ke kanan yaitu 027H dan ke kiri 0C6H. Pemberian kode 027H dan 0C6H tidak aturan khusus, sehingga bila diinginkan kode dapat diganti begitu pula kode yang dikirimkan oleh komputer disesuaikan dengan di program di mikrokontroler.
Perancangan perangkat lunak di komputer Bahasa yang digunakan di komputer yaitu gabungan bahasa pascal dan bahasa assembler 8088. Bahasa assembler digunakan untuk menginisialisasi port serial komputer. Sedangkan bahasa pascal digunakan untuk untuk mengontrol pergerakan motor. Flowchart Perangkat lunka di komputer. Mirip dengan di mikrokontroler langkah awal kita menginisialiasi port serial komputer dan mengatur baud rate komputer sama dengan mikrokontroler yaitu 4800 Bps. Setelah port serial komputer diinisialisasi komputer mengirim data ke mikrokontroler yaitu 5 buah data integer untuk mengaktifkan komunikasi antara mikro dan komputer. Dibawah ini tampak flowchart dari program yang dibuat: Start
Inisialisasi Port Serial Baud rate = 4800
Kirim data integer
Baca Data balasan dari mikro
Data dikirim sama dengan diterima
Kirim kode pengontrolan
Selesai
Inisialiasi port serial komputer. Menginisialisasi port serial komputer menggunakan pelayanan interupsi 14H. dan kode pengontrolan seperti baudrate, mode komunikasi, dimasukkan ke register AH. Untuk menentukan port yang digunakan dimasukkan ke register DX. Nilai yang dimasukkan ke register AH sebagai berikut :
7 0 0 0 0 1 1 1 1
Baud rate 6 5 Bps 0 0 110 0 1 150 1 0 300 1 1 600 0 0 1200 0 1 2400 1 0 4800 1 1 9600
4 X 0
Parity 3 None 0 1 odd
Stop 2 0–1 1-2
Data bits 1 0 1 0 7 1 1 8
Komunikasi serial komputer ada dua yaitu COM 1 dan COM 2 dan untuk memilih jalur komuniksi yang digunakan menggunakan register DX. Untuk COM 1 DX diisi nilai 0 dan untuk COM 2 nilai DX diisi 1. Telah diuraikan diatas kecepatan komunikasi dipilih 4800 bps. Parity tidak digunakan, stop bit dipilih yang 2 (dua) dan data bits 8 maka isi register AH yaitu 11000100B = 0C4H. Kode Pengontrolan Kode pengontrolan yang dirancang terdiri dari menu : • • • • •
Pengaturan kecepatan motor Putar motor kontinu ke kiri Putar motor kontinu ke kanan Putar motor perlangkah ke kiri Putar motor perlangkah ke kanan.
Bila keluar program tekan tombol Esc. Kode pengontrolan motor ke kanan 27H dan ke kiri C6H maka dari komputer untuk memutar motor ke kanan dikirim kode 27H. Kecepatan motor yang dikontrol bergantung kecepatan pengiriman kode yang dikirim 27H atau C6H. Untuk mengatur kecepatan motor digunakan rumus (5). Kecepatan yang didapat akan dibulatkan dan angka hasil pembulatan akan dimasukkan ke sintaks delay(n). Perancangan perangkat keras Ada dua bagian perangkat keras yang digunakan yaitu rangkaian pengontrol dan rangkaian driver motor stepper. Rangkaian kontrol Rangkaian kontrol berfungsi untuk mengatur pergerakkan dari motor stepper. Komponen utama yang digunakkan yaitu IC ATMEL 89C51 dan IC MAX 232. Rangkaian Pembangkit Frekuensi Untuk Pembangkit detak dari IC ATMEL 89C51 digunakan kristal sebesar 11,0592 MHZ dan 2 komponen tambahan kapasitor keramik 27 PF. Rangakaian yang digunakan tampak pada gambar dibawah ini :
Rangkaian pembangkit frekuensi ATMEL 89C51 Rangkaian Reset Rangkaian reset diperlukan bila terjadi konflik pada program dikarenakan ada kebocoran arus listrik atau ada komponen yang rusak sehingga proses kontrol terjadi konflik atau hang. |Untuk rangkaian reset tampak pada gambar dibawah ini
VCC 100 NF Pin Reset
Rangkain reset Rangkaian komunikasi serial ke komputer
2 3
3 2
5
5
7
7
Rangkaian serial ke komputer dari mikro pin yang dihubungkan Yang perlu diperhatikan disini dalam membuat kabel serial yaitu pin no 2 DB9 yang terhubung ke komputer dihubungkan ke pin no 3 DB9 yang ke mikro begitu juga sebaliknya.
Rangkaian driver Rangkaian driver dibutuhkan karena arus yang dihasilkan oleh mikrokontroler sangat kecil dan tidak mampu menggerakkan motor yang dikontrol sehingga dibutuhkan suatu rangkaian penguat yang disesuaikan dengan motor yang dikontrol. Motor yang dikontrol mempunyai spesifikasi arus dan tegangan sebagai berikut : • Arus Minimum 500 mA • Tegangan kerja 12 V • 4 pin data input dengan arus minimum 500 mA Merujuk spesifikasi diatas maka dipilih transistor darlington yang mampu mengalirkan arus yang besar. Jenis darlington yaitu TIP 122 yang mempunyai spesifikasi sebagai berikut : • Arus kerja maximum 2 A • Tegangan kerja 5 V – 80 V • Arus untuk mengaktifkan minimum 5 uA Sesuai spesifikasi diatas maka TIP 122 memenuhi syarat untuk dapat menggerakkan motor yang dikontrol. Untuk menghindari arus balik dari motor yang dapat merusakkan transistor darlington di rangkaian driver ditambahkan dioda penyearah. Rangkaian driver motor stepper tampak pada gambar dibawah ini :
Gambar rangkaian driver motor stepper Rangkaian driver diatas dihubungkan ke Port 1 dari rangkaian kontrol,