Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' Line Follower na 3 TSOP'ach bez sterowania Pwm
- ' by Kamil Nowinski
- $regfile = "m8def.dat" ' uC - ATMEGA8
- $crystal = 1000000 ' taktowanie 1MHz
- Config PORTD = Output
- Config PORTB = Output
- Config ADC = Single, Prescaler = Auto, Reference = Avcc
- Config Timer1 = Pwm , Pwm = 8, Prescale = 1 , Compare A Pwm = Clear Down ,
- Compare B Pwm = Clear Down
- Silnik_lewy_a Alias Portd.3
- Silnik_lewy_b Alias Portd.2
- Silnik_prawy_b Alias Portd.0
- Silnik_prawy_a Alias Portd.1
- Dioda Alias Portd.6
- Const Granica = 500 ' dobrac doswiadczalnie
- Dim Czujnik_lewy As Single
- Dim Czujnik_srodkowy As Single
- Dim Czujnik_prawy As Single
- Dim P As Word
- Set Dioda
- Set Silnik_lewy_a
- Reset Silnik_lewy_b
- Set Silnik_prawy_a
- Reset Silnik_prawy_b
- Do
- Gosub wczytaj
- If Czujnik_srodkowy > Granica Then
- 'Silnik lewy - maksymalna prędkość
- Pwm1a = 255
- 'Silnik prawy - maksymalna prędkość
- Pwm1b = 255
- Elseif Czujnik_lewy > Granica Then
- Pwm1a = 0
- Pwm1b = 255
- Elseif Czujnik_prawy > Granica Then
- Pwm1a = 255
- Pwm1b = 0
- Else
- Pwm1a = 255
- Pwm1b = 255
- End If
- Loop
- End
- wczytaj:
- Start Adc
- W = Getadc(5)
- W = Getadc(5)
- Stop Adc
- Czujnik_lewy = P
- Start Adc
- W = Getadc(4)
- W = Getadc(4)
- Stop Adc
- Czujnik_srodkowy = P
- Start Adc
- W = Getadc(3)
- W = Getadc(3)
- Stop Adc
- Czujnik_prawy = P
- Return
- 'jesli nie uzywasz aliasow przy warunkach stawiaj If Pinx.y = a then ... gdzie x to PORT, a Y jego numer
- ' a przy instrukcjach przypisania (po then) stawiaj PORTx.y
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement