Skocz do zawartości

Problem z sterowaniem serwomechanizmem.


WujekJewpat

Pomocna odpowiedź

Witam , na wstępie chciałbym zaznaczyć że dopiero się uczę oraz dużo rzeczy staram się poznawać więc ten problem może być oczywisty lecz ja mogę go nie zauważać 🙂

Tak jak w tytule, mam problem ze sterowaniem serwem, posiadam 2 takie same serwa które przybyły wczoraj do mnie, oczywiście zapalony chciałem je od razu przetestować oraz zobaczyć czy w ogóle działają, jak się okazało działały, przerobiłem prosty przykład aby sprawdzał wartość 4 pinów w arduino i następnie poruszał serwami

Jednak jedno serwo nie chciało się poruszać, wibrowało tylko cały czas ( troszkę to na lewo na prawo ) i tu pada moje pytanie, czy będzie to wada mechaniczna serwa?

Według mnie nie może ustawić się do wyznaczonej mu pozycji i dlatego tak skacze troszkę na prawo i lewo. Zaznaczam że serwa były jednymi z najtańszych i mogłem nadziać się na minę 😕 Serwa to Redox s90.

Z góry dziękuje za każdą pomoc. 😃

Link do komentarza
Share on other sites

Jaką wydajność prądową ma ten Twój stabilizator 5V? Może ma zbyt małą wydajność, może serwo jest uszkodzone mechanicznie. Nie wiemy tego bo podałeś zbyt mało informacji. Nie opisałeś dokładnie co i jak podłączyłeś, nie dałeś schematu, nie napisałeś czy serwa działały jednocześnie, nie podałeś kodu, który sterował tymi serwami. Jak sam widzisz, tak wiele, jak zadałem pytań, a sądzę, że mógłbym jeszcze kilka ich zadać, tak wiele może być na nie odpowiedzi. Czyli może być wiele powodów, dla których to serwo nie działa poprawnie. Daj zdjęcia serwa, może rozkręć je i zobacz czy nic nie utkwiło pomiędzy zębatkami, czy da się ręcznie obrócić ramieniem serwa itp.

PS. Wakat wróżki mamy wolny, gdyby ktoś z odpowiednimi umiejętnościami chciał objąć to stanowisko 🙂.

Link do komentarza
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

Sabre Sorry 😕 , stabilizator może mieć maksymalny prąd wyjściowy 1A, arduino jest zasilane z portu USB

Tutaj wklejam kod :

#include <Servo.h>
Servo myservo;
Servo myservo2;
void setup() {
 Serial.begin(9600);
myservo.attach(11);
myservo2.attach(10);
pinMode(7,INPUT);
pinMode(6,INPUT);
pinMode(5,INPUT);
pinMode(4,INPUT);
}
void loop() {
if(digitalRead(7) == HIGH) {
 myservo.write(60);
 Serial.println("7");
 }
  if (digitalRead(6) == HIGH) {
   Serial.println("6");
   myservo.write(160);
  }
 if(digitalRead(5) == HIGH) {
   Serial.println("5");
 myservo2.write(60);
 }
  if (digitalRead(4) == HIGH) {
   Serial.println("4");
   myservo2.write(160);
  }
}

Przepraszam ale nie jestem w stanie podać schematu ponieważ nie posiadam programu do tworzenia takowych a nie chcę ranić oczu paintem 😋

Nie podałem także wszystkich elementów układu , pod stabilizator podpięte są obecnie 2 serwa oraz odbiornik 4 kanałowy 315 MHz , taki popularny można go dostać na botlandzie

Postaram się opisać układ :

ze stabilizatora wychodzi + , - podpięte są one do szyny na płytce stykowej

do tej samej szyny także podpięte są serwa oraz odbiornik ( jego zasilanie oraz masa) z odbiornika podprowadzone mam 4 wyjścia do masy poprzez rezystory 10K oraz do pinów 4,5,6,7 w arduino , w arduino do pinu 11 oraz 10 mam podpięte serwo , oraz masę podpiętą z arduino do szyny na płytce stykowej

Serwo także czasami nie reaguje na sygnały , Gdy mam podpięte 1 problem prawie że znika gdy natomiast 2 , nie chcą reagować.

Myślę że może to być spowodowane wydajnością stabilizatora ( który gdy wpinam 2 serwa zaczyna się grzać , czyli to na prawie na pewno to ?)

Edit: oraz czasami serwo samo z siebie zaczyna kręcić silniczkiem lecz nie orczykiem i wtedy nie reaguje

Link do komentarza
Share on other sites

A z czego zasilasz ten stabilizator? Grzanie stabilizatora liniowego to normalny objaw "stabilizacji" i poboru prądu z niego. Mierzyłeś napięcie z tego stabilizatora po podłączeniu tych 2 serw? Może źródło z którego zasilasz ma zbyt małą wydajność, może te serwa pobierają na tyle duży prąd, że stabilizator nie daje rady. Z samym kodem arduino Ci nie pomogę bo nie znam go 🙂.

Link do komentarza
Share on other sites

Sabre, Podpiąłem multimetr i zacząłem mierzyć , okazało się że stabilizator daje prąd taki jaki powinien czyli 5V , lecz w momencie gdy wysyłam sygnał do odbiornika a odbiornik do arduino które każe serwomechanizmowi obrócić się , napięcie spada o około 0,2V w rezultacie czego odbiornik prawdopodobnie przestaje pracować.

W momencie gdy serwo zaczyna kręcić silnikiem prąd wynosi dalej 4,8V czyli odbiornik nie pracuje czyli nie mogę wysłać sygnału do serwa. A przynajmiej tak mi się wydaje 😃

I teraz nasuwa mi się pytanie, czy można ze sobą spiąć 2 stabilizatory równolegle ? Da to jakiś rezultat?

Edit: teraz zauważyłem że gdy serwo tak kręci się samo z siebie (tylko silnikiem) przez dłuższą chwilę napięcie bardzo spada , a stabilizator zaczyna się bardzo grzać.

Link do komentarza
Share on other sites

prąd taki jaki powinien czyli 5V

Nie prąd, tylko napięcie 🙂

Nie dziw się, że przy zasilaniu z USB całość "siada". Rozwiązanie swoich problemów z serwami znajdziesz w kursie Arduino, jest tam fragment na temat serwomechnizmów oraz ich zasilania: Kurs Arduino – #5 – PWM, serwomechanizmy, biblioteki

Link do komentarza
Share on other sites

Witam,
Posiadam dwa serwa jedno 180 waygat a drugie 360 kitronik. 
Mam taki problem że serwo 180 pracuje prawidłowo jak chcę, ale serwo 360 jak podłączę to ciągle się kreci w kółko. Korzystam z biblioteki servo.h
Zasilanie serwa zewnętrzne ze wspólną masą z arduino.

Poniżej kod źródłowy do testu:

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(3);  // attaches the servo on pin 9 to the servo object
}

void loop() {

    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(100);                       // waits 15 ms for the servo to reach the position

}

 

Edytowano przez maxiorex
Link do komentarza
Share on other sites

Dnia 12.11.2023 o 13:22, maxiorex napisał:

serwo 360 jak podłączę to ciągle się kreci w kółko

Czyli prawidłowo - serwo 360 działa jak silnik z regulowanymi obrotami i przy podaniu 0 powinien się kręcić. 

Link do komentarza
Share on other sites

1 godzinę temu, ethanak napisał:

Czyli prawidłowo - serwo 360 działa jak silnik z regulowanymi obrotami i przy podaniu 0 powinien się kręcić. 

Możesz wytłumaczyć albo podać link, ponieważ chcę użyć tego typu serwo. Dzieki

Link do komentarza
Share on other sites

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

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.