
Arduino, motorları kontrol etmek için her zaman kullanılmıştır. DC motor, servo motor ve stepper motor gibi birkaç örnek verilebilir. Bugün, birçok elektronik meraklısı ve yapımcı tarafından basitliği ve işlevselliği nedeniyle yaygın olarak kullanılan 2 motoru, DC ve Servo Motoru ele alacağız.
Başlamak için, bugünkü blogda, Arduino kullanarak bir DC motoru kontrol etmenin 2 yolunu ve Arduino ile bir Servo Motoru nasıl kontrol edeceğimizi ele alacağız.
Bugünkü blogda şunlar ele alınacak:
- DC motor nedir
- Arduino Motor Shield ile DC motor kontrolü
- Arduino Motor Sürücü ile DC motor kontrolü
- Servo Motor nedir
- Arduino ile Servo motor kontrolü
DC motor nedir?
- DC Motor, doğru akım elektrik enerjisini mekanik enerjiye dönüştüren döner bir elektrik makinesini ifade eder. Elektrik enerjisini mekanik enerjiye dönüştürerek çalışabilen bir motordur. Buna karşılık, AC güç kullanan motor AC motordur.
- Akım geçtiğinde, motorun içindeki iki manyetik alan arasındaki zıt polarite, motorun sürekli olarak bir yönde dönmesine neden olur ve akım durduğunda durur.
- DC motorların polaritesi yoktur ( + veya – ile işaretlenmedikçe), bu da iki kablonun yerini değiştirerek motorun yönünü tersine çevirebileceğiniz anlamına gelir.
- Şunlardan oluşur:
- Stator
- Armature
- Rotor
- Fırçalı Komütatör
- DC motorlar birçok yerde yaygın olarak kullanılmaktadır. Bunlardan bazıları elektrikli süpürgeniz, saç kurutma makineniz, asansörler, otomobillerdeki elektrikli pencerelerdir vb.
- DC motorlar, yüksek başlangıç torku (yüksek dirençli torklarla başa çıkabilme ve yükteki ani artışları zahmetsizce absorbe edebilme), basitlik ve diğer motorlarla karşılaştırıldığında verimlilik nedeniyle hala yaygın olarak kullanılmaktadır.
Daha fazla uzatmadan, bir Arduino Motor Shield kullanarak bir DC motoru nasıl kontrol edeceğimize hemen geçelim.
DC motor neden dönebilir?
Bu, sol el kuralı nedeniyle. Akım rotor üzerinden geçtiğinde, rotor manyetik alanda bir kuvvet üretir ve bu da dönebilir. Akım geçtiğinde, motorun içindeki iki manyetik alan arasındaki zıt polarite, motorun sürekli olarak bir yönde dönmesine neden olur ve akım durduğunda durur.
DC motorların polaritesi yoktur ( + veya – ile işaretlenmedikçe), bu da iki kablonun yerini değiştirerek motorun yönünü tersine çevirebileceğiniz anlamına gelir.
Temelde, bir DC motorun iki ucu (pozitif ve negatif) doğrudan bir güç kaynağına bağlandığında, motor dönecek ve bir yönde hareket edecektir. Uçlar değiştirildiğinde, motor ters yönde dönecektir.
Arduino Motor Shield ile DC motor kontrolü
- Motor Shield, motorların çalışma hızını ve yönünü kontrol etmek için Arduino kullanmanıza olanak tanıyan bir sürücü modülüdür.
- Motor sürücü modülünün çalışma prensibi, motorun çalışmasını kontrol etmek için Arduino’dan gelen sinyale göre güç elektronik cihazlarını kontrol etmektir.
- Motor Shield, Dual Full-Bridge Drive Chip L298’e dayanmaktadır, iki DC motoru veya bir step motoru sürme yeteneğine sahiptir. L298’in ne olduğunu bilmiyorsanız, L298 motor sürücüsü hakkında diğer blogumuza buradan göz atabilirsiniz!
- Peki, bir DC motoru Arduino motor shield ile nasıl sürersiniz?
Ne gerekiyor?
Motor Shield ile DC motoru sürmek için adım adım talimatlar
- Adım 1
- SEN_A ve SEN_B ayarlayın ve sol 2 pini bir jumper ile birleştirin.
- Adım 2
- MB_EN‘yi bir jumper ile birleştirin, çünkü harici güç kullanmayacağız.
- Adım 3
- DC motoru Kanal 0’a (OUT1 ve OUT2) bağlayın ve Motor Shield’ı Arduino’ya takın.
- Arduino’yu bir USB kablosu ile PC’ye bağlayın.
- Bağlantınız şöyle görünmelidir:

- Adım 4
- Motor shield kütüphanesini buradan indirin ve kütüphaneyi kurun.
- Arduino kütüphanesini nasıl kuracağınızı bilmeyen kullanıcılar için, Arduino kütüphanesi nasıl kurulur konulu kılavuzumuzu takip edebilirsiniz.
- Adım 5
- Aşağıdaki kodu Seeeduino’ya yükleyin:
// Demo fonksiyonu: DC motoru sürmek için uygulama yöntemi.
// Yazar:Loovee (luweicong@seeed.cc)
// 2016-3-11
#include "MotorDriver.h"
MotorDriver motor;
void setup()
{
// başlat
motor.begin();
}
void loop()
{
motor.speed(0, 100); // motor0'ı 100 hızında ayarla
delay(1000);
motor.brake(0); // fren
delay(1000);
motor.speed(0, -100); // motor0'ı -100 hızında ayarla
delay(1000);
motor.stop(0); // dur
delay(1000);
}
// DOSYA SONU
Motorunuz 1 saniye hareket etmeli, başka bir saniye durmalı, 1 saniye geri hareket etmeli, 1 saniye durmalı ve döngüye girmelidir. Hiçbir şey olmuyorsa, lütfen şunları kontrol edin:
- Kod başarıyla yüklendi
- Motor düzgün bir şekilde bağlandı
- LED göstergeleri doğru bir şekilde yanıp sönüyor
Hepsi bu kadar! 5 adımda bir DC motoru Arduino Motor shield ile çalıştırmayı başardınız! Motor shield ayrıca bir servo motoru çalıştırmak için de kullanılabilir! İlgileniyor musunuz? Nasıl olduğunu öğrenmek için buraya tıklayın.
Arduino Motor Sürücüsü ile DC Motor Kontrolü
- Grove – I2C Motor Sürücüsü V1.3 (en son sürüm) Stepper Motor veya DC Motoru doğrudan kontrol edebilir.
- Kalbi, her kanalda 2A’ya kadar akım taşıyabilen çift kanallı bir H-köprü sürücü çipi (L298N) ve Arduino gibi platformlarla I2C iletişimini yöneten bir Atmel ATmega8L’dir.
- L298N sürücü çipi hakkında daha fazla bilgi almak için diğer blog yazımıza buradan ulaşabilirsiniz!
- Her iki motor da farklı hız ve yönlerde aynı anda çalıştırılabilir ve iki fırçalı DC motoru veya bir 4 telli iki fazlı stepper motoru besleyebilir.
- Tüm sürücü hatları geri EMF’den diyotlarla korunmaktadır.
- Peki, bir DC motoru Arduino ve bir Motor sürücüsü ile nasıl çalıştırırsınız?
Ne gerekiyor?
- Seeeduino V4.2
- Base Shield V2 – Opsiyonel, Bağlantıları daha basit hale getirmek için
- Grove – I2C Motor Sürücüsü V1.3
Motor sürücüsü ile DC motoru çalıştırma adım adım talimatlar
- Adım 1
- Grove I2C motor sürücüsü V1.3’e eklenen yeni bir işlev olan döner anahtar ile adresi ayarlayın.
- Programda adres ayarını, I2C motor sürücüsündeki adres ayarıyla aynı tutmaya dikkat edin. Programdaki varsayılan adres ayarı 0x0f’dir.

- Adım 2
- Grove – I2C Motor Sürücüsü V1.3’ü Grove-Base Shield’in I2C portuna bağlayın ve Grove – Base Shield’i Seeeduino’ya takın.
- Eğer bir Grove Base Shield’iniz yoksa, Grove-I2C Motor Sürücüsü V1.3’ü doğrudan Seeeduino’ya aşağıda gösterildiği gibi bağlayabilirsiniz:
- Adım 3
- Grove – Base Shield’i Seeeduino’ya takın ve Seeeduino’yu bir USB kablosu ile PC’ye bağlayın.
- Bağlantınız aşağıdaki gibi görünmelidir:
| Seeeduino V4.2 | Grove – I2C Motor Sürücüsü V1.3 |
| 5V | Kırmızı |
| GND | Siyah |
| SDA | Beyaz |
| SCL | Sarı |
- Adım 3
- Seeeduino’yu bir USB kablosu ile PC’ye bağlayın.
- Bağlantınız aşağıdaki gibi görünmelidir:

- Adım 4
- Grove I2C Motor Sürücü V1.3 Kütüphanesini Github’dan indirin ve kütüphaneyi kurun.
- Eğer Arduino için kütüphane nasıl kurulur bilmiyorsanız, Kütüphane nasıl kurulur kılavuzumuza başvurabilirsiniz.
- Adım 5
- Aşağıdaki kodu Arduino IDE’ye kopyalayın ve yükleyin.
- Kodu nasıl yükleyeceğinizi bilmiyorsanız, kod yükleme kılavuzumuza başvurabilirsiniz.
// varsayılan I2C adresi 0x0f
#define I2C_ADDRESS 0x0f
void setup()
{
Motor.begin(I2C_ADDRESS);
}
Bununla birlikte, DC motoru, motor sürücüsünü ve Arduino’yu başarıyla bağlamış oldunuz. İşte DC motorlarınızı kontrol etmek için kullanabileceğiniz 2 işlev:
// Bir motorun hızını ayarlayın, hız burada görev döngüsüne eşittir
void speed(unsigned char motor_id, int _speed);
// Bir motoru durdur
void stop(unsigned char motor_id);
- speed() işlevi ile istediğiniz hızda bir motoru çalıştırabilirsiniz.
- Motor_id hangi motorun kullanılacağını temsil eder, MOTOR1 veya MOTOR2 olabilir.
- _speed motor için ayarladığınız hızı temsil eder. Buraya -100~100 değerlerini girebilirsiniz. _speed>0 olduğunda, DC motor saat yönünde döner, _speed<0 olduğunda, DC motor saat yönünün tersine döner. _speed’in mutlak değeri ne kadar büyükse, DC motorun hızı o kadar hızlıdır.
- stop() işlevi ile çalışan bir DC motoru durdurabilirsiniz.
- Motor_id hangi motorun kullanılacağını temsil eder, MOTOR1 veya MOTOR2 olabilir.
Servo Motor Nedir
- Servo motor, açısal pozisyonun hassas kontrolünü sağlayan bir döner aktüatördür, bu da onları hassas pozisyon kontrolünün gerekli olduğu kapalı döngü sistemlerinde kullanıma uygun hale getirir.
- Servo motorlar kapalı döngü sistemlerinin bir parçasıdır ve yüksek verimlilikle makine parçalarını büyük hassasiyetle döndüren kendine yeterli elektrikli cihazlardır.
- Servo Motorlar şunlardan oluşur:
- Kontrol Devresi
- Küçük DC Motor
- Potansiyometre
Servo motorun çalışma prensibi
- Servo motorlar, motor dönerken potansiyometre direncinin değiştiği kontrol tekerleğine dişlilerle bağlıdır, böylece kontrol devresi hareket miktarını ve yönünü hassas bir şekilde düzenleyebilir.
- Motor, şaft için son komut pozisyonunu temsil eden hareket miktarını belirleyen analog veya dijital bir elektrik sinyali ile kontrol edilir.
- Kapalı döngü mekanizması ile, döner veya lineer hız ve pozisyonu kontrol etmek için pozisyon geri bildirimi içerir.
- Servo Motorlar yüksek verimlilik ve güçte oldukları için robotlar, uçaklar ve hassas pozisyon kontrolünün gerekli olduğu endüstriyel ve ticari uygulamalarda birçok alanda kullanılmaktadır.
Servo motorun uygulamaları
Yüksek hassasiyet gerektiren alanlar, makine aletleri, ambalaj ekipmanları, tekstil ekipmanları, lazer işleme ekipmanları, robotlar, otomatik üretim hatları ve diğer nispeten yüksek işlem hassasiyeti gerektiren ekipmanlardır.
Arduino ile Servo motor kontrolü
Bu eğitim aracılığıyla, Arduino’nuz ile bir Servo Motoru 3 basit adımda nasıl kontrol edeceğinizi öğreneceksiniz.
Neye ihtiyacınız var
- Seeeduino V4.2 (Arduino UNO Uyumlu Kart)
- Grove – Servo
- Base Shield V2 (Kolay bağlantı için)
Arduino ile Servo Motoru nasıl çalıştıracağınız hakkında adım adım talimatlar
- Adım 1: Servoyu Seeeduino’ya bağlayın
- Servo üç kabloya sahiptir: güç, toprak ve sinyal.
- Püskürtme kablosu genellikle kırmızı olup, Arduino/Seeeduino kartındaki 5V pinine bağlanmalıdır.
- Toprak kablosu genellikle siyah veya kahverengi olup, Arduino kartındaki bir toprak pinine bağlanmalıdır.
- Sinyal pini genellikle sarı, turuncu veya beyazdır ve Arduino kartındaki D5 pinine bağlanmalıdır.
- Dijital portu istediğiniz gibi değiştirebilirsiniz, ancak demo kodunun tanımındaki port numarasını değiştirmeyi unutmayın!
- Adım 2: Modülü PC’ye bağlayın
- Modülü Base Shield üzerindeki D5 portuna bağlayın.
- Grove-Base Shield’i Arduino’ya takın.
- Arduino’yu bir USB kablosu ile PC’ye bağlayın.
- Adım 3: Yazılım
- Arduino Servo Kütüphanesini kullanarak bir servonun milini 180 derece ileri geri hareket ettireceğiz. Arduino Servo Kütüphanesi ile.
- Kodu doğrudan şu yolla açın: Dosya -> Örnekler -> Servo -> Sweep.

/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.
modified 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Sweep
*/
#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(5); // attaches the servo on pin 5 to the servo object
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
Ve işte bu kadar! Sketch’i yükledikten sonra, Servonun hareket ettiğini görmelisiniz.
Özet
Arduino, motor çalıştırma konusunda her zaman popüler olmuştur ve bugün, bir DC Motor ve bir servo motor çalıştırmak için iki örneği ele aldık. Arduino kullanarak bir DC veya Servo motoru nasıl çalıştıracağınız hakkında herhangi bir sorunuz varsa, lütfen aşağıdaki yorumlarda bırakmaktan çekinmeyin.
Ayrıca, Arduino’nun çalıştırabileceği daha birçok motor var, örneğin stepper motorlar! İlgileniyor musunuz? Tüm motor ürünlerimizi buradan kontrol edebilirsiniz!




