KKM: SERVO MOTOR TOWER PRO SG90

KKM: SERVO MOTOR TOWER PRO SG90-Uncategorized

TOWERPRO SG90

Zamislite servo motor kao (servo) volan kojim upravlja robot. Možemo mu odrediti tj zadati kut, brzinu okretanja i akceleraciju. TowerPro SG90 je vrlo mali, precizni i povoljni servo motorić na kojem ćemo učiti princip rada servo motora. Slobodno koristite ovaj tutorijal i za druge servo motore.

Karakteristike: (pogledaj datasheet)
Masa: 9g
Dimenzije: 23 x 12 x 29 mm
Moment (4.8V): 1.8kg/cm
Temperatura: 0℃ – 55℃
Napon: 3.5V-6V
Duljina kablića: 25cm
Konektor: JR

Što je zapravo taj moment?
Kada servo motor dobije naredbu za pokret okretati će se do zadane pozicije i zadržati ju. Ako vanjska sila djeluje na motor dok drži poziciju, servo motor će se odupirati pokušavajući zadržati istu. Maksimalna sila koju servo može podnijeti je zapravo moment iz datasheeta.

NAPOMENA: ne okrećite kotačiće servo motora rukama, mogli biste ga oštetiti.

KAKO RADI SERVO MOTOR

Servo motori sastoje se od DC motora, potenciometra i kontrolne pločice. Kako se motor okreće, otpor na potenciometru se mijenja.Na taj način kontrolna pločica može precizno regulirati okret, brzinu, akceleraciju i smjer okreta.

Servo motore kontroliramo slanjem PWM signala preko kontrolne žice. Obavezno koristite neke od PWM pinova s Dasduina (3, 5, 6, 9, 10 ili 11). Ovisno o duljini pulsa rotor se okreće na željenu poziciju. TowerPro, kao i večina servo motora, ima mogućnost okreta 90 stupnjeva u oba smjera ukupno 180 stupnjeva. Ukoliko imate potrebu za servo motor s punjim okretom pogledajte SM S4303R servo motor.

 

SPAJANJE MOTORA I DASDUINA

ARDUINO KOD

ArduinoIDE dolazi sa servo libraryem, trebamo ga samo pozvati. Pogledajte reference libarya.

#include "Servo.h"
 
Servo servo;  // kreiramo servo objekt za upravljanje motorom
              // library podržava maksimalno 8 motora
 
int poz = 0;    // varijabla u koju spremamo trenutnu poziciju motora
 
void setup()
{
  servo.attach(9);  // signalni PWM pin Croduina je 9
}
 
 
void loop()
{
  for(poz = 0; poz < 180; poz += 1)  // motor se okrece od 0 do 180 stupnjeva
  {                                  // u koracima od 1 stupnja
    servo.write(poz);                // kazemo servo da provjeri varijablu poz za poziciju
    delay(15);                       // cekamo 15ms da motor dode na zadanu poziciju
  }
  for(poz = 180; poz>=1; poz-=1)     // vracamo motor na pocetnu poziciju
  {
    servo.write(poz);             
    delay(15);                    
  }
}