Rutin tunda dengan perintah
call tunda_step
merupakan lama waktu perputaran motor untuk satu step atau langkah. Berikut adalah program rutin tunda
yang digunakan:
tunda_step: Mov r7,25
tnd_step: Mov r6,100
Djnz r6, Djnz r7, tnd_step
Ret
Perintah
Mov r6,100 dan
Mov r7,25 masing masing
terdiri dari 2 siklus mesin. Perintah
djnz
juga terdiri dari 2 siklus mesin. Sedangkan perintah
ret
terdiri dari 1 siklus mesin . Perintah
Djnz r6,
maksudnya adalah, mengurangi nilai pada
r6
sampai bernilai 0, berarti perintah
djnz r6,
pada program di atas dilakukan sebanyak 100 kali, atau 100 x 2 = 200
μd. Setelah nilai r6 bernilai 0 maka nilai pada r7 berkurang 1 nilai karena adanya perintah
djnz r7,
kemudian program akan kembali mengurangi nilai pada r6 sampai bernilai 0 kembali ke
tunda_step
sehingga perintah ini dilakukan sebanyak 25 kali. Dengan demikian dapat diketahui
hasilnya adalah 200 x 25 = 5000
μd
. Hasil dari perkalian ini kemudian ditambahkan dengan 5 siklus berikutnya
mov r6
= 2 siklus,
mov r7
= 2 siklus, dan
ret
= 1 siklus sehingga hasil akhir didapatkan 5000 + 5 = 5005
μd
. Jadi waktu tunda yang diberikan untuk satu step adalah 5005
μd
atau 0,005detik
b. Menentukan Kecepatan Motor Stepper
Untuk mengetahui kecepatan motor stepper adalah dengan mengatur selang waktu perputaran satu step. Dengan memberikan pulsa digital 5 ms pada 1 step, maka
pulsa yang diberikan selama 1 detik:
d x
pulsa md
pulsa
3
10 5
1 5
1
−
=
ik pulsa det
200 =
Universitas Sumatera Utara
atau diperoleh 200 pulsa dalam 1 detik 200 pps, maka berdasarkan persamaan 2.7 kecepatan putar yang diperoleh:
rpm pps
x 60
200 200
60 =
=
ω ω
c. Menentukan besar sudut perputaran untuk masing- masing wadah
Setelah sensor membandingkan dan mengenal warna bola sesuai data yang diperoleh, maka bola dipisahkan pada wadah yang disiapkan. Keseluruhan wadah
diposisikan melingkar diatas alas wadah- wadah. Posisi wadah masing- masing diatur dengan jarak sudut 75
pada setiap wadah dengan jari- jari 10cm atau 0,01m terhadap sumbu putar wadah.
1. Untuk wadah bola berwarna hitam, posisi wadah tepat dibawah sensor dan
ditetapkan sebagai posisi awal sebagai 0 . Sehingga setelah warna bola hitam
dikenali, dapat langsung dilepaskan atau ditempatkan pada wadah tersebut.
2. Untuk wadah berwarna merah motor stepper diputar searah jarum jam sejauh
72 dari posisi awal. Sehingga untuk menggerakkan wadah berwarna merah
diberikan 727,5 = 9,8 atau 10 step perputaran motor stepper dimana diketahui 1 step memiliki sudut 7,2
. Untuk 1 step diberikan 1 pulsa, maka untuk 10 step diberikan 10 pulsa. Sehingga program yang diisikan pada mikrokontroler
adalah:
Wadah_merah: Mov R0,10
Loop_m: acall putar_kanan
Djnz r0,Loop_m ret
3. Untuk wadah berwarna kuning motor stepper diputar searah jarum jam sejauh
144 dari posisi awal. Sehingga untuk menggerakkan wadah berwarna kuning
diberikan 1447,5 = 19,2 atau 20 step perputaran motor stepper. Untuk 1 step
Universitas Sumatera Utara
diberikan 1 pulsa, maka untuk 20 step diberikan 20 pulsa. Sehingga program yang diisikan pada mikrokontroler adalah:
Wadah_kuning: Mov R0,20
Loop_k: acall putar_kanan
Djnz r0,Loop_k ret
4. Untuk wadah berwarna hijau motor stepper diputar searah jarum jam sejauh
216 dari posisi awal. Sehingga untuk menggerakkan wadah berwarna hijau
diberikan 2167,5 = 28.8 atau 29 step perputaran motor. Maka untuk 29 step diberikan 29 pulsa. Sehingga program yang diisikan pada mikrokontroler
adalah:
Wadah_hijau: Mov R0,29
Loop_h: acall putar_kanan
Djnz r0,Loop_h ret
5. Untuk wadah berwarna biru motor stepper diputar searah jarum jam sejauh
288 dari posisi awal. Sehingga untuk menggerakkan wadah berwarna biru
diberikan 2887,5 = 38,4 atau 39 step perputaran motor stepper. Maka untuk 39 step diberikan 39 pulsa. Sehingga program yang diisikan pada
mikrokontroler adalah:
Wadah_biru: Mov R0,39
Loop_b: acall putar_kanan
Djnz r0,Loop_b ret
Universitas Sumatera Utara
d. Menentukan beban maksimum yang dapat digerakkan motor stepper