Zaloguje się
or
Tel +48 698 615 740

Servo 995 – obługa i ustawnie

26 stycznia, 2022

W tym artykule dokładnie omówię jak powinniśmy ustawić servo pod względem tego jaką częstotliwość mamy zamiar na nim wywołać. W artykule zamieszczony jest również sposób połączenia serva z arduino oraz podstawowy program jego obsługi.

Spis treści

  • Krótki Opis (+ Pinout+ Konfiguracja kątu).
  • Specyfikacja
  • Przykład i połączenie
  • Pliki do pobranie

Krótki opis

Servo służy do przede wszystkim do regulowania położenia obiektu, natomiast może również zmienić jego prędkość obrotową i moment obrotowy. Ten model serva został wykorzystany do budowy zabawek i dronów ale również jako cześć układu niektórych teleskopów. Dużą zaletą serva jest to że nawet nieduże modele mogą być wykorzystane do pracy z ciężkimi przedmiotami.

Kable i oznaczenie

  • Czerwony – VCC
  • Brązowy – GND
  • Pomarańczowy – Sygnał PWN (kontrola obrotu)

Ustawienie obrotu

Zasada działania tego silnika to modulacja szerokości impulsu. Dany silnik może działać tylko z częstotliwością 50 MHz. Każda inna wartość prowadzi do nieprawidłowego działania urządzenia. Dlatego każdy cykl sygnału PWM trwa tylko 20 milisekund. Pozycja osi silnika zależy od cyklu pracy sygnału. Istnieje kilka standardowych obliczeń rotacji stopni. Jeśli sygnał PWM jest wysoki przez 0,5 ms w jednym cyklu, oś przesuwa się do zera stopni. Aby obrócić oś silnika o 90 stopni, sygnał powinien być wysoki przez 1,5 ms. Podobnie sygnał puszczony przez 2,5 ms prowadzi do położenia osiowego o 180 stopni. W ten sposób możemy mierzyć i sterować naszym silnikiem w żądanym stopniu. Aby wszystko było wygodne, napisane są specjalne biblioteki do sterowania i interfejsu silnika zamiast ustawiania wartości PWM za każdym razem. Jedna z nich została zamieszczona na dole artykułu

Specyfikacja

  • Napięcie robocze: 4,8 – 7,2 V
  • Temperatura pracy: 0 – 550C
  • Częstotliwość pracy: 50 Hz
  • Robocza prędkość silnika przy 4,8 V: 0,2 s/60 stopni
  • Robocza prędkość silnika przy 6 V: 0,16 s/60 stopni
  • Moment utyku silnika przy 4,8 V: 8,5 kg na cm
  • Moment utyku silnika przy 6,0 V: 10 kg na cm
  • Szerokość pasma martwego: 5 usec
  • Stopień obrotu: 180 stopni
  • Stan spoczynku Pobór prądu: 10 mA
  • Pobór prądu bez obciążenia: 170 mA
  • Maksymalny pobór prądu obciążenia: 1200 mA
  • Wymiary fizyczne: ok. 40,7 x 19,7 x 42,9 mm

Połączenie z arduino

Elementy:

  • Arduino Nano/Uno
  • Servo 995
  • 3 x kable stykowe(męs)

Arduino -> Servo

  • 5v – VCC
  • GND – GND
  • pin 8 – PWM

Program

Pierwsze 3 kroki to załączenie biblioteki “Servo” (poddana na dole artykułu). Definicja pinu z którego będziemy korzystać oraz utworzenie obiektu biblioteki.

#include <Servo.h> 
#define Servo_PWM 8
Servo MG995_Servo;

Kolejnym krokiem jest funkcja void setup(). Aktywujemy port szeregowy na baudrate 9600 oraz załączamy nasze servo.

void setup() {
  Serial.begin(9600); 
  MG995_Servo.attach(Servo_PWM); 
}

Na koniec została funkcja void loop() w której zaczynamy od ustawienia przez nasz post szeregowy wartości sygnału. Następnie serwo zacznie się obracać maksymalną prędkością przez 3 sekundy po czym odłączy się. Chciałbym jeszcze dodać że funkcja write(x) pozwala na obrót serva o dany kąt – x.(Może oczywiście wystąpić niedokładność w obrocie na co trzeba uważać). Dwie sekundy po odłączeniu servo znów się załączy i wróci do położenia początkowego z maksymalną prędkością. Potrwa to 3 sekundy po których znów się odłączy. Po wystąpieniu kolejnych 2 sekund znów się załączy i tak w kółko, aż nie odłączymy zasilanie.

void loop() {
  Serial.println("0");// You can display on the serial the signal value
  MG995_Servo.write(0); //Turn clockwise at high speed
  delay(3000);
  MG995_Servo.detach();//Stop. You can use deatch function or use write(x), as x is the middle of 0-180 which is 90, but some lack of precision may change this value
  delay(2000);
  MG995_Servo.attach(Servo_PWM);//Always use attach function after detach to re-connect your servo with the board
  Serial.println("0");//Turn left high speed
  MG995_Servo.write(180);
  delay(3000);
  MG995_Servo.detach();//Stop
  delay(2000);
  MG995_Servo.attach(Servo_PWM);   
}

Film instruktażowy – obrót

Tak jak wcześniej wspominałem aby poruszyć naszym serwo wykorzytsujemy funkcje write(x), gdzie x jest liczbą stopni z zakresu od 0 do 180. Pokaże teraz 3 przykłady obrotu serwa o wartości 30, 80 i 150.

Pliki do pobrania

Sticky
Możliwość komentowania Servo 995 – obługa i ustawnie została wyłączona
Dadas Bartosz

Dadas Bartosz

Jest Uczniem Technikum Budowlano-Elektronicznego w Świdnicy na kierunku Technik Informatyk. Na co dzień oprócz projektów z ardunio uczy się programować aplikacje mobile. W przyszłości chcę zostać programistą.

Comments are closed.

Strona korzysta z plików cookies w celu realizacji usługi i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.