Skocz do zawartości

Projekt manipulatora 4-osiowego - Serwonapędy odmawiają współpracy


Pomocna odpowiedź

Napisano

Witam serdecznie innych użytkowników.

W ramach projektu na studia zaprojektowałem, wydrukowałem, oraz zaprogramowałem 4-osiowy manipulator sterowany za pomocą płytki Arduino. Niestety serwonapędy odpowiadające za ruch nie reagują na polecenia, drgają (prawdopodobnie tzw. "servo jitter'). Prosiłbym więc o pomoc w zlokalizowaniu problemu, czy jest to wina sterowania, mojego programu, zasilania bądź też inna możliwość, której nie brałem wcześniej pod uwagę.

Dziękuje wszystkim chętnym za pomóc.

Kod C#.txt

Kod Arduino.txt

Według podanej na pudełkach specyfikacji serwa mogą być zasilane napięciem od 4,8 do 6,6V. I tak, podłączyłem je wszystkie pod 9V.

Teraz to już je możesz zasilać czym chcesz, wątpię, żeby ich elektronika wytrzymała 2x większe napięcie niż wyspecyfikowane.

[ Dodano: 04-09-2017, 21:19 ]

A tak na przyszłość, to może zacznij od prostego programu machającego jednym serwem -- na przykład tego z przykładów w Arduino -- i dopiero jak to będzie działać, to podłączaj resztę. Mniej się spali.

Podłączenie pod akumulator żelowy 6V 1,3Ah całkowicie nowego serwa nie powoduje poprawy. Serwomechanizm dalej szarpie i nie reaguje na sygnał sterujący.

Testujesz to tym swoim programem, czy przykładem z Arduino?

Jesteś pewien, że sygnał dajesz na przewód żółty/biały, a zasilanie na czerwony/pomarańczowy, a nie odwrotnie?

Testowałem zarówno swoim programem jak i przykładowym z Arduino, bez zmian. A jeżeli chodzi o połączenie kabli to sprawdzam zawsze i jest prawidłowe.

Skoro wszystko przetestowałeś tak jak piszesz, Arduino UNO jest sprawne, program używasz z przykładu, połączenia są poprawne, a zasilanie jest takie, jak napisałeś, to nie widzę żadnego innego miejsca, gdzie mógłby być błąd. Pozostaje wniosek, że te serwa są wadliwe, ale coś mi się nie chce w to wierzyć.

[ Dodano: 05-09-2017, 00:46 ]

Jeszcze o jedną rzecz się upewnię. Bo na schemacie niby masz dobrze, ale to częsty błąd przy osobnych zasilaniach. Masę zasilania serw masz połączoną z masą Arduino?

Tak masy są połączone. Również nie wiem gdzie tkwi błąd, bezskutecznie szukałem rozwiązania w internecie, dlatego w końcu postanowiłem napisać tutaj.

Być może robisz rzeczy, które nam do głowy by nie przyszły. Pokaż dokładny i prawdziwy schemat tego układu z akumulatorem żelowym, jednym serwem i Arduino wykonującym program testowy.

Skąd zasilałeś Arduino w pierwotnym połączeniu z zasilaczem 9V? A skąd teraz, przy akumulatorze 6V? Czy mierzyłeś napięcie zasilacza 9V i teraz, akumulatora gdy serwo wariuje?

Czy możesz wyposażyć program testowy w diodę zapalaną tylko w funkcji setup() na 1 sekundę? O ile pamiętam na UNO masz taką wbudowaną na wyjściu nr 13. Jej zapalanie pokaże, czy procesor się resetuje.

Arduino zasilam z gniazda USB, napięcie było mierzone i jest stałe, bez dziwnych skoków/spadków.

Korzystając z przykładowego kodu:

void setup() {
 myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  pinMode(LED_BUILTIN, OUTPUT);
 digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
 delay(1000);                       // wait for a second
 digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
 delay(1000);                       // wait for a second
}

Dioda po zapaleniu się na chwilę, gaśnie i pozostaje wyłączona.

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