Witam,
Mam już nadzieję że temat w odpowiednim miejscu
Zamierzam zrobić robota, który będzie omijał przeszkody. Mój problem polega na jednym warunku. Oto program:
Chodzi mi głównie o warunek:
Pierwsze ten warunek napisałem tak:
ale kompilator pokazywał błąd w tej linii więc zamieniłem & na And
Czy po wpisaniu Kod:
warunek będzie działał jak należy? czyli gdy na czujniku prawym wartość będzie mniejsza niż stała Granica i gdy na czujniku lewym wartość będzie mniejsza niż stała Granica wtedy będą podejmowane działania czyli w tym przypadku włączą się w obu serwach tylne obroty?
Mam już nadzieję że temat w odpowiednim miejscu
$regfile = "m8def.dat"
$crystal = 1000000
Config Adc = Single , Prescaler = Auto
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Portd = Output
Config Portb = Output
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
Dim Czujnik_prawy As Single
Dim Czujnik_lewy As Single
Dim W As Word
Set Dioda
Reset Silnik_lewy_a
Reset Silnik_lewy_b
Reset Silnik_prawy_a
Reset Silnik_prawy_b
Do
Gosub Wczytaj_stany
If Czujnik_prawy < Granica And Czujnik_lewy < Granica Then
Pwm1a = 255
Pwm1b = 255
Silnik_lewy_b = 1
Silnik_prawy_b = 1
Waitms 500
Pwm1a = 255
Pwm1b = 0
Silnik_lewy_b = 0
Silnik_prawy_b = 0
Silnik_lewy_a = 1
Waitms 500
Elseif Czujnik_prawy < Granica Then
Silnik_lewy_b = 1
Pwm1a = 255
Elseif Czujnik_lewy < Granica Then
Silnik_lewy_b = 0
Silnik_prawy_b = 1
Pwm1a = 0
Pwm1b = 255
Else
Silnik_lewy_a = 1
Silnik_lewy_b = 0
Silnik_prawy_a = 1
Silnik_prawy_b = 0
Pwm1a = 255
Pwm1b = 255
End If
Loop
End
Wczytaj_stany:
Start Adc
W = Getadc(5)
W = Getadc(5)
Stop Adc
Czujnik_lewy = W
Start Adc
W = Getadc(3)
W = Getadc(3)
Stop Adc
Czujnik_prawy = W
Return Chodzi mi głównie o warunek:
If Czujnik_prawy < Granica And Czujnik_lewy < Granica Then Pierwsze ten warunek napisałem tak:
If Czujnik_prawy < Granica & Czujnik_lewy < Granica Then ale kompilator pokazywał błąd w tej linii więc zamieniłem & na And
Czy po wpisaniu Kod:
And warunek będzie działał jak należy? czyli gdy na czujniku prawym wartość będzie mniejsza niż stała Granica i gdy na czujniku lewym wartość będzie mniejsza niż stała Granica wtedy będą podejmowane działania czyli w tym przypadku włączą się w obu serwach tylne obroty?
