Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' -----------------------------------------------
- ' Programmer : Taufiq D.S. Suyadhi
- ' Teknik : Pengendalian ON/OFF dengan 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
- Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
- Motor1 Alias Portc.0 ' motor kanan
- Motor2 Alias Portc.1
- Motor3 Alias Portc.2 ' motor kiri
- Motor4 Alias Portc.3
- 'prototype sub-rutin
- '--------------------
- Declare Sub Pwm(byval Kiri As Integer , Byval Kanan As Integer)
- Declare Sub Maju()
- Declare Sub Terus()
- Declare Sub Kiri1()
- Declare Sub Kiri2()
- Declare Sub Kiri3()
- Declare Sub Kanan1()
- Declare Sub Kanan2()
- Declare Sub Kanan3()
- Declare Sub Mundur()
- Declare Sub Lanjut()
- 'Program utama
- '-------------
- Do
- Sensor = Pina
- Select Case Sensor
- Case &B00000000 : Call Terus()
- Case &B11100111 : Call Maju()
- Case &B11110111 : Call Terus()
- Case &B11110011 : Call Lanjut()
- Case &B11111011 : Call Lanjut()
- Case &B11111001 : Call Kanan1()
- Case &B11111101 : Call Kanan1()
- Case &B11111100 : Call Kanan2()
- Case &B11111110 : Call Kanan3()
- Case &B11111000 : Call Kanan2()
- Case &B11110000 : Call Kanan2()
- Case &B11100000 : Call Kanan2()
- Case &B11101111 : Call Terus()
- Case &B11001111 : Call Lanjut()
- Case &B11011111 : Call Lanjut()
- Case &B10011111 : Call Kiri1()
- Case &B10111111 : Call Kiri1()
- Case &B00111111 : Call Kiri2()
- Case &B01111111 : Call Kiri3()
- Case &B00011111 : Call Kiri2()
- Case &B00001111 : Call Kiri2()
- Case &B00000111 : Call Kiri2()
- Case &B11111111 : Call Mundur()
- Case &B10001111 : Call Lanjut()
- Case &B11000111 : Call Lanjut()
- Case &B11100011 : Call Lanjut()
- Case &B11110001 : Call Lanjut()
- Case &B10000111 : Call Lanjut()
- Case &B11000011 : Call Lanjut()
- Case &B11100001 : Call Lanjut()
- Case &B10000011 : Call Lanjut()
- Case &B11000001 : Call Lanjut()
- End Select
- Loop
- End
- '---------------------------------
- Sub Maju()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(130 , 130)
- End Sub
- '----------------------------------
- Sub Terus()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(150 , 150)
- End Sub
- '----------------------------------
- Sub Lanjut()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(160 , 160)
- End Sub
- '----------------------------------
- Sub Mundur()
- Motor1 = 1
- Motor2 = 0
- Motor3 = 1
- Motor4 = 0
- Call Pwm(150 , 150)
- End Sub
- '------------>>RIGHT<<-------------
- Sub Kanan1()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(160 , 180)
- End Sub
- '----------------------------------
- Sub Kanan2()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(150 , 255)
- End Sub
- '----------------------------------
- Sub Kanan3()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(30 , 255)
- End Sub
- '------------>>LEFT<<--------------
- Sub Kiri1()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(180 , 160)
- End Sub
- '----------------------------------
- Sub Kiri2()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(255 , 150)
- End Sub
- '----------------------------------
- Sub Kiri3()
- Motor1 = 0
- Motor2 = 1
- Motor3 = 0
- Motor4 = 1
- Call Pwm(255 , 30)
- End Sub
- '-------Sub-rutin PWM---------------
- Sub Pwm(byval Kiri As Integer , Byval Kanan As Integer)
- Pwm1a = Kiri ' PORTD.5 (OC1A)
- Pwm1b = Kanan ' PORTD.4 (OC1B)
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement