robotics-university.com | Sebagai perbandingan terhadap respon pengendalian robot4 menggunakan teknik pengendalian On/Off dengan pembangkitan sinyal PWM untuk pengaturan putaran motor DC (roda robot), maka dalam kesempatan ini saya berikan contoh program robot4 yang menggunakan teknik pengendalian yang sama, yaitu teknik pengendalian On/Off, namun tanpa membangkitkan sinyal PWM untuk pengaturan kecepatan putar motor DC. Teknik ini memang tidak saya rekomendasikan untuk diterapkan pada robot LF mikro yang akan digunakan untuk mengikuti perlombaan, karena respon pengendaliannya yang sangat kasar.
' -------------------------------------------
' Programmer : Taufiq D.S. Suyadhi
' Teknik : Pengendalian ON/OFF tanpa PWM
' Company : CH electronics
' Website : www.circuits-home.com
'--------------------------------------------
$regfile = "m32def.dat"
$crystal = 12000000
Dim Sensor As Byte
Config Porta = Input
Config Portc = Output
Config Portd = Output
Ena_l298 Alias Portd.5
Motor1 Alias Portc.0 ' motor kanan
Motor2 Alias Portc.1
Enb_l298 Alias Portd.4
Motor3 Alias Portc.2 ' motor kiri
Motor4 Alias Portc.3
'prototype sub-rutin
'--------------------
Declare Sub Maju()
Declare Sub Mundur()
Declare Sub Kanan1()
Declare Sub Kanan2()
Declare Sub Kiri1()
Declare Sub Kiri2()
'Program utama
'-------------
Do
Sensor = Pina
Select Case Sensor
Case &B00000000 : Call Maju()
Case &B11111111 : Call Mundur()
Case &B00000111 : Call Kiri1()
Case &B00001111 : Call Kiri1()
Case &B00011111 : Call Kiri1()
Case &B01111111 : Call Kiri2()
Case &B00111111 : Call Kiri2()
Case &B10111111 : Call Kiri2()
Case &B10011111 : Call Kiri1()
Case &B11011111 : Call Maju()
Case &B11001111 : Call Maju()
Case &B11101111 : Call Maju()
Case &B11100111 : Call Maju()
Case &B11110111 : Call Maju()
Case &B11110011 : Call Maju()
Case &B11111011 : Call Maju()
Case &B11111001 : Call Kanan1()
Case &B11111101 : Call Kanan2()
Case &B11111100 : Call Kanan2()
Case &B11111110 : Call Kanan2()
Case &B11111000 : Call Kanan1()
Case &B11110000 : Call Kanan1()
Case &B11100000 : Call Kanan1()
Case &B10001111 : Call Kiri1()
Case &B11000111 : Call Kiri1()
Case &B11100011 : Call Kanan1()
Case &B11110001 : Call Kanan1()
Case &B10000111 : Call Kiri1()
Case &B11000011 : Call Maju()
Case &B11100001 : Call Kanan1()
Case &B10000011 : Call Kiri1()
Case &B11000001 : Call Kanan1()
End Select
Loop
End
'---------------------------------
Sub Maju()
Ena_l298 = 1
Enb_l298 = 1
Motor1 = 0
Motor2 = 1
Motor3 = 0
Motor4 = 1
End Sub
'----------------------------------
Sub Kanan1()
Ena_l298 = 1
Enb_l298 = 1
Motor1 = 1 ' roda kanan mundur
Motor2 = 0
Motor3 = 0 ' roda kiri maju
Motor4 = 1
End Sub
'----------------------------------
Sub Kanan2()
Ena_l298 = 0
Enb_l298 = 1
Motor1 = 0 ' roda kanan STOP
Motor2 = 0
Motor3 = 0 ' roda kiri maju
Motor4 = 1
End Sub
'----------------------------------
Sub Kiri1()
Ena_l298 = 1
Enb_l298 = 1
Motor1 = 0 ' roda kanan maju
Motor2 = 1
Motor3 = 1
Motor4 = 0 ' roda kiri mundur
End Sub
'----------------------------------
Sub Kiri2()
Ena_l298 = 1
Enb_l298 = 0
Motor1 = 0 ' roda kanan maju
Motor2 = 1
Motor3 = 0
Motor4 = 0 ' roda kiri STOP
End Sub
'----------------------------------
Sub Mundur()
Ena_l298 = 1
Enb_l298 = 1
Motor1 = 1 ' roda kanan mundur
Motor2 = 0
Motor3 = 1 ' roda kiri mundur
Motor4 = 0
End Sub
Saya tidak memberikan penjelasan untuk program ini. Karena inti program ini adalah sama dengan program robot4 yang menggunakan PWM. Perbedaannya hanya pada cara penanganan driver motor DC IC L298 dalam mengaktifkan putaran dan mengatur arah putar motor DC. Silakan membandingkan dan menyermatinya ya! #menikmatiProsesBelajar
0 comments:
Post a Comment