mateusz45412 Napisano Marzec 30, 2014 Udostępnij Napisano Marzec 30, 2014 Witam Napisałem program do Linefollower z kursu (program działa), ale silniki obracają się wolno i nie wystarcza to aby Linefollower jeździł. Myślę że może by pomogło wpisanie do programu PWM ale nie wiem co i gdzie wpisać. Chciałbym aby silniki obracały się jak najszybciej. Proszę o poprawienie i dopisanie PWM do programu. Schemat a to jest program (napisany bascomie) $regfile = "m8def.dat" $crystal = 1000000 Config Portc = Input Config Portd = Output Portd = &B00000000 Motor_l Alias Portd.2 Motor_p Alias Portd.1 Sensor_p Alias Pinc.5 Sensor_s Alias Pinc.4 Sensor_l Alias Pinc.3 Dioda Alias Portd.6 Do If Sensor_l = 0 And Sensor_s = 1 And Sensor_p = 0 Then Gosub Go End If If Sensor_l = 1 And Sensor_s = 0 And Sensor_p = 0 Then Gosub Left End If If Sensor_l = 0 And Sensor_s = 1 And Sensor_p = 0 Then Gosub Left End If If Sensor_l = 0 And Sensor_s = 0 And Sensor_p = 1 Then Gosub Right End If If Sensor_l = 0 And Sensor_s = 1 And Sensor_p = 1 Then Gosub Right End If If Sensor_l = 1 And Sensor_s = 1 And Sensor_p = 1 Then Gosub Go End If End If Loop Go: Motor_l = 1 Motor_p = 1 Dioda = 1 Return Left: Motor_l = 0 Motor_p = 1 Dioda = 1 Return Right: Motor_l = 1 Motor_p = 0 Dioda = 1 Return Link do komentarza Share on other sites More sharing options...
Wojcik98 Marzec 30, 2014 Udostępnij Marzec 30, 2014 PWM nie poprawi tutaj sytuacji, może tylko obniżyć prędkość. PWM polega na tym, że jest stan wysoki na nóżce tylko przez pewien czas, a jeśli teraz przy włączonym na stałe stanie wysokim nie działa, to PWM tego nie poprawi. Żeby robot jeżdził szybciej trzeba wymienić silniki lub źródło zasilania. I kod wklejaj w znacznikach [code] [/code] Link do komentarza Share on other sites More sharing options...
mi14chal Marzec 30, 2014 Udostępnij Marzec 30, 2014 Nie znam Bascoma, ale z tego co widzę nigdzie w kodzie nie dajesz stanu wysokiego na pin 1,2EN i 3,4EN. Link do komentarza Share on other sites More sharing options...
Braders94 Marzec 30, 2014 Udostępnij Marzec 30, 2014 @Up na samym dole jest motor_p =1 motor_l=1. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
aixI Marzec 30, 2014 Udostępnij Marzec 30, 2014 mateusz45412 parę pytań co Ciebie: 1. Czy złożyłeś tego już tego bota według tego schematu? 2. W kodzie zainicjowałeś takie coś: Motor_l Alias Portd.2 Motor_p Alias Portd.1 To odpowiada dwóm różnym "częściom" mostka H. Motor_l (pind.2) odpowiada pinowi 7 mostka H (IN2),a co z IN1 ? (pin2) - wisi sobie w powietrzu? I co z PWM'em 1,2EN, też sobie wisi, czy masz podłączone to gdzieś? Motor_p (pind.1) odpowiada pinowi 10 (IN3), a co z IN4 (pin 15)? Powinieneś mieć takie coś: Silnik_lewy_a Alias.... Silnik_lewy_b Alias... Silnik_prawy_a Alias... Silnik_prawy_b Alias... i zainicjowany Timer1 dla PWM'a, podłączenie odpowiednich końcówek mostka H do odpowiednich pinów uC (tam gdzie jest OCR1A i OCR1B, czyli PWM1A i PWM1B). Poza tym jak odczytujesz stany czujników? Przez komparatory? Czy przez ADC? Jak przez ADC to też nie masz inicjalizacji przetwornika analogowo-cyfrowego. Tyle ode mnie. Link do komentarza Share on other sites More sharing options...
mateusz45412 Marzec 31, 2014 Autor tematu Udostępnij Marzec 31, 2014 odp.1 Jak zamontuje inne silniki to się nieobracającą (normalnie działa tylko na tych słabszych). odp.2 robot jest już złożony odp.3 jeżeli to jest źle Motor_l Alias Portd.2 Motor_p Alias Portd.1 to w takim razie program powinien wyglądać tak? $regfile = "m8def.dat" $crystal = 1000000 'Konfiguracja przetwornika analog-cyfra (ADC) Config Adc = Single , Prescaler = Auto Config Portc = Input Portd = &B00000000 Config Portd = Output Portd = &B00000000 Motor_l_a Alias Portd.3 Motor_l_b Alias Portd.2 Motor_p_b Alias Portd.0 Motor_p_a Alias Portd.1 Sensor_p Alias Pinc.5 Sensor_s Alias Pinc.4 Sensor_l Alias Pinc.3 Dioda Alias Portd.6 Do If Sensor_l = 0 And Sensor_s = 1 And Sensor_p = 0 Then Gosub Go End If If Sensor_l = 1 And Sensor_s = 0 And Sensor_p = 0 Then Gosub Left End If If Sensor_l = 0 And Sensor_s = 1 And Sensor_p = 0 Then Gosub Left End If If Sensor_l = 0 And Sensor_s = 0 And Sensor_p = 1 Then Gosub Right End If If Sensor_l = 0 And Sensor_s = 1 And Sensor_p = 1 Then Gosub Right End If If Sensor_l = 1 And Sensor_s = 1 And Sensor_p = 1 Then Gosub Go End If Loop Go: Motor_l = 1 Motor_p = 1 Dioda = 1 Return Left: Motor_l = 0 Motor_p = 1 Dioda = 1 Return Right: Motor_l = 1 Motor_p = 0 Dioda = 1 Return tylko taki program mi nie działa 😕 Link do komentarza Share on other sites More sharing options...
mi14chal Marzec 31, 2014 Udostępnij Marzec 31, 2014 Widzę muszę się powtórzyć bo z tego co widzę nie umiesz czytać: nigdzie w kodzie nie dajesz stanu wysokiego na pin 1,2EN i 3,4EN. Link do komentarza Share on other sites More sharing options...
aixI Marzec 31, 2014 Udostępnij Marzec 31, 2014 Teraz to Ci się nawet nie skompiluje 😃 Popatrz na inne konstrukcje lf'ów. Tam jest nawet taka gdzie masz przykładowy kod i nawet jest on bardzo podobny do tego, który chcesz stworzyć. https://www.forbot.pl/forum/topics7/line-follower-pierwszy-robot-janusz-vt5639.htm?highlight=janusz Nie masz nadal konfiguracji Timera1 dla PWM'a i właśnie przy konfiguracji możesz sobie zmieniać wypełnienie, np. w kodzie piszesz Pwm1a = 127 i Pwm1b = 127 (50% PWM'a na oba silniki) Coś dziwna konfiguracja ADC. Tutaj: Go: Motor_l = 1 Motor_p = 1 Dioda = 1 Return Left: Motor_l = 0 Motor_p = 1 Dioda = 1 Return Right: Motor_l = 1 Motor_p = 0 Dioda = 1 Masz tylko Motor_l i ..._p więc tu jest problem, musisz zamienić to do odpowiedniej formy, czyli: np. Go Motor_l_a = 1 Morot_l_b = 0 Motor_p_a = 1 Motor_p_b = 0 To są oczywiście przykładowe pokazanie jak bo ma wyglądać, nie wiem czy Twój bot będzie akurat na takim wysterowaniu silników jechał prosto. (Go). Jeżeli pomogłem kliknij: Pomógł! Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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ę »