You are on page 1of 7

Arduino ile servo motor nasıl çalıştırılır?

Servo motor, genellikle belirli bir pozisyonu veya açıyı hassas bir şekilde kontrol etmek
amacıyla kullanılan bir tür elektrik motorudur. Bu motorlar, bir geri bildirim sistemi ile
donatılmıştır, bu sayede motorun mevcut konumu sürekli olarak izlenir ve kontrol edilir. Bu
geri bildirim genellikle bir potansiyometre, enkoder veya başka bir pozisyon algılama cihazı
tarafından sağlanabilir. Servo motorların temel amacı, bir sistemde istenen konum veya açıyı
hassas bir şekilde korumak ve kontrol etmektir. Bu nedenle, endüstriyel otomasyon, robotik
sistemler, RC (uzaktan kumandalı) araçlar, CNC makineleri gibi birçok uygulama alanında
kullanılırlar. Servo motorların çalışma prensibi şu şekildedir: Bir kontrol sinyali, motorun
belirli bir konuma gitmesini istediği hedef pozisyonu belirler. Motor, bu sinyali kullanarak
geri bildirim sistemini kullanır ve mevcut pozisyonunu belirler. Ardından, bir kontrol
algoritması, motorun hedef pozisyon ile mevcut pozisyon arasındaki farkı düzeltmek için
gerekli olan güç ve yönlendirme sinyalini hesaplar. Bu sayede servo motor, istenen pozisyonu
hassas bir şekilde elde edebilir.

Arduino ile Servo Motoru Devresi Oluşturma

Bu devreyi oluşturmak için gerekli malzemeler şunlardır;


 Arduino uno kartı
 SG90 Servo motor
 Jumper kablolar
 Potansiyometre
 Bread board
SG90 servo motor Arduino kartına şu şekilde bağlanır:
Ground pini (kahverengi kablo) Arduino GND pinine bağlanır.
Güç kaynağı pozitif terminal pimi (kırmızı kablo) Arduino'nun 5V pimine bağlanır.
Kontrol sinyali pini (turuncu kablo) Arduino dijital pin 9'a bağlanır. Servonun konumunu
(açısını) ayarlamak için bir potansiyometre kullanılır, çıkışı Arduino analog kanalı A0'a
bağlanır.
Servo motorun potansiyometre ile kontrol edilmesi, potansiyometrenin konumunu okumak
için Arduino'nun analog girişini (A0) kullanmayı ve bu değeri servo motoru kontrol etmek
için eşlemeyi içerir. Bu nedenle servo potansiyometrenin durumuna göre pozisyon alır.
Potansiyometre terminallerinin bir ucu Arduino'nun 5V pinine, diğer ucu ise Arduino kartının
GND pinine bağlanır.

Servo motor devresi oluşturulduktan sonra Arduino uno kartına kodlar yüklenir;

#include <Servo.h> // include Arduino Servo library

Servo servo; // create servo object to control a servo

#define PotPin A0 // define potentiometer output pin connection

#define ServoPin 9 // define Servo control pin connection

void setup()

{
servo.attach( ServoPin ); // attaches Servo control pin

void loop()

uint16_t an = analogRead(PotPin); // read analog data from potentiometer output

uint8_t angle = map(an, 0, 1023, 0, 180); // scale previous value between 0 and 180 (angle form)

if ( angle != servo.read() ) // check if angle changed

servo.write(angle); // set new servo motor angle

delay(10); // waits for the servo to get there

// end of code
Arduino ile step motor nasıl çalıştırılır?

Step motor, bir elektrik motoru türüdür ve belirli adımlar halinde döner. Bu adımlar, motorun
bir dönme hareketini belirli bir açıda bölmesini sağlayan manyetik alan değişiklikleriyle
oluşur. Step motorlar genellikle dijital sinyallerle kontrol edilir ve her bir adım, belirli bir
açıya veya konuma karşılık gelir.
Step motorların temel özellikleri şunlardır:
 Adım Adım Hareket: Step motorlar, belirli adımlar halinde dönerler. Her adım,
motorun bir sabit açıda dönmesini temsil eder. Bu özellik, motorun konumunun
hassas bir şekilde kontrol edilebilmesini sağlar.
 Dijital Kontrol: Step motorlar genellikle dijital sinyallerle kontrol edilir. Her adım için
bir darbe sinyali gönderilerek motorun dönmesi sağlanır. Bu, motorun belirli bir
konumda durmasını ve istenilen konuma yönlendirilmesini sağlar.
 Kolay Kontrol: Step motorlar, mikrodenetleyiciler veya özel step motor sürücüleri
aracılığıyla kolayca kontrol edilebilir. Bu, birçok endüstriyel uygulama ve otomasyon
sistemlerinde kullanılmalarını sağlar.
 Kuvet ve Tork: Step motorlar genellikle düşük hızlarda çalışsa da yüksek tork üretebilirler.
Bu özellikleri, birçok uygulamada kullanılmalarını sağlar, özellikle düşük hızda ve hassas
hareket gerektiren yerlerde.

Step motorlar, yazıcılar, CNC makineleri, robotik sistemler, otomatik kapılar, pozisyon
kontrol sistemleri ve birçok endüstriyel uygulama alanında kullanılır. Hassas pozisyon
kontrolü gerektiren yerlerde ve birçok adımlı hareketin hassas kontrolü için tercih edilirler.

Arduino ile Step Motor Devresi Oluşturma

Bu devreyi oluşturmak için gerekli malzemeler şunlardır;


 Arduino Uno
 28BYJ-48 Step Motor ve Uln2003 Sürücü
 Jumper Kablo
28BYJ-48 Step Motor Arduino kartına şu şekilde bağlanır:

Motor sürücüdeki 4 adet IN girişini arduinoda 8 9 10 11 pinlerine aşağıdaki görüldüğü gibi


bağlıyoruz. Daha sonra besleme için GND ve VCC bağlantılarını yapmamız gerekiyor.
Kırmızı kablo VCC(+5V), mavi kablo ise GND (-)’yi temsil etmektedir.

Step motor devresi oluşturulduktan sonra Arduino uno kartına kodlar yüklenir;

int sure = 3; //Her adımda bekleme süresi

#define IN1 11 //Motor

#define IN2 10 //Sürücü

#define IN3 9 //Pin

#define IN4 8 //Bağlantıları

void setup() {

pinMode(IN1, OUTPUT); //Pinleri

pinMode(IN2, OUTPUT); //Çıkış

pinMode(IN3, OUTPUT); //Olarak

pinMode(IN4, OUTPUT); //Tanımladık

void loop() {

// 512 Adım Tam Tur 360 Derecedir.


SaatYonu(512); //Saat Yönü 512 Adım

delay(1000);

SaatTersYonu(512);//Saat Ters Yönü 512 Adım

delay(1000);

void SaatYonu(int adimSayisi) {

for (int i = 0; i < adimSayisi; i++) {

digitalWrite(IN4, HIGH);

delay(sure);

digitalWrite(IN4, LOW);

digitalWrite(IN3, HIGH);

delay(sure);

digitalWrite(IN3, LOW);

digitalWrite(IN2, HIGH);

delay(sure);

digitalWrite(IN2, LOW);

digitalWrite(IN1, HIGH);

delay(sure);

digitalWrite(IN1, LOW);

void SaatTersYonu(int adimSayisi) {

for (int i = 0; i < adimSayisi; i++) {

digitalWrite(IN1, HIGH);

delay(sure);

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

delay(sure);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

delay(sure);
digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

delay(sure);

digitalWrite(IN4, LOW);

You might also like