de KITS Application Note AN19 - How 2 Use de KITS SPC DC Motor with StarTech PPI Card oleh: Tim IE Melanjutkan AN18 (How 2 Use de KITS SPC Stepper Motor with StarTech PPI Card), Application Note (AN) ini disusun untuk memberikan penjelasan tentang pengendalian de KITS SPC DC Motor (K6) oleh komputer (PC) melalui pemrograman Pascal untuk DOS dan Delphi untuk Windows dengan bantuan StarTech PPI Card. Modul-modul yang digunakan adalah: - de KITS SPC DC Motor (K6) + Motor DC - StarTech PPI Card MENGHUBUNGKAN STARTECH PPI CARD DENGAN KOMPUTER 1. Pastikan komputer dalam kondisi mati dan tidak terhubung ke sumber tegangan (stop kontak). 2. Buka casing komputer dan carilah slot ISA. Slot ini umumnya berwarna hitam dan panjang. 3. Jika dikehendaki, pilihlah setting jumper J1 dan J2 pada StarTech PPI Card. Pada AN ini, setting jumper berada dalam posisi default(J1 = "100" atau 300H dan J2 = 2-3 atau +5V) 4. Masukkan StarTech PPI Card ke salah satu slot ISA yang kosong. Pastikan posisi konektornya terpasang dengan pas (tidak miring). MEMBUAT KABEL UNTUK MENGHUBUNGKAN STARTECH PPI CARD DENGAN DE KITS SPC DC MOTOR 1. StarTech PPI Card memiliki konektor DB25 Female yang berisi 24 port ekspansi (8 bit Port A, 8 bit Port B, dan 8 bit Port C) serta satu pin untuk VCC. Referensi Ground terdapat pada bodi. Sehingga kita membutuhkan sebuah konektor DB25 Male. 2. Sedangkan de KITS SPC DC Motor memiliki konektor berupa header 4 x 1. Agar kabel yang dibuat tidak hanya bisa digunakan untuk modul ini, maka ada baiknya untuk menggunakan ampenol 8 x 2. Kabel ini sama dengan kabel pada AN17 dan AN18. 3. Sebelum memulai pembuatan kabel, ada baiknya jika ditentukan terlebih dahulu port apa saja yang akan digunakan. Pada AN ini, port yang dihubungkan adalah Port A dan Port C. Port yang digunakan adalah Port A, sedangkan Port C dicadangkan untuk aplikasi lain atau pengembangan lebih lanjut. 4. Kabel ini menghubungkan antara konektor DB25 Male (dihubungkan ke PPI Card) dengan ampenol 8 x 2 (dihubungkan ke J5 de KITS SPC DC Motor). Urutannya seperti pada tabel 1 dan gambar 1. Port A0 A1 A2 A3 A4 A5 A6 A7 C0 C1 C2 C3 C4 C5 C6 C7 DB25 Male Pin 2 Pin 3 Pin 4 Pin 5 Pin 6 Pin 7 Pin 8 Pin 9 Pin 10 Pin 11 Pin 12 Pin 13 Pin 22 Pin 23 Pin 24 Pin 25 Ampenol 8 x 2 Pin 1 Pin 2 Pin 3 Pin 4 Pin 5 Pin 6 Pin 7 Pin 8 Pin 9 Pin 10 Pin 11 Pin 12 Pin 13 Pin 14 Pin 15 Pin 16 Manual J5 de KITS SPC DC Motor S1 S2 S3 S4 - Tabel 1. Hubungan Port A dan Port C pada DB25 Male dengan Ampenol 8 x 2 Page 1 of 8 Application Note AN19 J? 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 11 24 12 25 13 PA0 1 PA1 2 PA2 PA3 PA4 PA5 PA6 PA7 PC4 PC0 PC5 PC1 PC6 PC2 PC7 PC3 DB25 Gambar 1. DB25 Male (Port A dan Port C) dengan Ampenol 8 x 2 MENGHUBUNGKAN DE KITS SPC DC MOTOR DENGAN SUMBER TEGANGAN 1. Hubungkan sumber tegangan +12 V DC (sesuaikan dengan tegangan kerja motor) dan GND ke J6. 2. Hubungkan sumber tegangan +5 V DC dan GND ke J1. 3. Hubungkan GND pada J1 dengan bodi dari StarTech PPI Card. SPC-006 Ke Ke motor 2 motor 1 Power Supply 12 V DC GND 5 V DC DB 25 Male Ke PPI Card Dihubungkan ke bodi dengan baut Gambar 2. Hubungan sumber tegangan Page 2 of 8 Application Note AN19 MEMPROGRAM STARTECH PPI CARD Secara garis besar, urutan–urutan untuk memprogram StarTech PPI Card adalah seperti flowchart pada gambar 3. Start Inisialisasi Control Word PPI End Gambar 3. Algoritma pemrograman PPI Card Inisialisasi Control Word digunakan untuk mengatur tugas masing-masing port (apakah berfungsi sebagai input atau output). Setelah inisialisasi dilakukan, maka masing-masing port bisa digunakan sesuai fungsinya. Karena jumper J1 berada pada posisi default, maka alamat yang digunakan port adalah 300H - 303H, seperti pada tabel 2. Alamat Port A 300H Port B 301H Port C 302H Control Word 303H Tabel 2. Alamat yang digunakan PPI Card MEMPROGRAM DE KITS SPC DC MOTOR Secara garis besar, urutan–urutan untuk memprogram de KITS SPC DC Motor adalah seperti flowchart pada gambar 4. Page 3 of 8 Application Note AN19 Start Putar motor? Y N Beri logika '1' ke bit yang bersangkutan (S1 atau S3) Arah putaran searah jarum jam? Beri logika '0' ke bit yang bersangkutan (S1 atau S3) Y N Beri logika '0' ke bit yang bersangkutan (S2 atau S4) Beri logika '1' ke bit yang bersangkutan (S2 atau S4) End Gambar 4. Algoritma pemrograman de KITS SPC DC Motor PEMROGRAMAN PASCAL (DOS) Pemrograman de KITS SPC DC Motor dengan Borland Turbo Pascal 7.0 adalah seperti flowchart pada gambar 5. Page 4 of 8 Application Note AN19 Start Inisialisasi PPI Kirim nilai 128 ke alamat 303H Semua flag = '1', semua pin paralel = '1' Kirim ke alamat 300h Y Key = "d"/"D"? N Key = "1/3"? Y N Key = "2/4"? Ubah arah motor 1 menjadi CCW Putar motor 2 dengan arah CW Ubah arah motor 2 menjadi CCW Ubah arah motor 1 menjadi CW Ubah arah motor 2 menjadi CW Hentikan motor 1 Hentikan motor 2 Flag motor = Flag motor * (-1) Flag motor = "1"? Y Y Flag arah = Flag arah * (-1) Flag arah = "1"? Semua pin paralel = '1' Y Semua pin paralel = '1' Y Putar motor tersebut CW Putar motor tersebut CCW N Y Hentikan motor tersebut Putar motor tersebut N N Key = "0"? Putar motor 1 dengan arah CW Semua flag = '1' N Key = "Esc"? N Kirim ke alamat 300h End Gambar 5. Algoritma pemrograman Pascal Page 5 of 8 Application Note AN19 PENJELASAN SINGKAT - Inisialisasi PPI dilakukan agar semua port berfungsi sebagai output. Hal ini dilakukan dengan cara mengirimkan data desimal 128 (= 80h) ke alamat Control Word (= 303h). - Port yang digunakan adalah Port A sehingga semua data untuk SPC DC Motor akan dikirimkan ke alamat 300h. Variabel nl adalah data yang dikirimkan ke Port A. Untuk mengendalikannya, maka bit yang bersangkutan diberi logika '1' atau '0'. Misalkan dikehendaki untuk memutar motor 1, maka Port A0 diberi logika '0' sehingga nl bernilai '01010100b' atau '54h'. Dalam program dibuat perintah "nl:=nl+1" (untuk menghentikan motor 1) dan nl:=nl-1 (untuk memutar motor 1) agar program bisa memutar atau menghentikan motor 1 tanpa mempengaruhi kondisi pin-pin lain. - Masing-masing pin paralel (S1 untuk motor 1, S2 untuk arah motor 1, S3 untuk motor 2, dan S4 untuk arah motor 2) diberi sebuah flag untuk menentukan kondisinya. Tiap kali penekanan tombol 1-4, flag yang bersangkutan akan dikalikan dengan (-1). Jika flag motor 1 = '1' maka kondisi motor 1 saat itu adalah berhenti dan penekanan tombol "1" akan membuat flag = '-1' dan motor 1 berputar. Jika flag motor 1 = '-1' maka kondisi motor 1 saat itu adalah berputar dan penekanan tombol "1" akan membuat flag = '1' dan motor 1 berhenti. - Penekanan tombol '0' akan menghentikan semua motor dan arah putaran motor menjadi CW dan memberi logika '1' pada semua flag (seperti kondisi awal). - Jika ada penekanan tombol 'd' atau 'D' maka program akan masuk ke mode demo. Program akan bekerja dengan urutan sebagai berikut: - Program akan memutar motor 1 dengan arah CW - Arah motor 1 diubah menjadi CCW - Motor 2 berputar dengan arah CW - Arah motor 2 diubah menjadi CCW - Arah putaran motor 1 diubah menjadi CW - Arah putaran motor 2 diubah menjadi CW - Motor 1 berhenti - Motor 2 berhenti Di antara masing-masing proses terdapat delay. - Jika ada penekanan tombol 'Esc', maka semua motor akan dihentikan dan program berakhir. PEMROGRAMAN DELPHI (WINDOWS) Pemrograman de KITS SPC DC Motor dengan Borland Delphi 5.0 adalah seperti flowchart pada gambar 6. Page 6 of 8 Application Note AN19 Start Inisialisasi PPI Kirim nilai 128 ke alamat 303H Semua Flag = '1', Flag demo = false Kirim ke alamat 300h "Demo" ditekan? Y Y Flag motor1 = Flag motor1 * (-1) Y Flag arah1 = Flag arah1 * (-1) Y Flag motor2 = Flag motor2 * (-1) Y Flag arah2 = Flag arah2 * (-1) N "Reset" ditekan? Y Y Semua Flag = '1' Y Semua pin paralel = '1' Arah = CW Arah = CCW Flag motor2 = "1"? Flag arah2 = "1"? Hentikan motor 1 Putar motor 1 Flag arah1 = "1"? Y Hentikan motor 2 Putar motor 2 Y Arah = CW N Arah = CCW Semua pin paralel = '1' Matikan timer demo, Flag demo = false Y N Program ditutup? Flag motor1 = "1"? N N "Arah2" ditekan? Mode demo N N "Motor2" ditekan? Jalankan timer demo, Flag demo = true reset N N "Arah1" ditekan? Y N N "Motor1" ditekan? Flag demo = false? Kirim ke alamat 300h End N Gambar 6. Algoritma pemrograman Delphi Page 7 of 8 Application Note AN19 PENJELASAN SINGKAT - Karena program menggunakan port I/O, maka untuk mengaksesnya memerlukan perintah tertentu. Dalam AN ini akan dibuat perintah menggunakan bahasa assembly untuk mengakses port PPI. Contoh prosedur untuk mengirimkan data melalui port 300 (Port A) adalah sebagai berikut: asm mov dx, $300 mov al, nl out dx, al end; - Pada saat FormCreate, program akan melakukan inisialisasi PPI, flag pin paralel, dan flag demo. Inisialisasi PPI dilakukan agar semua port berfungsi sebagai output. Hal ini dilakukan dengan cara mengirimkan data desimal 128 (= 80h) ke alamat Control Word (= 303h). - Port yang digunakan adalah Port A sehingga semua data untuk SPC DC Motor akan dikirimkan ke alamat 300h. Variabel nl adalah data yang dikirimkan ke Port A. untuk mengendalikannya, maka bit yang bersangkutan diberi logika '1' atau '0'. Misalnya untuk memutar motor 1 searah jarum jam (CW), maka nl menjadi '01010100b' atau '54h' (lihat tabel 1). Dalam program dibuat perintah untuk menambah nl "nl:=nl+1" (untuk menghentikan motor 1) dan mengurangi nl "nl:=nl-1" (untuk memutar motor 1) agar program bisa mengubah tipe motor tanpa mempengaruhi kondisi pin-pin lain. - Masing-masing pin paralel (S1 untuk motor 1, S2 untuk arah motor 1, S3 untuk motor 2, dan S4 untuk arah motor 2) diberi sebuah flag untuk menentukan kondisinya. Tiap kali penekanan tombol "Motor1", "Arah1", "Motor2", atau "Arah2", flag yang bersangkutan akan dikalikan dengan (-1). Jika flag pada motor 1 = '1' maka kondisi motor 1 saat itu adalah berhenti dan penekanan tombol "Motor1" akan membuat flag = '-1' dan motor 1 berputar. Jika flag motor 1 = '-1' maka kondisi motor 1 saat itu adalah berputar dan penekanan tombol akan membuat flag = '1' dan motor 1 berhenti. - Penekanan tombol "Reset" akan memberi logika '1' pada semua flag dan pin paralel, mematikan timer demo, dan memberi logika 'false' pada flag demo (seperti kondisi awal). - Jika ada penekanan tombol "Demo" maka program akan masuk ke mode demo sebagai berikut: - Motor 1 berputar CW - Arah motor 1 berubah menjadi CCW - Motor 2 berputar CW - Arah motor 2 berubah menjadi CCW - Motor 1 berhenti - Motor 2 berhenti Demo ini akan dilakukan berulang-ulang. Mode demo hanya dapat dihentikan dengan cara menekan tombol "Reset" atau keluar dari program. Penekanan tombol lain selama mode demo tidak dilarang tetapi tidak disarankan karena akan sedikit mengganggu jalannya demo. - Jika program dimatikan, maka program akan memberi logika '1' pada semua pin paralel lalu menutup program. PENTING! - Disarankan untuk menyalakan modul de KITS SPC (beri tegangan supply) sebelum menjalankan program di PC. Jika program di PC dijalankan terlebih dahulu sebelum tegangan supply untuk modul de KITS SPC, hal ini mungkin bisa mengakibatkan chip SPC menjadi panas sekali. Jika chip SPC menjadi panas disebabkan oleh poin di atas, tunggulah hingga chip SPC menjadi dingin sebelum mengoperasikan modul de KITS SPC lagi. Listing semua program dan program yang sudah jadi dapat dilihat pada AN19.ZIP. Source file untuk Pascal bernama AN19p.pas dan file eksekusi yang sudah jadi bernama AN19p.exe. File-file lain merupakan file Delphi. Selamat berinovasi! Page 8 of 8 Application Note AN19