aixI Wrzesień 9, 2012 Autor tematu Udostępnij Wrzesień 9, 2012 100mA to jest mało (jak sam napisałeś), ale wcześniej robota z wgranym programem, podłączonymi silnikami i płytką z czujnikami zasilałem z zasilacza od drukarki hp 16V ~500mA (piszę z pamięci) i też nie chciał ruszyć. Cytuj Link do komentarza Share on other sites More sharing options...
sosnus Wrzesień 9, 2012 Udostępnij Wrzesień 9, 2012 500mA to też mało (mało dla silników i elektroniki razem). Dla przykładu moje silniki w szycie pobierają 2,1A (x2 bo 2 silniki) a sama elektronika pewnie troch poniżej 0,5A, tak więc cały bot może pobrać troche poniżej 3A. I jak to się ma do 500mA? Spróbuj zrobić tak, jak napisałem w poprzednim poście. Cytuj Link do komentarza Share on other sites More sharing options...
aixI Wrzesień 9, 2012 Autor tematu Udostępnij Wrzesień 9, 2012 A może być zasilacz 15V 5A? Cytuj Link do komentarza Share on other sites More sharing options...
pawcio0928 Wrzesień 9, 2012 Udostępnij Wrzesień 9, 2012 Może. Cytuj 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 Wrzesień 11, 2012 Autor tematu Udostępnij Wrzesień 11, 2012 Sprawdzałem z tym zasilaczem 15V 5A też nic żadnej reakcji. Po włączeniu robota przejeżdżam białą kartką z czarną taśmą izolacyjną po czujnikach i nic, silniki stoją. Wgrałem taki kod: $regfile = "2313def.dat" $crystal = 1000000 'Konfiguracja sterowania PWM Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'Konfiguracja portów ##wyjscia## Config Pinb.5 = Input Config Pinb.6 = Input Config Pinb.7 = Input ##wejscia## Config Pinb.4 = Output Reset Portb.4 Config Pinb.3 = Output Reset Portb.3 Config Pind.2 = Output Reset Portd.2 Config Pind.5 = Output Reset Portd.5 Config Pind.4 = Output Reset Portd.4 Config Pind.3 = Output Reset Portd.3 Config Pind.1 = Output Reset Portd.1 PORTB.5 = 1 PORTB.6 = 1 PORTB.7 = 1 'Opis prtów 'Enable1 - silnik lewy - PortB.4 (PWM1A) 'Enable2 - silnik prawy - PortB.3 (PWM1B) 'Input1 - Silnik lewy A - PortD.2 'Input2 - Silnik lewy B - PortD.5 'Input3 - Silnik prawy A - PortD.3 'Input4 - Silnik prawy B - PortD.4 'Dioda - PortD.1 Sensor_1 Alias Portb.5 Sensor_2 Alias Portb.6 Sensor_3 Alias Portb.7 Silnik_lewy_a Alias Portd.2 Silnik_lewy_b Alias Portd.5 Silnik_prawy_a Alias Portd.4 Silnik_prawy_b Alias Portd.3 Dioda Alias Portd.1 '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_a Reset Silnik_lewy_b Set Silnik_prawy_a Reset Silnik_prawy_b Do If Sensor_1 = 0 Then If Sensor_3 = 1 Then Gosub Skrecaj_w_lewo Else Gosub Jedz_prosto End If Elseif Sensor_3 = 0 Then If Sensor_1 = 1 Then Gosub Skrecaj_w_prawo Else Gosub Jedz_prosto End If Else Gosub Jedz_prosto End If Loop End 'end program Jedz_prosto: Set Silnik_lewy_a Set Silnik_lewy_b Reset Silnik_prawy_a Reset Silnik_prawy_b Return Skrecaj_w_prawo: Set Silnik_lewy_a Reset Silnik_lewy_b Reset Silnik_prawy_a Reset Silnik_prawy_b Waitms 10 Return Skrecaj_w_lewo: Set Silnik_prawy_a Reset Silnik_prawy_b Reset Silnik_lewy_a Reset Silnik_lewy_b Waitms 10 Return uC interpretuje 0/1 więc czujniki są sprawne, uC też. EDIT: Jeszcze wczoraj sprawdzałem prace serwa, wgrałem ten program: $regfile = "2313def.dat" $crystal = 1000000 'Konfiguracja PWM'a Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Pind.2 = Output Config Pind.5 = Output Silnik_a Alias Portd.2 Silnik_b Alias Portd.5 'Ustawienie PWM w zakresie 0-255 (regulacja prędkości) PWM1A = 200 Do 'Obrót w jedną stronę Set Silnik_a Reset Silnik_b wait 3 'Obrót w stronę przeciwną Reset Silnik_a Set Silnik_b wait 3 'Stop Reset Silnik_a Reset Silnik_b wait 3 Loop End Kompilator nie pokazuje błędów, a silnik stoi :/ Jakieś pomysły?? Edit: Dopatrzyłem się błędu (chyba) w moim kodzie, mianowicie w kodzie na którym się częściowo wzorowałem (ten z kursu line followera) jest napisane tak: 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 A ja w swoim kodzie zostawiłem to: 'Deklaracje zmiennych Dim Czujnik_lewy As Single Dim Czujnik_srodkowy As Single Dim Czujnik_prawy As Single Dim W As Word I tu jest "Dim W As Word" i chyba to nie pasuje tutaj. Cytuj Link do komentarza Share on other sites More sharing options...
aixI Wrzesień 14, 2012 Autor tematu Udostępnij Wrzesień 14, 2012 EDTI: Jeszcze chciałem dodać, że przed chwilą sprawdzałem tan sam kod na Atmedze8 i na niej działa, a na attiny2313 nie. Edit: wyjąłem attiny2313 z podstawki i mostek h l293dne, włożyłem na stukówke wgrałem kod do sterowania serwem. $regfile = "2313def.dat" $crystal = 1000000 'Konfiguracja PWM'a: Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Portd = Output Silnik_a Alias Portd.0 Silnik_b Alias Portd.1 PWM1A = 200 'Ustawienie PWM w zakresie 0-255 (regulacja prędkości) Do 'Obrót w jedną stronę Set Silnik_a Reset Silnik_b wait 3 'Obrót w stronę przeciwną Reset Silnik_a Set Silnik_b wait 3 'Stop Reset Silnik_a Reset Silnik_b wait 3 Loop End I na stykówce działa, czyli mam błąd na płytce albo zimne luty, poprawię luty i zobaczę jak będzie. Cytuj Link do komentarza Share on other sites More sharing options...
aixI Wrzesień 15, 2012 Autor tematu Udostępnij Wrzesień 15, 2012 Ok. poprawiłem luty uC --> mostek H i na płytce działają, tylko mam czasem problem z komunikacja Bascom --> uC więc jak będę miał czas to poprawię te luty. Cytuj Link do komentarza Share on other sites More sharing options...
aixI Wrzesień 29, 2012 Autor tematu Udostępnij Wrzesień 29, 2012 Cześć, poprawiłem wszystkie luty, połączenia miedzy uC--> mostek i uC--> programator. Wgrałem kod, żeby oba silniki się kręciły i silniki się kręcą (mały sukces :] ), wgrałem później kod źródłowy do lf'a i jak na razie wszystko stoi, mianowicie jak włącze robota to dioda led się świeci (tak miało być), przejeżdżam białą kartką z czarną taśmą izolacyjną przez trzy czujniki (CNY70) (białe diody sygnalizujące się zapalają w zależności jaki czujnik widzi lub nie widzi czarnej linii), a silniki nie ruszają. Teraz to naprawdę nie mam pojęcia czemu coś nie działa. Zniwelowałem wszystkie usterki wcześniejsze i te, które "wychodziły w praniu". Kod źródłowy: $regfile = "attiny2313.dat." $crystal = 1000000 'Konfiguracja sterowania PWM Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'Konfiguracja portów 'Wyjscia Config Pinb.5 = Input Config Pinb.6 = Input Config Pinb.7 = Input 'Wejscia Config Pinb.4 = Output Reset Portb.4 Config Pinb.3 = Output Reset Portb.3 Config Pind.2 = Output Reset Portd.2 Config Pind.5 = Output Reset Portd.5 Config Pind.4 = Output Reset Portd.4 Config Pind.3 = Output Reset Portd.3 Config Pind.1 = Output Reset Portd.1 Portb.5 = 1 Portb.6 = 1 Portb.7 = 1 'Opis prtów 'Enable1 - silnik lewy - PortB.4 (PWM1A) 'Enable2 - silnik prawy - PortB.3 (PWM1B) 'Input1 - Silnik lewy A - PortD.2 'Input2 - Silnik lewy B - PortD.5 'Input3 - Silnik prawy A - PortD.4 'Input4 - Silnik prawy B - PortD.3 'Dioda - PortD.1 Sensor_1 Alias Portb.5 'czujnik prawy Sensor_2 Alias Portb.6 'czujnik srodkowy Sensor_3 Alias Portb.7 'czujnik lewy Silnik_lewy_a Alias Portd.2 Silnik_lewy_b Alias Portd.5 Silnik_prawy_a Alias Portd.4 Silnik_prawy_b Alias Portd.3 Dioda Alias Portd.1 'Deklaracje zmiennych Dim Sensor_3 As Single Dim Sensor_2 As Single Dim Sensor_1 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 If Sensor_1 = 0 Then If Sensor_3 = 1 Then Gosub Skrecaj_w_lewo Else Gosub Jedz_prosto End If Elseif Sensor_3 = 0 Then If Sensor_1 = 1 Then Gosub Skrecaj_w_prawo Else Gosub Jedz_prosto End If Else Gosub Jedz_prosto End If Loop End 'end program Jedz_prosto: Set Silnik_lewy_a Set Silnik_lewy_b Reset Silnik_prawy_a Reset Silnik_prawy_b Return Skrecaj_w_prawo: Set Silnik_lewy_a Reset Silnik_lewy_b Reset Silnik_prawy_a Reset Silnik_prawy_b Waitms 10 Return Skrecaj_w_lewo: Set Silnik_prawy_a Reset Silnik_prawy_b Reset Silnik_lewy_a Reset Silnik_lewy_b Waitms 10 Return Bardzo prosiłbym o pomoc z Waszej strony. AixI. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!