Merhaba, bugün Arduino ile DC motorun nasıl sürüleceğini öğreneceğiz. Projemize geçmeden önce DC Motor nedir, ne işe yarar, nasıl çalışır ve çeşitleri nelerdir bahsetmek istiyorum.

DC Motor Nedir? Nasıl Çalışır?

DC motorlar doğru akım enerjisini mekanik enerjiye çeviren makinelerdir. Motorun içinde yer alan sargılara elektrik akımı uygulandığında, yine motorun içerisinde bulunan sabit mıknatıslara zıt yönde oluşan manyetik kuvvetin etkisi ile hareket etmesi prensibine dayanmaktadır.

DC Motor Çeşitleri Nelerdir?

DC motorları temel olarak 

olarak 4 başlık altında inceleyebiliriz.

Fırçalı DC Motorlar

Fırçalı oyuncak DC motor

Bu motorlar içlerinde bulunan bobinin sarmallarına fırça yardımıyla temas ederek elektrik akımını iletir ve akım bobinden geçerek mıknatıslar arasında elektromanyetik alan oluşturur, motorun hareket etmesini sağlar. En temel ve basit motor çeşidi olmakla beraber verimlilikleri de düşüktür. 

Herhangi bir DC motor sürücü ile kullanılabilirler. (L298N, L293B, L293D gibi..)

 

 

Fırçasız DC Motorlar

Fırçalı DC motorların aksine isminden de anlaşılacağı üzere içlerinde fırça bulundurmazlar. Fırça olmadığı için sürtünme azaldığından verimlilikleri yüksektir. Performans gerektiren projelerde, drone ve RC araba gibi alanlarda sıklıkla tercih edilirler. 

İçlerinde fırça bulunmadığı için ESC (Elektronic Speed Controller) adı verilen özel sürücülere ihtiyaç duyarlar. Örneğin fırçasız motorlardan yapılmış bir drone’da her motor için 30-40 Amperlik bir ESC bulunur.

Fırçasız drone motoru

Fırçasız motorları sürmek için kullanılan 40 Amperlik ESC

 

 

 

 

 

 

 

 

Step Motorlar

Konumlandırma hassasiyeti yüksek step motorlardır. 3D yazıcı, CNC gibi hassasiyet gerektiren projelerde kullanılırlar. Bipolar ve unipolar olmak üzere iki çeşit step motor vardır.

En çok tercih edilen modeli bipolar bir step motor olan Nema17′ dir. Nema 17 bir turu 200 adımda dönmektedir. Yani bu 360/200= 1.8 derecelik bir hassasiyetle kontrol edebileceğiniz anlamına geliyor.

Fırçalı ve fırçasız motorlara göre yavaş çalışırlar yüksek akım çekerler. Çalışmak için özel sürücülere ihtiyaç duyarlar. (A4988, DRV8825, TMC2130 gibi..) Bu sürücüler sayesinde step motor hassasiyeti 8x, 16x ,32, 64x, 128x şeklinde artırabilirsiniz.

En çok tercih edilen step motor sürücülerinden A4988

Nema 17 Step Motor

 

 

 

 

 

 

 

 

Servo Motorlar

Step motorlar kadar hassas olmayan fakat fırçasız motorlar kadar da serbest olmayan DC motorlardır. Arduino gibi mikrodenetleyici kartlarla direkt sürülmesi oldukça kolaydır. 0-180 derece arası dönen versiyonları piyasada bolca bulunsa da sonsuz turlu servo motorlar da vardır.

RC arabaların direksiyon kısmı ya da RC uçakların ‘flap’ ları gibi açı kontrolü gerektiren yerlerde kullanılmak için üretilmişlerdir. En büyük avantajları çok hafif olmalarıdır.

Arduino ile DC Motorlar Nasıl Kontrol Edilir?

Yukarıda belirttiğim gibi bazı DC motor çeşitleri özel sürücülere ihtiyaç duymaktadır. Step motor, fırçalı ve fırçasız DC motorları direkt olarak Arduino’ya bağlayamamamızın en büyük sebebi Arduino’nun çıkış pinleri en fazla 16mA akım verebilirken bu DC motorların yeri geliyor 5 amperden bile fazla akım çekmesi gerekiyor. Yani Arduino’nun sınırından yüzlerce kat fazla bir akım çekiyor diyebiliriz. Eğer bu DC motorları direkt Arduino’ya bağlarsak motorun bağlı olduğu pini yakma ihtimaliniz çok yüksek. Hem bu durumdan kaçınmak hem de motoru daha kolay kontrol edebilmek için motor sürücülerine ihtiyacımız var.

Örneğin, fırçalı bir DC motoru sürmek için transistör ya da H-köprüsüne sahip bir sürücü kullanmamız gerekirken, fırçasız motorlar için ESC, step motorlar içinse A4988 gibi sürücüler kullanmak zorundayız.

Biz bugün yazımıza örnek olması için L298N ve Arduino Uno kullanarak bir fırçalı DC motoru çift yönlü olarak kontrol edeceğimiz bir proje gerçekleştireceğiz.

Arduino ile Fırçalı DC Motor Kontrolü Devresi  

(NOT= L298N üzerindeki EN pinlerinin jumper ile kısa devre edildiğine dikkat edelim.)

Arduino ile Fırçalı DC Motor Kontrolü Kodları

const int in1 = 6; // + yönü
const int in2 = 7; // - yönü


void setup() {
  pinMode(in1, OUTPUT);  // 6 ve 7 numaralı pinlerimizden güç çıkışı olacağını belirttik.
  pinMode(in2, OUTPUT);
 
}

void loop() {

  digitalWrite(in1, HIGH); //+ yönünde 2 saniye çalıştırdık
  delay(2000);
  digitalWrite(in1, LOW);

  delay(1000);
  
  digitalWrite(in2, HIGH); //- yönünde 2 saniye çalıştırdık
  delay(2000);
  digitalWrite(in2, LOW);

  delay(1000);
 
}

Sonuç

Sonuç olarak kodu çalıştırdığınızda DC motorun 2 saniye + yönde, 2 saniye – yönde hareket ettiğini fark edeceksiniz ve eğer isterseniz koddaki “HIGH” yerine 0-255 arasında bir değer girerseniz motorunuzun hızını da değiştirebilirsiniz.

Bir projemizin daha sonuna geldik. “Arduino ile Fırçalı DC Motor Kontrolü” projesi hakkında herhangi bir sorunuz olursa bu gönderiye yorum olarak yazabilir ya da mail adresimden bana ulaşabilirsiniz.

🚀Okumanızı Tavsiye Ederiz: Servo Motor Nedir?

Önceki İçerikNeopixel Saat Uygulaması
Sonraki İçerikRaspberry Pico ile Analog Okuma
Elektrik elektronik mühendisi olarak özel sektörde çalışıyorum. Yaklaşık 6 yıldır Arduino ve Raspberry Pi ile Python ve C++ kullanarak projeler geliştiriyorum. Boş zamanlarımda 3D yazıcılar üzerinde çalışıyorum. Aynı zamanda da Robolink Akademi' de yazarlık yapıyor ve tecrübelerimi sizlerle paylaşıyorum.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz