ETC AN19

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