Skocz do zawartości

Serwomechanizm MicroServo 9g SG90 zacina się


Pomocna odpowiedź

Napisano (edytowany)

Witam, problem jest prosty w opisie.

Servo z kursu arduino 1 działa prawidłowo przez kilkadziesiąt ruchów (zmian pozycji) a potem wywija dziwnego pirueta, jakby
poza skale swojego obrotu i się w tej pozycji zacina powodując prawie, że zwarcie całego układu.

Zostawiłem projekt ,,w ruchu", poszedłem na spacer z psem i za 10minut wracam a na baterii 9V jest 4V i Servo "w ogniu" parzy aż nie można dotknąć. Jedyne co na razie potrafię z tym zrobić to wyłączyć wszystko i ręcznie je przywrócić do zakresu ruchu. Czy to wada mechaniczna jakaś? 

Edytowano przez LieutenantDan

Na pewno dobrze podłączyłeś serwo do zasilania? Ja kiedyś omyłkowo podpiąłem zasilacz 12V zamiast 5V i teraz mam całkiem niegłupi silniczek (elektronika poszła w diabły).

Możesz spróbować rozkręcić serwo (potrzebny bardzo mały śrubokręcik), ale to raczej żeby zobaczyć co to ma w środku; biorąc pod uwagę ceny (jak się postarasz to kupisz za jakieś 7 PLN na Allegro) chyba lepiej kupić nowe.

No ono działa normalnie do czasu aż narobi mu się humoru i wykręci się poza skale swojego działania trzeba wtedy je wyłączyć od zasilania i przekręcić i wszystko jest ok. Ale to chyba nie jest normalny tryb pracy, gdy ktoś musi poprawiać i doglądać tego jak niemowlaka żeby się nic nie rozwaliło. Dodatkowo od nowości problem nr.2 to że serwo nie osiąga pełnego ruchu 0-180 tylko jakieś 170stopni max. Wyciągnięte z zestawu arduino 1. nic nie majstrowane przy nim.

A podpięte mam dobrze no bo działa i spełnia zadania wskazane w programie zasilanie to 8-9V bo z adaptera na 9V do arduino.

(edytowany)
3 godziny temu, LieutenantDan napisał:

No jest z 5V tylko arduino jest zasilane baterią 9V . Pin nr 9 (PWM)

 

No a jak jest zasilane samo serwo? Pewnie z Ardu...musisz mieć osobne zasilanie do tego serwa

Edytowano przez farmaceuta
10 minut temu, farmaceuta napisał:

musisz mieć osobne zasilanie do tego serwa

Bez przesady, SG90 aż tak dużo prądu nie bierze (szczególnie nieobciążone), chwilę podziała po podłączeniu do +5V. W każdym razie nie będzie się przekręcać.

1 godzinę temu, ethanak napisał:

Bez przesady, SG90 aż tak dużo prądu nie bierze (szczególnie nieobciążone)

U mnie dwa takie serwa bez obciążenia zasilane z Uno (usb) na tyle obciążały że led zasilania przygasał 😉, ale też sądzę że to nie tu problem... może potencjometr wewnętrzny padł?

Po pierwsze jedno to nie dwa, po drugie z usb możesz pociągnąć pół ampera (w porywach) i nic dziwnego że to nie chciało działać. Tu mamy jedno serwo i zasilacz... 

No jest arduino podłączone pod USB do komputera i jeszcze dodatkowo 9V do arduino, serwo zasilane z arduino podłączone jak na kursie. A serwo to jest z kursu arduino. Oryginalne lub nie, nie wiem tego, jak włożyli oryginalne to jest oryginalne. 
Powtórny opis:

1. Pozycja serwa jest ustalana potencjometrem i syćko gro dopóki się w pewnym momencie ono nie obrazi i nie wystrzeli poza swój zakres ruchu.

2. Jak już się wywali poza zakres to nie idzie tego przestawić przy włączonym zasilaniu. Palcami można pchać z całej siły i nic, dopiero po odłączeniu baterii lekko poruszone wchodzi w swój zakres działania i wszystko jest dobrze dalej.

Myśle że musi to być jakaś wada mechaniczna może ślizgające się koła zębate od wytartych ząbków. Ale tak na oko to niełatwo stwierdzić bo wszystko wygląda ok

(edytowany)
#include <Servo.h> 
 
Servo serwomechanizm;   

int potential = 0; // odczyt z potencjometru
 
void setup() {
   
  serwomechanizm.attach(9);  //Serwomechanizm podłączony do pinu 9
  Serial.begin(9600);
} 
 
void loop() {
  potential= analogRead(A5);
  potential = map(potential, 1, 1023, 1, 180); //przeskalowanie wartosci
  serwomechanizm.write(potential);
}

Oto kod może pomoże.

Update jest taki:

1.Serwo rozkręciłem

2.Funkcjonowało aż do standardowego zepsucia

3.Odłączyłem zasilanie pozostawiając serwo w pozycji zepsucia 

4.Rozebrałem mechanizm

5.Włączyłem zasilanie

6.(efekt) Silnik od serwa (już bez trybów) kręci się 100% czasu jakby nie było ono serwem lecz podkaszarką.

Edytowano przez LieutenantDan
33 minuty temu, LieutenantDan napisał:

#include <Servo.h> 
 
Servo serwomechanizm;   

int potential = 0; // odczyt z potencjometru
 
void setup() {
   
  serwomechanizm.attach(9);  //Serwomechanizm podłączony do pinu 9
  Serial.begin(9600);
} 
 
void loop() {
  potential= analogRead(A5);
  potential = map(potential, 1, 1023, 1, 180); //przeskalowanie wartosci
  serwomechanizm.write(potential);
}

Oto kod może pomoże.

Update jest taki:

1.Serwo rozkręciłem

2.Funkcjonowało aż do standardowego zepsucia

3.Odłączyłem zasilanie pozostawiając serwo w pozycji zepsucia 

4.Rozebrałem mechanizm

5.Włączyłem zasilanie

6.(efekt) Silnik od serwa (już bez trybów) kręci się 100% czasu jakby nie było ono serwem lecz podkaszarką.

kręci się, bo jedzie do ostatniej znanej pozycji, której nie osiąga bo zębatka do potencjometru nie dojeżdża tam gdzie trzeba.

3 godziny temu, BananWszyscy napisał:

kręci się, bo jedzie do ostatniej znanej pozycji, której nie osiąga bo zębatka do potencjometru nie dojeżdża tam gdzie trzeba.

zębatka do potencjometru? Można jakoś bardziej obrazowo?

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