Skocz do zawartości

czujniki linii


fefe

Pomocna odpowiedź

będą działać jako czujniki linii minisumo

$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 - ADC5
'Czujnik środkowy - ADC4
'Czujnik prawy - ADC3

Silnik_lewy Alias Portd.3
Silnik_prawy Alias Portd.1
Dioda Alias Portd.6

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

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

'Blok instrukcji
Set Dioda
Set Silnik_lewy
Set Silnik_prawy

Do
  Gosub Wczytaj_stany_przetwornikow
  If Czujnik_przedni > Granica Then
     'Silnik lewy - maksymalna prędkość
     Pwm1a = 255
     'Silnik prawy-0
     Pwm1b = 0
  Elseif Czujnik_tylny > Granica Then
     Pwm1a = 0
     Pwm1b = 255
  Elseif

  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
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

Same błędy, reset nie jest podciągniety, przez rezystor do plusa, chcesz używać ADC a nie masz żadnych kondensatorów w zasilaniu, ani dławika na linii zasilania AVCC/AREF. Nie znam L293, ale wygląda mi na to, że zasilasz go z 5V co da ci na silniki napięcie około 3V tylko. Zasilanie mostka powinno być z wyższego napięcia.

Nie weryfikowałem pozostałych połączeń, złącza do programatora itp.

Link do komentarza
Share on other sites

Powiem ci szczerze, że mnie zdziwiłeś. Z doświadczenia wiem, że bez tego rezystora programator nie wykrywa mikrokontrolera, Nawyk napisał, że rezystory 10k będą potrzebne, ale faktycznie nie widzę ich nigdzie na płytce. Niech się Nawyk wypowie 🙂.

Link do komentarza
Share on other sites

W kwestii kropek biję się w pierś 🙂

Nie ma stabilizacji, dławików i kondensatorów, bo schemat miał być maksymalnie prosty, przy czym w moim temacie piszę o możliwości dodania ich i jak to zrobić w przypadku problemów.

Atmega ma wbudowane podciąganie na linii resetu, więc nie trzeba podciągać tego przez rezystor do vcc.

Co do całej reszty - kilka osób już składało na podstawie tego schematu LF'y i wszystkie śmigają tak jak mój 😉

Po dopracowaniu robota (napisanie zaawansowanego programu, być może wymiana serw na szybsze silniki z przekładniami, stabilizowane napięcie, dławik między AREF/AVCC a VCC, kondensatory filtrujące) nic nie stoi na przeszkodzie, by wyruszyć z nim na zawody

Nawet zaznaczyłem w temacie, że nie jest to "profesjonalne" rozwiązanie.

Link do komentarza
Share on other sites

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...

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.