Skocz do zawartości

Pomocna odpowiedź

Witam,
chcąc połączyć arduino uno, klawiaturę i 5 serwomechanizmów MG996R występują dziwne wariacje niektórych serwomechanizmów (nie zawsze tych samych).Po kilkukrotnym szybkim kliknięciu przycisków, zaczynało wariować. Miałem zaprogramowany przycisk, w którym wszystkie 5 serw pracuje w jednym momencie, wtedy jest największe zapotrzebowanie na prąd i po kilkukrotnej pracy serwomechanizmów, któreś (lub dwa) zawsze zaczynało się kręcić wokół własnej osi, bez końca. Początkowo zasilałem to baterią 9V (poprzez regulator napięcia 5V), wariowały. Stwierdziłem że potrzebny jest większy prąd, to podpiąłem to wszystko pod akumulator od ciągnika (oczywiście przez regulatory 5V), nadal to samo [w załączniku wstawiam zdjęcie połączenia, mam nadzieję że dobrze podłączam, albo tu tkwi problem?]. Potem, aby wyeliminować błędny kod, podpiąłem jedno serwo i potencjometr, na nowym kodzie (prostym) kręcąc potencjometrem, wszystko działało pięknie, lecz po jakichś 2 minutach zaczęło się kręcić w kółko. Nie mam pojęcia co może być przyczyną. Koncepcją główną jest sterowanie serwomechanizmami za pomocą zmiany rezystancji, więc w jednej chwili zazwyczaj będą pracowały wszystkie na raz. Potrzebuję pomocy i z góry dziękuję!

Połaczenie z AKU.png

Link to post
Share on other sites

Nie laczylem nigdy stabilizatorow, ale to chyba nie najlepszy sposob. duzo lepiej jakas przetwornica..Te serwa to dosyc duze serwa i szczytowo pod obciazeniem moga nawet 2.5a pobrac(jedno) wiec to drugi powod zeby dac przetwornice(lub kilka po jednej na serwo). Na pinie 13 arduino nie masz pwm...a pokaz kod ktory napisales do tego jednego serwa

Link to post
Share on other sites
(edytowany)

@farmaceuta Dzięki za pomysł z przetwornicą, lecz nie jest to tak, że z akumulatora mamy już stałe napięcie i nie ma tam żadnych spadków, szumów itd?  I jeśli te serwa mogą pobrać nawet 2,5A to bym musiał zasilić je 12,5A ? A to mój kod do jednego serwa połączonego z potencjometrem:
 

#include <Servo.h>
Servo silnik;

void setup (){
  Serial.begin(9600);
  silnik.attach(9);
}
int pot, old;
void loop(){
   pot=analogRead(A0);//odczytujemy liczby z zakresu od 0 do 1023
   pot=pot*180.0/1023;//zamienimy na liczby od 0 do 180
   Serial.print(pot);
   silnik.write(pot);
  if (pot!=old){ //aby zmieniac polozenie tylko wtedy, kiedy sie zmienilo, a nie wyswietlac polozenie ciagle
   Serial.print(pot);
   silnik.write(pot);
   old=pot; 
  }
  }

 

Edytowano przez Gieneq
Link to post
Share on other sites
51 minut temu, Motororo napisał:

Czyli aby sterować serwo należy podpiąć pod PWM do arduino, tak? 

Tak...masz 6 takich wyjsc (sprzetowych)

 

53 minuty temu, Motororo napisał:

 I jeśli te serwa mogą pobrać nawet 2,5A to bym musiał zasilić je 12,5A dobrze mówię? 

Tak...ale jest to skrajny przypadek gdzie wszystkie 5 serw zostalo by zablokowanych podczas ruchu (nie wolno dopuszczac do tego, bo szybko ulegna zniszczeniu). W normalnym uzytkowaniu to okolo 1a na serwo pojdzie..

Masz taka opcje "wstaw kod programu" to tam wklejaj kod...ladnie widac...do skalowania jakiejs wartosci uzyj funkcji "map()", duzo szybsze w uzyciu niz kalkulowanie...

pot = map(pot,0,1023,0,180);

Pozatym kod wydaje sie byc wporzadku...🤔 ciagle po uplywie okolo 2 min. masz problem z tym serwem?

Link to post
Share on other sites

Jakiej wagi są Twoje serwa bo tak jak pisał @farmaceutanawet małe 9g potrafią pobrać w impulsie 1...2A a większe jeszcze więcej. Albo musisz zasilić je z wydajnego źródła typu akumulator (pamiętając że zwykle max napięcie serwa to 6V) albo mocna przetwornica albo każde serwo z osobnego stabilizatora 

Jeśli serwo obraca się "w kółko" to może być już uszkodzone ale to zależy od serwa 

Link to post
Share on other sites
1 godzinę temu, farmaceuta napisał:

ciagle po uplywie okolo 2 min. masz problem z tym serwem?

Te 2 minuty to było tak orientacyjnie, teraz na przykład kilka szybkich ruchów 0-180 stopni i już zaczęło się kręcić, kręcąc spokojnie możliwe że by nie było wariacji, ale to mnie nie zadowala. 

1 godzinę temu, _LM_ napisał:

Jeśli serwo obraca się "w kółko" to może być już uszkodzone ale to zależy od serwa 

Podczas pracy normalnej spokojnej pracują serwa dobrze, a gdy chcę przetestotwać je na większych obrotach to zaczyna kręcić się w kółko. 
 

 

1 godzinę temu, _LM_ napisał:

Jakiej wagi są Twoje serwa

Specifications:
• Weight: 55 g
• Dimension: 40.7 x 19.7 x 42.9 mm approx.
• Stall torque: 9.4 kgf·cm (4.8 V ), 11 kgf·cm (6 V)
• Operating speed: 0.17 s/60º (4.8 V), 0.14 s/60º (6 V)
• Operating voltage: 4.8 V a 7.2 V
• Running Current 500 mA –
• Stall Current 2.5 A (6V)
• Dead band width: 5 µs
• Stable and shock proof double ball bearing design
• Temperature range: 0 ºC – 4.8 V a 7.2 V – 900 mA (6V) double ball bearing design 55 ºC

To są dokładne parametry moich serwomechanizmów. 

A co jeśli bym kupił jakiś zasilacz, załóżmy 6V, tylko musiałby mieć też duży amperaż na takie zasilenie 5 serwomechanizmów na raz. Taki żeby nie musieć stabilizować, obniżać napięcia. 
Znalazłem taki: https://allegro.pl/oferta/zasilacz-uniwersalny-6-15v-5a-profitec-mw7h50gs-10491469325
Ale czy 5A też nie będzie za mało? Coś w tym może być? Ale skoro nawet na AKU wariowało i to nie zawsze te same serwomechanizmy to nie wiem co tu może być problemem. 
Wcześniej bywało tak, ale na zasilaczu 5V 2,2A, że serwomechanizmy chodziły, a nagle zostawały w pozycji 180 stopni i na nic nie reagowały, nie wiem co może być winą. Fakt że miałem zawsze 2 z 5 połączone nie do pinu PWM, ale testujac na potencjometrze na pinie PWM nadal jest wariacja, ciężko stwierdzić.

Link to post
Share on other sites
39 minut temu, Motororo napisał:

kręcąc spokojnie możliwe że by nie było wariacji, ale to mnie nie zadowala

Nie no ma chodzic normalnie i tyle...

 

45 minut temu, Motororo napisał:

A co jeśli bym kupił jakiś zasilacz, załóżmy 6V


Ale czy 5A też nie będzie za mało? 

Zasilacz spoko moze byc..5a, hmm to zalezy co chcesz poruszac tymi serwami.. najlepiej obciazyc jedno i zmierzyc prad..i wszystko jasne bedzie...

A wywal z ciekawosci ta linijke z kodu gdzie przeliczasz i wklej to "moje" z funkcja "map()", a jeszcze przed ta zmiana sprawdz co w monitorze Ci wyswietla podczas problemu

Link to post
Share on other sites

Przyszło mi do głowy że takie nietypowe zachowanie serwa może być spowodowane resetowaniem mikrokontrolera. Sprawdź czy kiedy serwo obraca się po tych 2 minutach reset arduino coś zmienia 

Link to post
Share on other sites
10 godzin temu, farmaceuta napisał:

jeszcze przed ta zmiana sprawdz co w monitorze Ci wyswietla podczas problemu

W monitorze pokazuje wartości od 0 do 180, czyli prawidłowo. 

 

1 godzinę temu, _LM_ napisał:

Sprawdź czy kiedy serwo obraca się po tych 2 minutach reset arduino coś zmienia 

Gdy serwomechanizm zaczyna się obracać, szybko staram się odpiąć z niego masę i gdy podłączę go na nowo, działa już poprawnie, ale potem podczas ponownej pracy potrafi znowu zwariować, jak nie jedno serwo to któreś z innych, lub więcej niż jedno. 

Link to post
Share on other sites
47 minut temu, Motororo napisał:

Gdy serwomechanizm zaczyna się obracać, szybko staram się odpiąć z niego masę i gdy podłączę go na nowo, działa już poprawnie, ale potem podczas ponownej pracy potrafi znowu zwariować, jak nie jedno serwo to któreś z innych, lub więcej niż jedno. 

Brak mi pomyslow...😕 u mnie dziala bez zarzutu...upewnij sie ze wszystkie kable napewno kontaktuja...i przelec te serwa wszystkie po kolei (pojedynczo)...byc moze cos z nimi nie tak, lub z arduino cos sie porobilo..

Link to post
Share on other sites

Jeśli programowo jest ok to zostaje sprawa zasilania. Dołóż do tych serw kondensatory o w miarę dużej pojemności. Szkoda że nie masz oscyloskopu bo szybko można zdiagnozować problem 

 

No chyba że coś się dzieje z ADC mikrokontrolera tj z wynikami z niego 

Link to post
Share on other sites
35 minut temu, farmaceuta napisał:

lub z arduino cos sie porobilo..

Nie wiem czy tak powinno być, ale podczas zasilenia arduino, świeci się ciągle dioda L, która chyba jest wbudowana jakby w pin 13. Tylko że ja tego pinu nawet nie mam w kodzie ani nic w niego podpiętego. Często też świeci Tx, no i wiadomo ON. Kabelki mnie wkurzają bo po wpięciu one są mimo wszystko luźne, niby stykają ale mnie to trochę wkurza.

25 minut temu, _LM_ napisał:

Dołóż do tych serw kondensatory o w miarę dużej pojemności

Gdzie te kondensatory umieścić przy serwomechaniźmie? Największe jakie mam to elektrolityczne 1uF

Link to post
Share on other sites

Tak, przy wtyczce od serwa i raczej większe coś np 220....1000uF

2 minuty temu, Motororo napisał:

arduino, świeci się ciągle dioda L, która chyba jest wbudowana jakby w pin 13.

Skoro odpinasz serwo od strony masy to jest cień szansy że napięcie przechodzi na port mikrokontrolera i uszkadza go

Link to post
Share on other sites

Podłączam identycznie jak facet z tego poradnika: https://create.arduino.cc/projecthub/diyguyChris/high-torque-servo-motor-control-35b1cc?fbclid=IwAR2Iun5dNm8H0t68fD8aRYrX1eo1kIUMQnT_mKTkgpcHOrZbRQRweSHNFiQ
moje serwo działa przez 3 sekundy, następnie przestaje reagować na jakikolwiek sygnał. Zasilam to wszystko kostką od ładowarki telefonicznej 5,3V 2A. Stwierdziłem że spróbuję zmienić serwomechanizm. Tutaj już trochę inaczej, serwomechanizm reagował na wszystko, lecz gdy zacząłem szybciej manewrować potencjometrem - zaczynał się kręcić, tak wiem może akurat 2,5A potrzebował. 
Mam 5 serwomechanizmów SG90, znacznie mniejsze, co wiążę się z mniejszą siłą jaką mogą uciągnąć. Podłączyłem wszystkie 5, analogicznie do schematu z linku wyżej. Zasilając tą samą kostką od telefonu i kręcąc jednym potencjometrem, wszystkie płynnie i równo chodzą. Także może problem tkwi w jakimś uszkodzeniu większych serwomechanizmów? Szkoda, bo siła by się przydała i nie wiem czy te małe serwa udźwignął moją konstrukcję, chyba że jakoś ją odciążę lub zrobię nowy projekt 3D. 

Link to post
Share on other sites

Według mnie brakuje Ci mocy na te większe serwa. Chociaż to kręcenie się wokół własnej osi nie wygląda dobrze, mimo to wzmocniłbym zasilanie pamiętaj też że płytka stykowa ma duże rezystancje co również może być przyczyną dziwnego zachowania serw, dlatego pisałem wcześniej o dużych pojemnościach na zasilaniu gdyż pomogą one zniwelować szarpnięcia prądu przez serwa. W docelowym układzie (na pcb) być może nie będziesz już musiał stosować aż tylu kondensatorów.

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.