logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak poprawnie podłączyć serwomechanizm do Arduino?

Dawek1997 03 Wrz 2017 01:21 4023 25
REKLAMA
  • #1 16678071
    Dawek1997
    Poziom 6  
    Posty: 70
    Ocena: 7
    Witam, mam problem z działaniem serwomechanizmu Towardpro MG996R. Napisałem program na Arduino do sterowania serwomechanizmem, który działa poprawnie, testowałem go wcześniej na serwie micro i wszystko działało bez zarzutu. Problem pojawił się gdy zamieniłem serwomechanizm na Towardpro MG996R. Otóż po załączeniu Arduino, serwomechanizm nie wykonywał poleceń, serwo wariowało oraz Arduino restartowało się co ok 5sek. Pomyślałem więc, że prąd pobierany przez to serwo jest za duży na zasilanie z USB więc podłączyłem zewnętrzne zasilanie tylko do serwomechanizmu, a Arduino poprzez USB, oraz oczywiście połączyłem masy obu zasilań ze sobą, lecz efekt dalej bez zmian. Co dziwniejsze gdy zrobiłem tak samo z drugim serwem,(micro) czyli podłączyłem do niego osobne zasilanie z pakietu 2 akumulatorów 18650 połączonych szeregowo i poprzez przetwornice step down 5V 3A, serwo wykonywało poprawnie polecenia z Arduino, lecz w stanie spoczynku dosyć mocno buczało i wibrowało, co w przypadku zasilania z USB nie miało takiego miejsca. Pytanie więc jest takie: Jakie mogą być przyczyny takiego zachowania? A może serwomechanizmy łączy się z Arduino w inny sposób?
  • REKLAMA
  • Pomocny post
    #2 16678098
    ExtreMme
    Poziom 10  
    Posty: 46
    Pomógł: 1
    Ocena: 5
    Posiadam ten serwo mechanizm. Masy polacz razem z adruino (brazowy kabel) vcc do innego zrodla zasilania zeby uniknac restartow(czerwony kabel) no i zólty służy do sterowania. nie pamietam jaki jest teraz zakres dlugosci sygnalu ale chyba od 1.5 do 2.5ms. Jak chcesz na maxa pojechac w jedna strone to np dajesz stan wysoki i po 2.5 ms dajesz stan niski jak chcesz powrot to dajesz czas np 1.5ms i wraca na pozycje wyjsciową. zakres musisz przetestowac bo wiem ze jak bawilem sie tym serwem to sobie tak ustawilem zakres zeby osiagnac maxymalny kat 180. i po kazdym sygnale musi byc jakis odstep czasowy zeby silnik nie wariowal. W moim przypadku mialem zasilacz do serwa regulowany 5v do 1A. I nie korzystalem z arduino tylko z atmegi 328p-pu i eclipe ,nie wiem jak tam wyglada biblioteka do arduino i serwa.

    Jak osiagniesz maxymalny zakres to serwo bedzie stało w miejscu i buczało.
  • REKLAMA
  • #3 16678180
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #4 16678325
    Piotr Piechota
    Poziom 22  
    Posty: 519
    Pomógł: 55
    Ocena: 85
    Czy masz na pewno Arduino na 5V? Jak robiłem kiedyś eksperymenty z sygnałem sterującym o amplitudzie 3.3V jedne serwa działały inne nie.
  • #5 16678444
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #6 16678627
    Piotr Piechota
    Poziom 22  
    Posty: 519
    Pomógł: 55
    Ocena: 85
    Piotrus_999 masz rację. Sprawdziłem w dokumentacji przykładowego kontrolera serwa M51660L - napięcie sterujące >3V. Jednak napięcie wyjściowe z portu jest niższe od napięcie zasilania i jest blisko granicy. Ja miałem problemy z popularnym tanim modułem z STM32F103 (na obrazku). Dopiero po dodaniu bufora podwyższającego napięcia serwa pracowały stabilnie. Może był zasilany z 3V a nie z 3.3V - nie pamiętam.

    Jak poprawnie podłączyć serwomechanizm do Arduino?
  • REKLAMA
  • #7 16678652
    Dawek1997
    Poziom 6  
    Posty: 70
    Ocena: 7
    ExtreMme napisał:
    Posiadam ten serwo mechanizm. Masy polacz razem z adruino (brazowy kabel) vcc do innego zrodla zasilania zeby uniknac restartow(czerwony kabel) no i zólty służy do sterowania.

    Czyli serwo podłączam prawidłowo.

    R-MIK napisał:
    Pokaż przebieg sygnału sterującego serwomechanizmem na oscyloskopie.

    Niestety nie posiadam oscyloskopu. Jestem początkującym elektronikiem.

    Piotr Piechota napisał:
    Czy masz na pewno Arduino na 5V?

    Arduino podpięte pod USB komputera więc zasilanie jest na pewno 5V.

    Piotrus_999 napisał:
    To miales jakies stare śmieci. Wszystkie serwa muszą działać na 3.2 V

    ?

    Tutaj zdjęcie mojego programu, Jak poprawnie podłączyć serwomechanizm do Arduino?20170903_1..034.jpg (2.19 MB)Musisz być zalogowany, aby pobrać ten załącznik. może coś muszę zmienić?
    Później wstawię filmik pokazujący jak to wygląda.

    Dodano po 5 [minuty]:

    Piotr Piechota napisał:
    Piotrus_999 masz rację. Sprawdziłem w dokumentacji przykładowego kontrolera serwa M51660L - napięcie sterujące >3V. Jednak napięcie wyjściowe z portu jest niższe od napięcie zasilania i jest blisko granicy. Ja miałem problemy z popularnym tanim modułem z STM32F103 (na obrazku). Dopiero po dodaniu bufora podwyższającego napięcia serwa pracowały stabilnie. Może był zasilany z 3V a nie z 3.3V - nie pamiętam.

    Nie za bardzo rozumiem, jestem początkujący w Arduino i serwomechanizmach, mógłbyś to wytłumaczyć?
  • Pomocny post
    #8 16678674
    Konto nie istnieje
    Konto nie istnieje  
  • #9 16678694
    Dawek1997
    Poziom 6  
    Posty: 70
    Ocena: 7
    Napięcie zmierzone: 5.13V
  • Pomocny post
    #10 16678772
    Konto nie istnieje
    Konto nie istnieje  
  • #11 16678798
    Dawek1997
    Poziom 6  
    Posty: 70
    Ocena: 7
    R-MIK napisał:
    15ms zwiększ do 20 a nawet do 25. Dawno serw nie robiłem ale cos mi sie kojarzy, ze min wymagana przerwa pomiędzy impulsami dla wielu modelu serw to 20ms.

    Zmiana na 25ms pomogła, lecz dalej przy pozycji 0 serwo jest niestabilne, więc zmieniłem pozycje 0 na 5 i wszystko teraz działa prawidłowo. Dzięki za pomoc. Tylko dlaczego przy pozycji 0 serwo jest niestabilne? I czy powinienem się martwić buczeniem serwa w trakcie spoczynku, czy to jest normalne zachowanie? (Pierwszy raz zajmuję się serwami)
  • Pomocny post
    #12 16678828
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #14 16680503
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #15 16680578
    Piotr Piechota
    Poziom 22  
    Posty: 519
    Pomógł: 55
    Ocena: 85
    cyfrowe tanie chińskie serwa potrafią "buczeć" nawet nieobciążone, sterowane w moim przypadku z odbiornika FrSky
  • Pomocny post
    #16 16680584
    Konto nie istnieje
    Konto nie istnieje  
  • #17 16680630
    Piotr Piechota
    Poziom 22  
    Posty: 519
    Pomógł: 55
    Ocena: 85
    Buczenie buczeniu nie równe. Przy lekkim buczeniu (drganiach) serwo nie pobiera dużego prądu. Ja zawsze latałem z lekkim niepokojem wiedząc jak zawodne są tanie podzespoły modelarskie ;)
  • Pomocny post
    #18 16680659
    Konto nie istnieje
    Konto nie istnieje  
  • #19 16680859
    Dawek1997
    Poziom 6  
    Posty: 70
    Ocena: 7
    Spokojnie, serwo będzie użyte do projektu naziemnego :) , a dokładnie będzie podnosiło 4 blaszki(cele), które po zestrzeleniu z wiatrówki mają się podnieść.
    Jak wszystko będzie już gotowe to zamieszczę post w dziale DIY i wstawię linka tutaj.
    Czas realizacji ok. 2tyg.
  • Pomocny post
    #20 16681465
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 569
    Piotrus_999 napisał:
    Jak buczy to prąd konsumuje na potęgę. Nie wiem, ja bym się nie odważył latać


    Piotr mylisz się troszkę cyfrowe serwa często "buczą" ,bo są bardzo precyzyjne i często nawet minimalna siła przyłożona do orczyka powoduje że brzęczą czy buczą . Część serwomechanizmów może pracować cyfrowo z powtarzaniem sygnału sterującego nawet do 333Hz a część używa sygnałów specjalnych gdzie środek to 760us Serw do żyroskopu w śmigłowcach. Przypadek kolegi wynika raczej ze zbyt częstego powtarzania sygnału sterującego dla starszego serwa anologowego bo normalny sygnał ma impuls od 1 do 2ms i przerwę wynikająca z sygnału synchronizacji dla odbiornika plus 7 sygnałów serwomechanizmów więc to przerwa od 25-40 ms .

    edit :Poprawiłem jednostki jak słusznie zauważył Piotruś 760us nie jak było 760ms
  • #21 16681546
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #22 16681619
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 569
    Piotruś masz zupełną rację 760us nie jak napisałem 760ms błąd poprawiłem . Poza tym większość starych serwomechanizmów pracowała na napięciu od ok 4 do 6V dopiero po wprowadzeniu na rynek akumulatorów LIPO i LIFE większość firm zaczęła oferować serwomechanizmy na napięcie do 8,4V z oznaczeniem HV .

    Co do mojej wiedzy w tym zakresie wynika ona z zawodniczego uprawiana jednej z klas modelarstwa lotniczego ,ale na tym forum to sprawa drugorzędna i nie ma to większego znaczenia w posiadaniu czysto teoretycznej wiedzy w tym temacie.
  • #23 16682093
    Konto nie istnieje
    Konto nie istnieje  
  • #24 16682127
    Konto nie istnieje
    Konto nie istnieje  
  • #25 16683339
    Dawek1997
    Poziom 6  
    Posty: 70
    Ocena: 7
    Chyba już wiem co jest przyczyną buczenia serwa i drgań przy pozycji 0 stopni. Bawiłem się długi czas z programem, co by mogło być nie tak, i zacząłem dodawać po jednym stopniu do "pos = 0".
    Gdy doszedłem do wartości "pos = 16" ,serwo przestało buczeć i zachowuję się w tej chwili perfekcyjnie. Możliwe, że serwo jest rozregulowane i pozycje początkową uzyskuje przy 16 stopniach. Co o tym sądzicie?
  • Pomocny post
    #26 16683434
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 569
    Prędzej spodziewał bym się wadliwego potencjometru w okolicy zera. Potencjometry w serwomechanizmach najczęściej zużywają się w okolicy neutrum wynika to z faktu że to miejsce jest najbardziej używane przynajmniej w modelach RC i kończy się to brakiem neutrum lub pływaniem pozycji środkowej . Serwo zatrzymuje się w różnych pozycjach zbliżonych do neutralnej +/- kilka stopni . Może więc serwa które posiadasz są po prostu zużyte na tyle że nie działa poprawnie .

Podsumowanie tematu

✨ Użytkownik miał problem z serwomechanizmem Towardpro MG996R, który nie reagował na polecenia z Arduino, co prowadziło do restartów urządzenia. Po podłączeniu zewnętrznego zasilania dla serwa i USB dla Arduino, problem nie ustąpił. Użytkownicy zasugerowali, aby sprawdzić długość impulsów sterujących oraz napięcie zasilania, które powinno wynosić 5V. Zmiana przerwy między impulsami na 25ms pomogła, ale serwo było niestabilne w pozycji 0. Użytkownik odkrył, że stabilność poprawiła się przy ustawieniu pozycji początkowej na 5 stopni. Buczenie serwa może być spowodowane złym sterowaniem, przeciążeniem lub uszkodzeniem. Wskazano również na możliwość zużycia potencjometru w serwie, co może wpływać na jego działanie.
Wygenerowane przez model językowy.
REKLAMA