BaxterJR Styczeń 29, 2020 Autor tematu Udostępnij Styczeń 29, 2020 Przepraszam . Chyba dopiero po feriach damy znać . Link do komentarza Share on other sites More sharing options...
BaxterJR Luty 5, 2020 Autor tematu Udostępnij Luty 5, 2020 Odłączyliśmy 2 silniki, podłączyliśmy pod mostek i napisaliśmy program: #define LEFT 0 #define RIGHT 1 void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); } void loop() { startMotor(LEFT, 255, 5, 6, 7); delay(2000); stopMotor(5, 6, 7); delay(500); startMotor(RIGHT, 255, 5, 6, 7); delay(2000); stopMotor(5, 6, 7); delay(500); startMotor(LEFT, 255, 10, 11, 12); delay(2000); stopMotor(10, 11, 12); delay(500); startMotor(RIGHT, 255, 10, 11, 12); delay(2000); stopMotor(10, 11, 12); } void startMotor (boolean dir, uint8_t _speed, int pin_pwm, int pin_silnikA, int pin_silnikB) { if(dir) { digitalWrite(pin_silnikA, LOW); digitalWrite(pin_silnikB, HIGH); analogWrite(pin_pwm, _speed); } else { digitalWrite(pin_silnikB, LOW); digitalWrite(pin_silnikA, HIGH); analogWrite(pin_pwm, _speed); } } void stopMotor(int pin_pwm, int pin_silnikA, int pin_silnikB) { digitalWrite(pin_silnikA, LOW); digitalWrite(pin_silnikB, LOW); analogWrite(pin_pwm, 0); } Ramię zachowuje się dość nieprzewidywalnie. Prąd jaki wychodzi z mostka to 5V oraz 0,5 A +/-, zasilacz mamy 6V 1A. Ramię na początku działa normalnie, a po chwili jeden silnik przestaje w ogóle działać, a drugi obraca się w jedną stronę. Link do komentarza Share on other sites More sharing options...
marek1707 Luty 6, 2020 Udostępnij Luty 6, 2020 Jesteś w sytuacji typowej dla każdego konstruktora: coś zbudowałeś, oczekiwania były spore a urządzenie nie działa poprawnie. Coś jest więc nie tak i zachodzą zjawiska których nie przewidziałeś i których nie widzisz. Zwyczajnie musisz je odkryć - tak robi każdy kto idzie nową (dla siebie) ścieżką. Zacznij od początku planując kroki, które po kolei będą potwierdzać poprawność czegoś, na czego podstawie będziesz mógł wykonać następne. Prawdopodobnie na którymś etapie znajdziesz przyczynę problemów. Zatem: Wbuduj w Arduino mechanizm upewniający Cię, że w trakcie pracy programu nie doszło do "zagłodzenia" procesora, spadku jego zasilania i restartu programu. Najprostsze to zapalenie diodki LED (ten wbudowanej w płytkę) np. na 0.5 sekundy zaraz po starcie programu (jeszcze w setup). Wtedy powinna zapalić się tylko raz po włączeniu a jej błyśnęcie w czasie pracy silników będzie oznaczało, że procek dostał po głowie i program - żeby nie wiem jak wyrafinowany - nie ma szans działać poprawnie. Napisz prostszy program. Zacznij od jednego silnika, jednej prędkości i prostego ruchu: np. 1 sekunda w jedną stronę, sekunda przerwy, sekunda powrotu i znów sekunda przerwy. Pamiętaj, że w zasadzie nie wolno zmieniać kierunku "w locie", na pracującym silniku. Zawsze musisz poczekać na jego zatrzymanie. Puść to, niech chodzi a Ty przez kilka minut obserwuj zachowanie ramienia, mechaniki, obciążaj to czymś lekko, zmierz napięcia, prądy, kontroluj tempraturę zasilacza, stabilizatorów itp. To pierwszy test upewniający, że przynajmniej jeden silnik może chodzić dowolnie długo i nie zawala systemu zasilania ani sterowania. Potem wprowadzaj kolejne rozbudowy, za każdym razem upewniając się, że wszystko działa OK. To może być drugi silnik - taki sam ruch jak pierwszego i znów kilka minut pracy wahadłowej. Tym razem startują już dwa silniki więc i obciążenia systemu są dwa razy większe. Pamiętaj, że silnik pobierający normalnie 0.5A, podczas startu potrzebuje kilka razy więcej prądu (np. 3A). Jeżeli dostarczasz 6V to margines na "zapad" jest bardzo mały i start napędu może być tym kluczowym momentem gdy wysiada zasilanie. Jeśli tak się dzieje i widzisz RESETy komputerka, dziwną ospałość silników lub zwyczajnie zmierzysz spadki napięć na szynie 6V, to potwierdź to. Wystarczy zmienić program tak, by nie ruszał "z kopyta" od zera do 100% a powoli zmieniał PWM w czasie np. 1 sekundy. Jeśli to pomoże już wiesz, że to prąd rozruchowy i musisz wymienić zasilacz na mocniejszy. Swoją drogą od razu Ci powiem, że do takiego ramienia i tylu napędów to szacowałbym potrzebną wydajność na 8-10A właśnie z uwagi na prądy startowe. Musisz być pewien przyczyn i skutków, bo z powierzchownych obserwacji możesz wyciągać ruskie wnioski (mucha ogłuchła..). Rozpisz sobie plan badań i konsekwentnie go realizuj za każdym razem notując co zauważyłeś. Nie udawaj, że w danym kroku wszystko działa dopóki na 100% nie masz pewności, że tak jest. W końcu dojdziesz przyczyn problemów a przy okazji dobrze zrozumiesz działanie projektu i jego ograniczenia. Tak się robi niezalezanie od tego czy robisz zabawkę na Arduino czy profesjonalny sprzęt. Żaden nietrywialny projekt nie działa w 100% od razu. Do roboty. 1 Link do komentarza Share on other sites More sharing options...
BaxterJR Luty 6, 2020 Autor tematu Udostępnij Luty 6, 2020 Ślicznie dziękuję Tego nam potrzeba. Będziemy się dzielić postępami. 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
BaxterJR Luty 25, 2020 Autor tematu Udostępnij Luty 25, 2020 Kochani, Ruszyłem z testami Ramienia KRS10 Vellman i mam pytanie czy mogę zwiększać PWM dla jednego z pięciu silniczków wszystkie są takie same od 0 do 255 z delay(500). Gdy robię do 150 to prąd rośnie od 0 do 230mA i potem zeruję i od nowa w pętli for. Czy mi się silniczek nie przepali? chyba inne silniki mogą mieć inne prądy jeszcze tego nie sprawdziłem? #define LEFT 0 #define RIGHT 1 void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); } void loop() { for(int i=0; i<=150; i++) { startMotor(RIGHT, i); delay(500); } /* startMotor(LEFT, 127); delay(1000); startMotor(RIGHT, 255); delay(1000); startMotor(RIGHT, 127); delay(1000); stopMotor(); delay(1000); */ } void startMotor (boolean dir, uint8_t _speed) { if(dir) { digitalWrite(6, LOW); digitalWrite(7, HIGH); analogWrite(5, _speed); } else { digitalWrite(7, LOW); digitalWrite(6, HIGH); analogWrite(5, _speed); } } void stopMotor() { digitalWrite(6, LOW); digitalWrite(7, LOW); analogWrite(5, 0); } Link do komentarza Share on other sites More sharing options...
BaxterJR Luty 28, 2020 Autor tematu Udostępnij Luty 28, 2020 Szanowni Koledzy, Podłączyliśmy zasilacz 6V do arduino oprócz zasilania USB chcieliśmy wysterowąć silniczkiem pojedynczym Ramienia robota KSR10 Vellman. Niestety napięcie na Vin jest 0V i tylko ciągnie z USB. Może te 6V to za mało ale czy większe napięcie wytrzyma pojedynczy silniczek z pięciu w tym Ramieniu? Prosilibyśmy o pomoc co zrobić? Link do komentarza Share on other sites More sharing options...
BaxterJR Luty 29, 2020 Autor tematu Udostępnij Luty 29, 2020 Szanowni Koledzy, Chyba źle podłączyliśmy. Dam znać. Serdecznie pozdrawiamy. 1 Link do komentarza Share on other sites More sharing options...
BaxterJR Marzec 4, 2020 Autor tematu Udostępnij Marzec 4, 2020 Dzień dobry, Chcieliśmy sterować przez Arduino, ramieniem robota KSR10 Vellman. Po naszych doświadczeniach z jednym silniczkiem, widzimy, że czasem trudno jest sterować jednym, a co dopiero pięcioma. Jeśli zwiększamy pwm do od 0 do 255 z przerwą 50 ms, silnik nie reaguje, tylko słychać gotowość, a nie ma obrotów silnika. Natomiast jeśli zadziałamy od razu pwm 255, a potem zmniejszymy do 127 z przerwą 1 s, wszystko działa. Zmiana pwm w sposób łagodny, skutkuje brakiem obrotów. Prosilibyśmy o opinię, czy w ogóle jest sens sterowania tymi silniczkami przez Arduino. Link do komentarza Share on other sites More sharing options...
BaxterJR Październik 12, 2020 Autor tematu Udostępnij Październik 12, 2020 Kochani już od 19 września ruszyliśmy z Warsztatami na bazie Forbot.pl Powolutku robimy kursy. Mamy zestawy z Botland.pl. Przypominamy się. W razie problemów prosimy o pomoc. 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ę »