Arduino ile DC Motor Çalıştırma (Yön, Hız, Konum) | Hayal Et ve Yap
Merhaba arkadaşlar, sonunda arduino ile dc motor çalıştırma ve kontrol etmeyi öğrenmek istediniz ve buradasınız 🙂 Bu yazımızda arduino ile dc motor kontorlü ve çalıştırma, 2 dc motor kontrolü, motor yön kontrolü, motor ileri geri kontrolü, yön ve pozisyon kontrolü konularına değineceğiz. Arduino ile dc motorları kontrol etmenin en kolay ve ucuz yollarından biri, L293D Motor Sürücüsü ile Arduino kullanımıdır. L293d motor sürücü iki DC motorun hem hızını hem de dönüş yönünü kontrol edebilme yeteneğine sahiptir.
Arduino ile Step Motor Kontorlü
Yeni bir arduino projesi robot yapmayı planlıyorsanız, sonunda arduino ile step motorları kontrol etmeyi öğrenmenin vakti geldi. Step motorları kontrol edebilmenin en kolay yollarından biri …
Arduino ile DC Motor Çalıştırma ve Kontrol Etme Projesi için Kullanılacak Malzemeler:
DC Motor 1x
Arduino ile Fırçasız DC Motoru Kontrolü
DC motor üzerinde tam kontrol sahibi olmak için hızını ve dönüş yönünü kontrol etmeliyiz. Bu, iki tekniği birleştirerek elde edilebilir.
PWM – Hız kontrolü için
H-Bridge – Dönüş yönünü kontrol etmek için(yön, ileri geri, pozisyon)
PWM – Arduino ile DC Motor Hız Kontrolü
Bir DC motorun hızı, giriş voltajını değiştirerek kontrol edilebilir. Bunu yapmak için yaygın bir teknik olan PWM (Darbe Genişliği Modülasyonu) kullanmalıyız.
PWM, bir dizi ON-OFF tetiklemesi göndererek giriş voltajının ortalama değerinin ayarlandığı bir tekniktir.
Ortalama voltaj, Görev Döngüsü olarak bilinen darbelerin genişliği ile orantılıdır.
Görev döngüsü ne kadar yüksek olursa, dc motora uygulanan yüksek voltaj (Yüksek Hız) ve görev döngüsü ne kadar düşük olursa, dc motora uygulanan ortalama voltaj o kadar düşük (Düşük Hız) olacaktır.
Aşağıdaki resimde, çeşitli iş çevrimleri ve ortalama gerilimler ile PWM tekniği gösterilmektedir.
Darbe Genişliği Modülasyonu (PWM) Tekniği
H-Bridge – Arduino ile DC Motor Yön Kontrolü – İleri Geri Kontrol
DC motorun dönüş yönü, giriş voltajının polaritesini değiştirerek kontrol edilebilir. Bunu yapmak için yaygın bir teknik olan H-Bridge kullanılmaktır.
Bir H-Bridge devresi, motor merkezde H-benzeri bir düzenleme oluşturan dört anahtar içerir.
İki özel anahtarın aynı anda kapatılması, motora uygulanan voltajın polaritesini tersine çevirir. Bu, motorun dönüş yönünde değişime neden olur.
Aşağıdaki animasyon H-Bridge devresinin çalışmasını gösterir.
Arduino ile DC Motor Yön Kontrol Animasyonu
Arduino ile L293D Motor Sürücüsü Kullanımı
L293D Motor Sürücü Pinout
L293D motor sürücü, bir çift DC motor veya bir step motor kullanabilen çift kanallı H-Bridge motor sürücüsüdür.
L293d ile iki tekerlekli robot platformları oluşturabilir, iki motoru ayrı ayrı kodlayarak sürebilirsiniz.
Daha fazla ayrıntı için lütfen aşağıdaki L293 Datasheet sayfasını inceleyiniz.
L293 Motor Sürücü DATASHEET
L293D Motor Sürücü Enerji Pini
L293D motor sürücüsü aslında iki güç giriş pinine sahiptir. Bunlar Vcc1 ve Vcc2.
Vcc1 , 5V olması gereken dahili mantık devresini sürmek için kullanılır.
Verici Vcc2 pini H-Köprü bağlantısı ile 4.5V – 36V arası gereken motor gücünü iletir. Ve ikisi de GND pinine bağlıdır .
L293D Motor Sürücü Veri İletim Pinleri
L293D motor sürücüsünün A ve B motorlarına veri iletmesi için çıkış kanalları sırasıyla OUT1, OUT2 ve OUT3, OUT4 pinleridir.
Bu pinler 4.5V ile 36V arasında voltajı iki adet DC motora iletir.
Motor Sürücü üzerindeki her pin DC motorlara 600mA’ya kadar elektriksel akım iletebilir. Ancak, motora verilen akım miktarı, sistemin güç kaynağına(adaptör, lipo pil vb.) bağlıdır.
Arduino ile DC Motor Hız, Yön, İleri Geri, Pozisyon Kontrolü
L293D motor sürücü pinlerinin her biri için, DC motorların hızını ve dönüş yönünü aynı anda kontrol etmemizi sağlayan iki tür kontrol pini vardır.
Yön kontrol pinleri
Hız kontrol pimleri
Arduino ile DC Motor Yön Kontrol, İleri Geri, Hareket, Pozisyon Pinleri
Yön kontrol pimlerini kullanarak, motorun ileri mi yoksa geri mi hareket etmesini kontrol edebiliriz. Pozisyon pinleri aslında L293D motor sürücü içindeki H-Bridge devresinin anahtarlarını kontrol eder.
L293d motor sürücü, her kanal için iki yön kontrol yani hareket pinine sahiptir. IN1, IN2 pinleri 1. dc motorun hareket ve hızını kontrol ederken IN3, IN4 2. dc motorun hız ve hareket yani yön faliyetini kontrol etmektedir.
Bir dc motorun dönüş yönü bu pinlere verilen elektriksel akım (5 Volt) veya Toprak (Nötr) uygulanarak kontrol edilebilir. Aşağıdaki grafik bunun nasıl yapıldığını göstermektedir.
Giriş pinleri ile dc motorun dönüş yönünü kontrol etme
IN1 IN2 Motor Hareketi
Low(0) Low(0) Motor kapalı
High(1) Low(0) İleri
Low(0) High(1) Geri
High(1) High(1) Motor kapalı
Arduino ile DC Motor Hız Kontrol Pinleri
Hız kontrol pinleri ENA ve ENB ‘dir. 2 dc motor kontrolünün hızları bu pinler ile yapılır. ENAA motorunu, ENBB motorunu kontrol eder.
Bu pinlere uygulanan HIGH kodu hareket yani motorların dönmesini sağlar, LOW ise motorların durmalarını sağlar. Ancak, motor hız kontrolü Darbe Genişliği Modülasyonu (PWM) ile sağlanabilmektedir.
Arduino ile L293D Motor Sürücü Kullanarak 2 DC Motor Kontrolü
Artık l293d motor sürücü ile ilgili her şeyi öğrendiğimize göre, Arduino’muz ile bağlantısını sağlayabiliriz!
Arduino ile 2 dc motor kontrolü için öncelikle motorlara güç kaynağı(pil, adaptör vb.) bağlayarak başlayalım. Projemizde, genellikle 2wd robot araba kiti gibi arduino dc motorları yani (Sarı TT motor) kullanıyoruz. 65mm tekerlek ve motor seti 3 ile 9V arasında çalışır. 9V güç kaynağını Vcc2 pinine bağlayalım.
Daha sonra, L293D’nin mantık devresi için 5 Volt sağlamamız gerekir. Vcc1 pinini Arduino’daki 5V çıkışa bağlayın. Devredeki tüm toprakları ortak kullandığımızdan mutlaka emin olalım.
Şimdi, L293D IC’nin giriş ve etkinleştirme pinlerini (ENA, IN1, IN2, IN3, IN4 ve ENB), altı Arduino dijital çıkış pinine (9, 8, 7, 5, 4 ve 3) bağlayalım. Arduino çıkış pinlerinin 9 ve 3’ün her ikisinin de PWM(motor hız kontrolü) için etkin olduğunu unutmayın.
Son olarak, bir motoru OUT1, OUT2‘ye ve diğer motoru ve OUT3, OUT4‘e bağlayın. Motorunuzun bağlantılarını teknik olarak sağ veya sol olarak değiştirebilirsiniz herhangi bir sıkıntı teşkil etmeyecektir.
İşiniz bittiğinde, aşağıdaki resme benzeyen bir bağlantıya sahip olmalısınız.
Arduino ile DC Motor Kontrolü için Kod
Aşağıdaki kodlar, L293D motor sürücü ile bir DC motorun hızını ve dönüş yönünü kontrol edebilmeniz için pratik temel teşkil edecektir.
Arduino kodu oldukça basittir. Herhangi bir kütüphanenin çalışmasını gerektirmez. Kodlar, L293D’nin kontrol pinlerinin bağlı olduğu Arduino pinlerini bildirmekle başlar.
Kodun kurulum bölümünde, tüm motor kontrol pinleri dijital OUTPUT olarak her iki motoru da LOW veya OFF olarak çekilir.
Kodun döngü bölümünde, bir saniyelik aralıklarla iki kullanıcı tanımlı kod işlevi kullanılır.
Arduino ile 2 DC Motor Kontrolü
directionControl () – Bu fonksiyon 2 dc motor kontrolü için iki saniye boyunca maksimum hızda ileri döndürme işlevi görür. Daha sonra motorun dönüş yönünü tersine çevirir ve iki saniye daha döner. Sonunda motorları kapatır.
speedControl () – Bu işlev analogWrite () işlevini kullanarak PWM sinyalleri üreterek her iki motoru da sıfırdan maksimum hıza hızlandırır, ardından tekrar sıfıra indirir. Sonunda motorları kapatır.
Arduino ile L293D Motor Sürücü Kullanarak DC Motor Kontrolü ile İlgili Video’yu İzleyebilirsiniz.
Arduino ile Ardumoto Kullanarak Dc Motor Kontrolü Arduino GPS Modülü Kullanımı Arduino ile Step Motor Kontrolü Arduino ile L293D Motor Sürücü Kartı Kullanımı