Skocz do zawartości

[Bascom] Program linefollower


DaZ

Pomocna odpowiedź

Witam.

Buduje robota z tego artykułu lecz chciałbym zwiększyć ilość czujników do 5, i prosiłbym aby ktoś sprawdził program

                                                
$regfile = "m8def.dat"
$crystal = 1000000

'Konfiguracja przetwornika analog-cyfra (ADC)
Config Adc = Single , Prescaler = Auto

'Konfiguracja sterowania sprzętowym PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

'Konfiguracja portów
Config Portd = Output
Config Portb = Output

'Opis portów
'Enable1 - Silnik lewy - Portb.1 (PWM1A)
'Enable2 - Silnik prawy - portb.2 (PWM1B)
'Input1 - Silnik lewy A - Portd.3
'Input2 - Silnik lewy B - Portd.2
'Input4 - Silnik prawy A - Portd.0
'Input3 - Silnik prawy B - Portd.1
'Dioda - Portd.6
'Czujnik lewy skrajny - ADC1
'Czujnik lewy - ADC2
'Czujnik środkowy - ADC3
'Czujnik prawy - ADC4
'Czujnik prawy skrajny - ADC5

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

'Granica reagowania na linię - należy dobrać doświadczalnie
Const Granica = 500

'Deklaracje zmiennych
Dim Czujnik_lewy_skrajny As Single
Dim Czujnik_lewy As Single
Dim Czujnik_srodkowy As Single
Dim Czujnik_prawy As Single
Dim Czujnik_prawy_skrajny As Single
Dim W As Word

'Blok instrukcji
Set Dioda
Set Silnik_lewy_a
Reset Silnik_lewy_b
Set Silnik_prawy_a
Reset Silnik_prawy_b

Do
  Gosub Wczytaj_stany_przetwornikow
  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 = 125
     Pwm1b = 255
  Elseif Czujnik_lewy_skrajny > Granica Then
     Pwm1a = 0
     Pwm1b = 255
  Elseif Czujnik_prawy > Granica Then
     Pwm1a = 255
     Pwm1b = 125
  Elseif Czujnik_prawy_skrajny > Granica Then
     Pwm1a = 255
     Pwm1b = 0
  Else
     Pwm1a = 255
     Pwm1b = 255
  End If
Loop
End

Wczytaj_stany_przetwornikow:
Start Adc
W = Getadc(5)
W = Getadc(5)
Stop Adc
Czujnik_lewy = W
Start Adc
W = Getadc(4)
W = Getadc(4)
Stop Adc
Czujnik_srodkowy = W
Start Adc
W = Getadc(3)
W = Getadc(3)
Stop Adc
Czujnik_prawy = W
Return

Jest jeszcze taki problem, że nie wiem co trzeba zmienić w "Wczytaj_stany_przetwornikow:"

Link do komentarza
Share on other sites

DaZ w Sub'ie Wczytaj_stany_przetwonikow należy dodać obsługę kolejnych dwóch kanałów ADC (tych, pod które masz podłączone czujniki). Chodzi o te linijki:

Start Adc 
W = Getadc(3) 
W = Getadc(3) 
Stop Adc 
Czujnik_prawy_skrajny = W 
Start Adc 
W = Getadc(3) 
W = Getadc(3) 
Stop Adc 
Czujnik_lewy_skrajny = W 
  • Lubię! 1
Link do komentarza
Share on other sites

Czyli będzie coś takiego?

Wczytaj_stany_przetwornikow:
Start Adc
W = Getadc(5)
W = Getadc(5)
Stop Adc
Czujnik_prawy_skrajny = W
Start Adc
W = Getadc(4)
W = Getadc(4)
Stop Adc
Czujnik_srodkowy = W
Start Adc
W = Getadc(3)
W = Getadc(3)
Stop Adc
Czujnik_lewy = W
Start Adc
W = Getadc(2)
W = Getadc(2)
Stop Adc
Czujnik_lewy_skrajny = W
Start Adc
W = Getadc(1)
W = Getadc(1)
Czujnik_prawy = W
Return
Link do komentarza
Share on other sites

Natanoj, ok dam znać, tylko że robota dopiero zaczynam robić i trochę zajmie mi to czasu ze względu że mam teraz dużo obowiązków. Ten kod Trekera dobra sprawa jeszcze się nad nim zastanowię.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.