Skocz do zawartości

Problem z zaprogramowaniem linefollowera w Bascomie


Pomocna odpowiedź

Ale teraz dokładniej pomierzyłem i 1 silnik dobrze reaguje gdy czujnik jest na linii to napięcie jest 0v a gdy na podłodze to 4,7v. A gdy ten sam czujnik podłączam do któregoś z 2 pozostałych wyjść to ciągle silnik działa bez różnicy czy na linii czy na podłodze.

I teraz sprawdzam połączenie z 2 silnikiem i czy tranzystor jest sprawy bo zmieniłem z bc337 na bd135.

Wystarczy spojrzeć na schemat i kod źródłowy! Czujnik prawy to pin 7 (PB2), środek to pin 2 (PB3) i lewy to pin 3 (PB4)

A czy ten program był by dobry do tego?

'***** konfiguracja portów *****
$regfile = "attiny13.dat"


Sensor1 Alias Portd.7 Czujnik Lewy
Sensor2 Alias Portd.3 Czujnik Srodkowy
Sensor3 Alias Portd.2 Czunik Prawy

Config Pinb.5 = Output
Config Pinb.6 = Output

Do
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 0 Then Lewo
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 0 Then Lewo
If Pind.7 = 0 And Pind.3 = 1 And Pind.2 = 1 Then Prawo
If Pind.7 = 0 And Pind.3 = 0 And Pind.2 = 1 Then Prawo
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 1 Then Naprzod
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 1 Then Naprzod

Loop

End If

End                                                         'end program


Teraz dopisałem ale nie wiem czy dobrze:

'***** konfiguracja portów *****
$regfile = "attiny13.dat"


Sensor1 Alias Portd.7 Czujnik Lewy
Sensor2 Alias Portd.3 Czujnik Srodkowy
Sensor3 Alias Portd.2 Czunik Prawy

Config Pinb.5 = Output
Config Pinb.6 = Output

Do
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 0 Then Lewo
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 0 Then Lewo
If Pind.7 = 0 And Pind.3 = 1 And Pind.2 = 1 Then Prawo
If Pind.7 = 0 And Pind.3 = 0 And Pind.2 = 1 Then Prawo
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 1 Then Naprzod
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 1 Then Naprzod

If Pinb.6 = 1 And Pinb.5 = 0 Then Prawo
If Pinb.6 = 1 And Pinb.5 = 1 Then Naprzod
If Pinb.6 = 0 And Pinb.5 = 1 Then Lewo


Loop

End If

End                                                         'end program


[ Dodano: 22-01-2011, 20:59 ]

Sprawdzi ktoś ?

A teraz ?

'***** konfiguracja portów *****
$regfile = "attiny13.dat"


Sensor1 Alias Portd.7 Czujnik Lewy
Sensor2 Alias Portd.3 Czujnik Srodkowy
Sensor3 Alias Portd.2 Czunik Prawy

Config Pinb.5 = Output
Config Pinb.6 = Output

Do
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 0 Then Lewo
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 0 Then Lewo
If Pind.7 = 0 And Pind.3 = 1 And Pind.2 = 1 Then Prawo
If Pind.7 = 0 And Pind.3 = 0 And Pind.2 = 1 Then Prawo
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 1 Then Naprzod
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 1 Then Naprzod

Sub Prawo:
If Pinb.6 = 1 And Pinb.5 = 0 Then Prawo
Call Ddelay
End Sub

Sub Naprzod:
If Pinb.6 = 1 And Pinb.5 = 1 Then Naprzod
Call Ddelay
End Sub

Sub Lewo:
If Pinb.6 = 0 And Pinb.5 = 1 Then Lewo
Call Ddelay
End Sub

Loop

End If

End                                                         'end program

[ Dodano: 22-01-2011, 21:57 ]

A gdy kompilowałem to musiałem usunąć te lewo prawo naprzod i jeszcze był jakiś błąd w linii end i w jakiejś 121 linii.

Takie coś ?

'***** konfiguracja portów *****
$regfile = "attiny13.dat"


Sensor1 Alias Portd.7 Czujnik Lewy
Sensor2 Alias Portd.3 Czujnik Srodkowy
Sensor3 Alias Portd.2 Czunik Prawy

Config Pinb.5 = Output
Config Pinb.6 = Output

Do
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 0 Then Lewo
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 0 Then Lewo
If Pind.7 = 0 And Pind.3 = 1 And Pind.2 = 1 Then Prawo
If Pind.7 = 0 And Pind.3 = 0 And Pind.2 = 1 Then Prawo
If Pind.7 = 1 And Pind.3 = 0 And Pind.2 = 1 Then Naprzod
If Pind.7 = 1 And Pind.3 = 1 And Pind.2 = 1 Then Naprzod

Sub Prawo:
If Pinb.6 = 1 And Pinb.5 = 0 Then Prawo
Call Ddelay
End Sub

Sub Naprzod:
If Pinb.6 = 1 And Pinb.5 = 1 Then Naprzod
Call Ddelay
End Sub

Sub Lewo:
If Pinb.6 = 0 And Pinb.5 = 1 Then Lewo
Call Ddelay
End Sub

Sub Ddelay:
Waitms Czas
End Sub

Loop

End If

End                                                         'end program

No a w tej linii:

If Pinb.6 = 1 And Pinb.5 = 0 Then Prawo

If Pinb.6 = 1 And Pinb.5 = 1 Then Naprzod

If Pinb.6 = 0 And Pinb.5 = 1 Then Lewo

??

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...