Bab9. Driver Motor DC dan Stepper
Bab9. Driver Motor DC dan Stepper
Percobaan 1: Driver Motor DC
Percobaan 1: Driver Motor DC
gambar 9.1. DAC
gambar 9.1. DAC
Gambar di atas adalah skema pengubah digital ke analog yang berfungsi
Gambar di atas adalah skema pengubah digital ke analog yang berfungsi
menghasilkan tegangan analog sebagai referensi PWM (
menghasilkan tegangan analog sebagai referensi PWM ( Pulse
Pulse Width
Width
Modulation
Modulation). Agar bisa digunakan sebagaimana mestinya, aturlah tegangan
). Agar bisa digunakan sebagaimana mestinya, aturlah tegangan
Vref1 (pada test point ‘ref’) sebesar 5.1 volt. Kemudian ujilah dengan
Vref1 (pada test point ‘ref’) sebesar 5.1 volt. Kemudian ujilah dengan
porta
porta equ equ 00h 00h ; ; Menentukan Menentukan alamat alamat port port A,B,CA,B,C portb
portb equ equ 01h 01h ; ; dan dan ctrlword ctrlword sesuai sesuai dengandengan portc
portc equ equ 02h 02h ; ; hardwarenyahardwarenya cw
cw equ equ 03h03h mulai:
mulai:
mov
mov al,80h al,80h ; ; init init ppippi mov
mov dx,cw dx,cw ; ; 80H 80H MODE MODE = = 00 out
out dx,al dx,al ; ; port port ABC ABC = = outputoutput mov
mov al,255 al,255 ; ; data data DACDAC mov dx,portc mov dx,portc out dx,al out dx,al call delay call delay putar: putar: jmp jmp putarputar delay
delay proc proc near near ; ; Procedure Procedure delaydelay push
push cx cx ; ; simpan simpan cxcx mov
mov cx,0ffffh cx,0ffffh ; ; isi isi cx cx dengan dengan lama lama delaydelay loop
loop $ $ ; ; loopng loopng sampai sampai cx=0cx=0 pop cx
pop cx ; ; keluarkan keluarkan cxcx ret
ret ; ; kembali kembali ke ke program program utamautama delay
delay endp endp ; ; akhir akhir procedure procedure delaydelay
ORG
ORG 20F0H 20F0H ; ; alamat alamat yang yang dituju dituju setelah setelah resetreset DB
DB 0EAH 0EAH ; ; JMP JMP reset reset keke DW
DW 0100H 0100H ; ; alamat alamat offset offset 0100h0100h DW
DW 0FDF0H 0FDF0H ; ; alamat alamat segmen segmen 0FDFh0FDFh CODE_SEG
CODE_SEG ENDS ENDS ; ; batas batas segment segment code_segcode_seg END
END START START ; ; akhir akhir programprogram
dan ganti nilai variabel data, kemudian ukur tegangan di pin 1 dari LF353 dan
dan ganti nilai variabel data, kemudian ukur tegangan di pin 1 dari LF353 dan
isilah tabel berikut:
isilah tabel berikut:
Data
Data Tegangan Tegangan di di pin pin 1 1 LF353 LF353 (volt)(volt)
0 0 64 64 128 128 192 192 255 255
gambar 9.2. Generator gigi gergaji dan komparator
gambar 9.2. Generator gigi gergaji dan komparator
Gambar di atas dalah generator gigi gergaji yang digunakan sebagai
Gambar di atas dalah generator gigi gergaji yang digunakan sebagai
pembangkit
pembangkit awal
awal PWM
PWM (U6)
(U6)
dan
dan komparator
komparator (U5)
(U5) Adapun
Adapun parameter
parameter
frekuensi yang dihasilkan adalah :
frekuensi yang dihasilkan adalah :
ii OP OP
V
V
V
V
C
C
R
R
f
f
55 550
0
..
7
7
Jadi frekuensi yang dihasilkan ditentukan oleh R
Jadi frekuensi yang dihasilkan ditentukan oleh R
55, C
, C
55,
, V
V
opopdan V
dan V
ii. Nilai R
. Nilai R
55=
=
10 K dan C
Dari hasil percobaan di atas, aturlah Vi dan Vop sehingga frekuensi yang
Dari hasil percobaan di atas, aturlah Vi dan Vop sehingga frekuensi yang
dihasilkan 50 Hz.
dihasilkan 50 Hz.
gambar 9.3. Multiplekser pengatur arah gerakan
gambar 9.3. Multiplekser pengatur arah gerakan
Gambar di atas adalah
Gambar di atas adalah multiplekser untuk meng
multiplekser untuk mengatur arah gerakan motor DC ke
atur arah gerakan motor DC ke
kanan atau kekiri. Ketiklah program berikut :
kanan atau kekiri. Ketiklah program berikut :
CODE_SEG
CODE_SEG SEGMENT SEGMENT ; ; code_seg code_seg sebagai sebagai segmentsegment ASSUME CS:COD
ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CE_SEG,DS:CODE_SEG,SS:CODE_SEGODE_SEG ORG
ORG 100H 100H ; ; program program ditulis ditulis mulai mulai origin origin 100h100h start:
start: jmp jmp mulai mulai ; ; Awal Awal program program pada pada Org Org 0100H0100H porta
porta equ equ 00h 00h ; ; Menentukan Menentukan alamat alamat port port A,B,CA,B,C portb
portb equ equ 01h 01h ; ; dan dan ctrlword ctrlword sesuai sesuai dengandengan portc
portc equ equ 02h 02h ; ; hardwarenyahardwarenya cw
cw equ equ 03h03h mulai:
mulai:
mov
mov al,80h al,80h ; ; init init ppippi mov
mov dx,cw dx,cw ; ; 80H 80H MODE MODE = = 00 out
out dx,al dx,al ; ; port port ABC ABC = = outputoutput mov
mov al,255 al,255 ; ; data data DACDAC mov dx,portc
out dx,al out dx,al call delay call delay mov al,0
mov al,0 ; ; data data araharah mov dx,portb mov dx,portb out dx,al out dx,al call delay call delay putar: putar: jmp jmp putarputar delay
delay proc proc near near ; ; Procedure Procedure delaydelay push
push cx cx ; ; simpan simpan cxcx mov
mov cx,0ffffh cx,0ffffh ; ; isi isi cx cx dengan dengan lama lama delaydelay loop
loop $ $ ; ; loopng loopng sampai sampai cx=0cx=0 pop cx
pop cx ; ; keluarkan keluarkan cxcx ret
ret ; ; kembali kembali ke ke program program utamautama delay
delay endp endp ; ; akhir akhir procedure procedure delaydelay
ORG
ORG 20F0H 20F0H ; ; alamat alamat yang yang dituju dituju setelah setelah resetreset DB
DB 0EAH 0EAH ; ; JMP JMP reset reset keke DW
DW 0100H 0100H ; ; alamat alamat offset offset 0100h0100h DW
DW 0FDF0H 0FDF0H ; ; alamat alamat segmen segmen 0FDFh0FDFh CODE_SEG
CODE_SEG ENDS ENDS ; ; batas batas segment segment code_segcode_seg END
END START START ; ; akhir akhir programprogram
Kemudian dengan oscilloscope, lihatlah gambar pada pin 13 dan 3 dari IC
Kemudian dengan oscilloscope, lihatlah gambar pada pin 13 dan 3 dari IC
4052. Ulangilah program di atas, kemudian isi tabel berikut, sesuai apa yang
4052. Ulangilah program di atas, kemudian isi tabel berikut, sesuai apa yang
anda lihat
anda lihat
Arah
Arah pin pin 13 13 pin pin 33
0 0 1 1 2 2
gambar 9.4. H-Bridge driver motor DC
gambar 9.4. H-Bridge driver motor DC
Gambar di atas adalah penguat arus untuk motor DC dengan metode H bridge.
Gambar di atas adalah penguat arus untuk motor DC dengan metode H bridge.
Untuk mengetahui cara kerja rangkaian, lakukan percobaan di atas sekali lagi
Untuk mengetahui cara kerja rangkaian, lakukan percobaan di atas sekali lagi
dan isilah tabel berikut:
arah
arah
data
data
ARAH
ARAH GERAKAN
GERAKAN
MOTOR
MOTOR
KECEPATAN
KECEPATAN
MOTOR
MOTOR
0
0
0
0
0
10
0
10
0
20
0
20
0
30
0
30
0
40
0
40
0
50
0
50
0
60
0
60
0
70
0
70
0
80
0
80
0
90
0
90
0
100
0
100
0
110
0
110
0
120
0
120
0
130
0
130
0
140
0
140
0
150
0
150
0
160
0
160
0
170
0
170
0
180
0
180
0
190
0
190
0
200
0
200
0
210
0
210
0
220
0
220
0
230
0
230
0
240
0
240
0
250
0
250
Arah
Arah
data
data
ARAH
ARAH GERAKAN
GERAKAN
MOTOR
MOTOR
KECEPATAN
KECEPATAN
MOTOR
MOTOR
3
3
0
0
3
10
3
10
3
20
3
20
3
30
3
30
3
40
3
40
3
50
3
50
3
60
3
60
3
70
3
70
3
80
3
80
3
90
3
90
3
100
3
100
3
110
3
110
3
120
3
120
3
130
3
130
3
140
3
140
3
150
3
150
3
160
3
160
3
170
3
170
3
180
3
180
3
190
3
190
3
200
3
200
3
210
3
210
3
220
3
220
3
230
3
230
3
240
3
240
3
250
3
250
Untuk menghen
Untuk menghentikan gerakan motor, arah = 1
tikan gerakan motor, arah = 1 atau 2.
atau 2.
Driver Motor Stepper
Driver Motor Stepper
gambar 9.5. Driver motor stepper
gambar 9.5. Driver motor stepper
Gambar di atas adalah driver motor stepper IN CHIP ULN 2803.
Gambar di atas adalah driver motor stepper IN CHIP ULN 2803.
dimana di dalamnya terdapat deretan transistor penguat arus sekaligus
dimana di dalamnya terdapat deretan transistor penguat arus sekaligus
berfungsi
berfungsi sebagai
sebagai INVERTER.
INVERTER. Jadi
Jadi data
data yang
yang dikirim
dikirim harus
harus ber
ber
KOMPLEMEN dengan data motor stepper.
KOMPLEMEN dengan data motor stepper.
Kecepatan motor stepper hanya bisa diatur dengan delay ( penundaan
Kecepatan motor stepper hanya bisa diatur dengan delay ( penundaan
waktu ) antara data sebelum dan sesudahnya.
waktu ) antara data sebelum dan sesudahnya.
Contoh program 1:
Contoh program 1:
DATA
DATA
D3
D3
D2
D2
D1
D1
D0
D0
14
14
1
1
1
1
1
1
0
0
CODE_SEG
CODE_SEG SEGMENT SEGMENT ; ; code_seg code_seg sebagai sebagai segmentsegment ASSUME CS:COD
ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CE_SEG,DS:CODE_SEG,SS:CODE_SEGODE_SEG ORG
ORG 100H 100H ; ; program program ditulis ditulis mulai mulai origin origin 100h100h start:
start: jmp jmp mulai mulai ; ; Awal Awal program program pada pada Org Org 0100H0100H porta
porta equ equ 00h 00h ; ; Menentukan Menentukan alamat alamat port port A,B,CA,B,C portb
portb equ equ 01h 01h ; ; dan dan ctrlword ctrlword sesuai sesuai dengandengan portc
portc equ equ 02h 02h ; ; hardwarenyahardwarenya cw
cw equ equ 03h03h mulai:
mulai:
mov
mov al,80h al,80h ; ; init init ppippi mov
mov dx,cw dx,cw ; ; 80H 80H MODE MODE = = 00 out
out dx,al dx,al ; ; port port ABC ABC = = outputoutput putar:
putar:
mov
mov al,14 al,14 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,13 al,13 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,11 al,11 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov al,7
mov al,7 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay jmp jmp putarputar delay
delay proc proc near near ; ; Procedure Procedure delaydelay push
push cx cx ; ; simpan simpan cxcx mov
mov cx,0ffffh cx,0ffffh ; ; isi isi cx cx dengan dengan lama lama delaydelay loop
loop $ $ ; ; loopng loopng sampai sampai cx=0cx=0 pop cx
pop cx ; ; keluarkan keluarkan cxcx ret
ret ; ; kembali kembali ke ke program program utamautama delay
delay endp endp ; ; akhir akhir procedure procedure delaydelay
ORG
ORG 20F0H 20F0H ; ; alamat alamat yang yang dituju dituju setelah setelah resetreset DB
DW
DW 0100H 0100H ; ; alamat alamat offset offset 0100h0100h DW
DW 0FDF0H 0FDF0H ; ; alamat alamat segmen segmen 0FDFh0FDFh CODE_SEG
CODE_SEG ENDS ENDS ; ; batas batas segment segment code_segcode_seg END
END START START ; ; akhir akhir programprogram
Pertanyaan :
Pertanyaan :
Kemanakan arah pergerakan dari motor stepper
Kemanakan arah pergerakan dari motor stepper
Gantilah delay, dan amati pergerakannya. Semakin besar delay, semakin
Gantilah delay, dan amati pergerakannya. Semakin besar delay, semakin
... gerakan stepper dan semakin kecil delay, semakin
... gerakan stepper dan semakin kecil delay, semakin
...
... gerakan
... gerakan steppernya
steppernya
DATA
DATA
D3
D3
D2
D2
D1
D1
D0
D0
7
7
0
0
1
1
1
1
1
1
11
11
1
1
0
0
1
1
1
1
13
13
1
1
1
1
0
0
1
1
14
14
1
1
1
1
1
1
0
0
Contoh program 2:
Contoh program 2:
CODE_SEGCODE_SEG SEGMENT SEGMENT ; ; code_seg code_seg sebagai sebagai segmentsegment ASSUME CS:COD
ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CE_SEG,DS:CODE_SEG,SS:CODE_SEGODE_SEG ORG
ORG 100H 100H ; ; program program ditulis ditulis mulai mulai origin origin 100h100h start:
start: jmp jmp mulai mulai ; ; Awal Awal program program pada pada Org Org 0100H0100H porta
porta equ equ 00h 00h ; ; Menentukan Menentukan alamat alamat port port A,B,CA,B,C portb
portb equ equ 01h 01h ; ; dan dan ctrlword ctrlword sesuai sesuai dengandengan portc
mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,11 al,11 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,13 al,13 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,14 al,14 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay jmp jmp putarputar delay
delay proc proc near near ; ; Procedure Procedure delaydelay push
push cx cx ; ; simpan simpan cxcx mov
mov cx,0ffffh cx,0ffffh ; ; isi isi cx cx dengan dengan lama lama delaydelay loop
loop $ $ ; ; loopng loopng sampai sampai cx=0cx=0 pop cx
pop cx ; ; keluarkan keluarkan cxcx ret
ret ; ; kembali kembali ke ke program program utamautama delay
delay endp endp ; ; akhir akhir procedure procedure delaydelay
ORG
ORG 20F0H 20F0H ; ; alamat alamat yang yang dituju dituju setelah setelah resetreset DB
DB 0EAH 0EAH ; ; JMP JMP reset reset keke DW
DW 0100H 0100H ; ; alamat alamat offset offset 0100h0100h DW
DW 0FDF0H 0FDF0H ; ; alamat alamat segmen segmen 0FDFh0FDFh CODE_SEG
CODE_SEG ENDS ENDS ; ; batas batas segment segment code_segcode_seg END
END START START ; ; akhir akhir programprogram
Pertanyaan :
Pertanyaan :
Kemanakan arah pergerakan dari motor stepper
Kemanakan arah pergerakan dari motor stepper
DATA DATA D3 D3 D2 D2 D1 D1 D0D0 14 14 1 1 1 1 1 1 00 12 12 1 1 1 1 0 0 00 13 13 1 1 1 1 0 0 11 9 9 1 1 0 0 0 0 11 11 11 1 1 0 0 1 1 11 3 3 0 0 0 0 1 1 11 7 7 0 0 1 1 1 1 11
Contoh program 3:
Contoh program 3:
CODE_SEGCODE_SEG SEGMENT SEGMENT ; ; code_seg code_seg sebagai sebagai segmentsegment ASSUME CS:COD
ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CE_SEG,DS:CODE_SEG,SS:CODE_SEGODE_SEG ORG
ORG 100H 100H ; ; program program ditulis ditulis mulai mulai origin origin 100h100h start:
start: jmp jmp mulai mulai ; ; Awal Awal program program pada pada Org Org 0100H0100H porta
porta equ equ 00h 00h ; ; Menentukan Menentukan alamat alamat port port A,B,CA,B,C portb
portb equ equ 01h 01h ; ; dan dan ctrlword ctrlword sesuai sesuai dengandengan portc
portc equ equ 02h 02h ; ; hardwarenyahardwarenya cw
cw equ equ 03h03h mulai:
mulai:
mov
mov al,80h al,80h ; ; init init ppippi mov
mov dx,cw dx,cw ; ; 80H 80H MODE MODE = = 00 out
out dx,al dx,al ; ; port port ABC ABC = = outputoutput putar:
putar:
mov
mov al,14 al,14 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,12 al,12 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,13 al,13 ; ; data data stepperstepper mov dx,porta
out dx,al out dx,al call delay call delay mov al,3
mov al,3 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov al,7
mov al,7 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay jmp jmp putarputar delay
delay proc proc near near ; ; Procedure Procedure delaydelay push
push cx cx ; ; simpan simpan cxcx mov
mov cx,0ffffh cx,0ffffh ; ; isi isi cx cx dengan dengan lama lama delaydelay loop
loop $ $ ; ; loopng loopng sampai sampai cx=0cx=0 pop cx
pop cx ; ; keluarkan keluarkan cxcx ret
ret ; ; kembali kembali ke ke program program utamautama delay
delay endp endp ; ; akhir akhir procedure procedure delaydelay
ORG
ORG 20F0H 20F0H ; ; alamat alamat yang yang dituju dituju setelah setelah resetreset DB
DB 0EAH 0EAH ; ; JMP JMP reset reset keke DW
DW 0100H 0100H ; ; alamat alamat offset offset 0100h0100h DW
DW 0FDF0H 0FDF0H ; ; alamat alamat segmen segmen 0FDFh0FDFh CODE_SEG
CODE_SEG ENDS ENDS ; ; batas batas segment segment code_segcode_seg END
END START START ; ; akhir akhir programprogram
Pertanyaan :
Pertanyaan :
Kemanakan arah pergerakan dari motor stepper
Kemanakan arah pergerakan dari motor stepper
Perbedaan apa yang anda peroleh dibandingkan dengan program 1
Perbedaan apa yang anda peroleh dibandingkan dengan program 1
DATA DATA D3 D3 D2 D2 D1 D1 D0D0 7 7 0 0 1 1 1 1 11 3 3 0 0 0 0 1 1 11 11 11 1 1 0 0 1 1 11 9 9 1 1 0 0 0 0 11 13 13 1 1 1 1 0 0 11 12 12 1 1 1 1 0 0 00 14 14 1 1 1 1 1 1 00
Contoh program 4:
Contoh program 4:
CODE_SEGCODE_SEG SEGMENT SEGMENT ; ; code_seg code_seg sebagai sebagai segmentsegment ASSUME CS:COD
ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CE_SEG,DS:CODE_SEG,SS:CODE_SEGODE_SEG ORG
ORG 100H 100H ; ; program program ditulis ditulis mulai mulai origin origin 100h100h start:
start: jmp jmp mulai mulai ; ; Awal Awal program program pada pada Org Org 0100H0100H porta
porta equ equ 00h 00h ; ; Menentukan Menentukan alamat alamat port port A,B,CA,B,C portb
portb equ equ 01h 01h ; ; dan dan ctrlword ctrlword sesuai sesuai dengandengan portc
portc equ equ 02h 02h ; ; hardwarenyahardwarenya cw
cw equ equ 03h03h mulai:
mulai:
mov
mov al,80h al,80h ; ; init init ppippi mov
mov dx,cw dx,cw ; ; 80H 80H MODE MODE = = 00 out
out dx,al dx,al ; ; port port ABC ABC = = outputoutput putar:
putar:
mov al,7
mov al,7 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov al,3
mov al,3 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,11 al,11 ; ; data data stepperstepper mov dx,porta
out dx,al out dx,al call delay call delay mov
mov al,12 al,12 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay mov
mov al,14 al,14 ; ; data data stepperstepper mov dx,porta mov dx,porta out dx,al out dx,al call delay call delay jmp jmp putarputar delay
delay proc proc near near ; ; Procedure Procedure delaydelay push
push cx cx ; ; simpan simpan cxcx mov
mov cx,0ffffh cx,0ffffh ; ; isi isi cx cx dengan dengan lama lama delaydelay loop
loop $ $ ; ; loopng loopng sampai sampai cx=0cx=0 pop cx
pop cx ; ; keluarkan keluarkan cxcx ret
ret ; ; kembali kembali ke ke program program utamautama delay
delay endp endp ; ; akhir akhir procedure procedure delaydelay
ORG
ORG 20F0H 20F0H ; ; alamat alamat yang yang dituju dituju setelah setelah resetreset DB
DB 0EAH 0EAH ; ; JMP JMP reset reset keke DW
DW 0100H 0100H ; ; alamat alamat offset offset 0100h0100h DW
DW 0FDF0H 0FDF0H ; ; alamat alamat segmen segmen 0FDFh0FDFh CODE_SEG
CODE_SEG ENDS ENDS ; ; batas batas segment segment code_segcode_seg END
END START START ; ; akhir akhir programprogram