Advertisement
kamilnowinski

Robot - Line Follower

Nov 12th, 2011
1,168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ' Line Follower na 3 TSOP'ach bez sterowania Pwm
  2. ' by Kamil Nowinski
  3.  
  4. $regfile = "m8def.dat"                         ' uC - ATMEGA8
  5. $crystal = 1000000                             ' taktowanie 1MHz
  6.  
  7. Config PORTD = Output
  8. Config PORTB = Output
  9. Config ADC = Single, Prescaler = Auto, Reference = Avcc
  10. Config Timer1 = Pwm , Pwm = 8, Prescale = 1 , Compare A Pwm = Clear Down ,
  11. Compare B Pwm = Clear Down
  12.  
  13. Silnik_lewy_a Alias Portd.3
  14. Silnik_lewy_b Alias Portd.2
  15. Silnik_prawy_b Alias Portd.0
  16. Silnik_prawy_a Alias Portd.1
  17. Dioda Alias Portd.6
  18.  
  19. Const Granica = 500                            ' dobrac doswiadczalnie
  20.  
  21.  
  22. Dim Czujnik_lewy As Single
  23. Dim Czujnik_srodkowy As Single
  24. Dim Czujnik_prawy As Single
  25. Dim P As Word
  26.  
  27. Set Dioda
  28. Set Silnik_lewy_a
  29. Reset Silnik_lewy_b
  30. Set Silnik_prawy_a
  31. Reset Silnik_prawy_b
  32.  
  33.  
  34. Do
  35.    Gosub wczytaj
  36.    If Czujnik_srodkowy > Granica Then
  37.       'Silnik lewy - maksymalna prędkość
  38.       Pwm1a = 255
  39.       'Silnik prawy - maksymalna prędkość
  40.       Pwm1b = 255
  41.    Elseif Czujnik_lewy > Granica Then
  42.       Pwm1a = 0
  43.       Pwm1b = 255
  44.    Elseif Czujnik_prawy > Granica Then
  45.       Pwm1a = 255
  46.       Pwm1b = 0
  47.    Else
  48.       Pwm1a = 255
  49.       Pwm1b = 255
  50.    End If
  51. Loop
  52. End
  53.  
  54. wczytaj:
  55. Start Adc
  56. W = Getadc(5)
  57. W = Getadc(5)
  58. Stop Adc
  59. Czujnik_lewy = P
  60. Start Adc
  61. W = Getadc(4)
  62. W = Getadc(4)
  63. Stop Adc
  64. Czujnik_srodkowy = P
  65. Start Adc
  66. W = Getadc(3)
  67. W = Getadc(3)
  68. Stop Adc
  69. Czujnik_prawy = P
  70. Return
  71.  
  72.  
  73. 'jesli nie uzywasz aliasow przy warunkach stawiaj If Pinx.y = a then ... gdzie x to PORT, a Y jego numer
  74. ' a przy instrukcjach przypisania (po then) stawiaj PORTx.y
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement