Advertisement
Guest User

LFR4 pake PWM

a guest
Jun 21st, 2018
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ' -----------------------------------------------
  2. ' Programmer  : Taufiq D.S. Suyadhi
  3. ' Teknik      : Pengendalian ON/OFF dengan PWM
  4. ' Company     : CH electronics
  5. ' Website     : www.circuits-home.com
  6. '------------------------------------------------
  7. $regfile = "m32def.dat"
  8. $crystal = 12000000
  9.  
  10. Dim Sensor As Byte
  11.  
  12. Config Porta = Input
  13. Config Portc = Output
  14. Config Portd = Output
  15. Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
  16.  
  17. Motor1 Alias Portc.0                       ' motor kanan
  18. Motor2 Alias Portc.1
  19.  
  20. Motor3 Alias Portc.2                       ' motor kiri
  21. Motor4 Alias Portc.3
  22.  
  23. 'prototype sub-rutin
  24. '--------------------
  25. Declare Sub Pwm(byval Kiri As Integer , Byval Kanan As Integer)
  26. Declare Sub Maju()
  27. Declare Sub Terus()
  28. Declare Sub Kiri1()
  29. Declare Sub Kiri2()
  30. Declare Sub Kiri3()
  31. Declare Sub Kanan1()
  32. Declare Sub Kanan2()
  33. Declare Sub Kanan3()
  34. Declare Sub Mundur()
  35. Declare Sub Lanjut()
  36.  
  37. 'Program utama
  38. '-------------
  39. Do
  40.    Sensor = Pina
  41.    Select Case Sensor
  42.       Case &B00000000 : Call Terus()
  43.       Case &B11100111 : Call Maju()
  44.       Case &B11110111 : Call Terus()
  45.       Case &B11110011 : Call Lanjut()
  46.       Case &B11111011 : Call Lanjut()
  47.       Case &B11111001 : Call Kanan1()
  48.       Case &B11111101 : Call Kanan1()
  49.       Case &B11111100 : Call Kanan2()
  50.       Case &B11111110 : Call Kanan3()
  51.       Case &B11111000 : Call Kanan2()
  52.       Case &B11110000 : Call Kanan2()
  53.       Case &B11100000 : Call Kanan2()
  54.       Case &B11101111 : Call Terus()
  55.       Case &B11001111 : Call Lanjut()
  56.       Case &B11011111 : Call Lanjut()
  57.       Case &B10011111 : Call Kiri1()
  58.       Case &B10111111 : Call Kiri1()
  59.       Case &B00111111 : Call Kiri2()
  60.       Case &B01111111 : Call Kiri3()
  61.       Case &B00011111 : Call Kiri2()
  62.       Case &B00001111 : Call Kiri2()
  63.       Case &B00000111 : Call Kiri2()
  64.       Case &B11111111 : Call Mundur()
  65.       Case &B10001111 : Call Lanjut()
  66.       Case &B11000111 : Call Lanjut()
  67.       Case &B11100011 : Call Lanjut()
  68.       Case &B11110001 : Call Lanjut()
  69.       Case &B10000111 : Call Lanjut()
  70.       Case &B11000011 : Call Lanjut()
  71.       Case &B11100001 : Call Lanjut()
  72.       Case &B10000011 : Call Lanjut()
  73.       Case &B11000001 : Call Lanjut()
  74.    End Select
  75. Loop
  76. End
  77.  
  78. '---------------------------------
  79. Sub Maju()
  80.       Motor1 = 0
  81.       Motor2 = 1
  82.       Motor3 = 0
  83.       Motor4 = 1
  84.       Call Pwm(130 , 130)
  85. End Sub
  86.  
  87. '----------------------------------
  88. Sub Terus()
  89.       Motor1 = 0
  90.       Motor2 = 1
  91.       Motor3 = 0
  92.       Motor4 = 1
  93.       Call Pwm(150 , 150)
  94. End Sub
  95.  
  96. '----------------------------------
  97. Sub Lanjut()
  98.       Motor1 = 0
  99.       Motor2 = 1
  100.       Motor3 = 0
  101.       Motor4 = 1
  102.       Call Pwm(160 , 160)
  103. End Sub
  104.  
  105. '----------------------------------
  106. Sub Mundur()
  107.       Motor1 = 1
  108.       Motor2 = 0
  109.       Motor3 = 1
  110.       Motor4 = 0
  111.       Call Pwm(150 , 150)
  112. End Sub
  113.  
  114. '------------>>RIGHT<<-------------
  115. Sub Kanan1()
  116.       Motor1 = 0
  117.       Motor2 = 1
  118.       Motor3 = 0
  119.       Motor4 = 1
  120.       Call Pwm(160 , 180)
  121. End Sub
  122.  
  123. '----------------------------------
  124. Sub Kanan2()
  125.       Motor1 = 0
  126.       Motor2 = 1
  127.       Motor3 = 0
  128.       Motor4 = 1
  129.       Call Pwm(150 , 255)
  130. End Sub
  131.  
  132. '----------------------------------
  133. Sub Kanan3()
  134.       Motor1 = 0
  135.       Motor2 = 1
  136.       Motor3 = 0
  137.       Motor4 = 1
  138.       Call Pwm(30 , 255)
  139. End Sub
  140.  
  141. '------------>>LEFT<<--------------
  142. Sub Kiri1()
  143.       Motor1 = 0
  144.       Motor2 = 1
  145.       Motor3 = 0
  146.       Motor4 = 1
  147.       Call Pwm(180 , 160)
  148. End Sub
  149.  
  150. '----------------------------------
  151. Sub Kiri2()
  152.       Motor1 = 0
  153.       Motor2 = 1
  154.       Motor3 = 0
  155.       Motor4 = 1
  156.       Call Pwm(255 , 150)
  157. End Sub
  158.  
  159. '----------------------------------
  160. Sub Kiri3()
  161.       Motor1 = 0
  162.       Motor2 = 1
  163.       Motor3 = 0
  164.       Motor4 = 1
  165.       Call Pwm(255 , 30)
  166. End Sub
  167.  
  168. '-------Sub-rutin PWM---------------
  169. Sub Pwm(byval Kiri As Integer , Byval Kanan As Integer)
  170.    Pwm1a = Kiri                          ' PORTD.5 (OC1A)
  171.    Pwm1b = Kanan                         ' PORTD.4 (OC1B)
  172. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement