back to top

Raspberry Pi İle DC Motor Kontrolü Nasıl Yapılır? #13

Bu içerik 13 Ocak 2017 Tarihinde Raspberry Pi 3 Uyumlu Olacak Şekilde Güncellenmiştir. Güncellenen kısımları daha kolay şekilde görebilmeniz için farklı renkte (lacivert) yazdık. Güncelliğini yitiren kısımların ise üzerini çizdik. Keyifle oku, bol bol üret!

Raspberry Pi Dersleri serimizde kullanacağımız malzemelerin tamamına sizler için hazırladığımız setler ile kolayca sahip olabilirsiniz. Raspberry Pi’ye Uzaktan Bağlantı Yöntemleri (VNC,SSH,TTL) dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı dersimize kadar olan malzemeler için Süper Başlangıç Seti, tüm derslerdeki malzemeler için Proje Seti tercih edebilirsiniz.

Merhaba arkadaşlar. Bu yazıda Raspberry Pi ve L293D motor sürücü entegre kullanarak DC motor sürmeyi öğreneceğiz.

Gerekli malzemelerimiz:

Projedeki Malzemeler Bu Sette. Şimdi İncele >

L293D, 2 adet DC motor sürmede kullanılabilecek oldukça popüler bir entegredir.

L293D Pin bağlantıları aşağıdaki gibidir:

l293d Pin Bağlantılarıl293d Pinleri

Bu entegrenin input 1 ve input 2 girişleri, motorun döneceği yönü; enable pini ise hangi çıkışların aktif olacağını kontrol ediyor. Biz bu örnekte sadece 1 adet motor kullanacağımız için, 1 numaralı pini, yani “Enable 1,2″yi bağlamamız yeterli olacaktır.

Devremizi aşağıdaki şemadaki gibi kuruyoruz:

Python kodumuzu aşağıdaki kısımdan alarak motor.py isimli dosyaya kaydediyoruz:

import RPi.GPIO as GPIO
from time 
import sleep 
GPIO.setmode(GPIO.BOARD) 
Motor1A = 16Motor1B = 18Motor1E = 22 
GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT) 
print "Ileri hareket"
GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
GPIO.output(Motor1E,GPIO.HIGH) 
sleep(2) 
print "Geri hareket"
GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH) 
sleep(2) 
print "Motor durdu"
GPIO.output(Motor1E,GPIO.LOW) 
GPIO.cleanup()

Yazdığımız kodu kaydettikten sonra

sudo python motor.py

komutunu vererek çalıştırıyoruz. Raspbian’ın güncel sürümünde Python komutlarından önce sudo yazmamıza gerek yoktur. Motorumuzu çalışacak ve terminal ekranından her adımda şu bilgileri göreceğiz:

Raspberry Pi Hakkında Daha Fazlasını Öğrenmeye Devam Et

Raspberry Pi pek çok yönüyle avantaj sahibi ve geliştiriciler tarafından çok sevilen bir platform. Elektronik projelerinde, bilgisayar bilimlerinde ve robotik çalışmalarında sağladığı destek ve rahatlık ile öğrenmeyi sevdiren Raspberry Pi hergün daha da çok gelişiyor. 

Peki siz de daha fazla gelişmek istemez misiniz? Linux bilginizi geliştirmek, elektronik dünyasına atılmak ve eğlenceli projelere imza atmak için sizi Raspberry Pi ile yolculuğa çıkarıyoruz! Sizler için hazırladığımız Raspberry Pi eğitim serisine devam edin :

Raspberry ile Servo Motor Sürme

Servo motorlar, bildiğimiz üzere PWM ile çalışırlar. Çoğunlukla 0-180 derece arası açılarda çalışırlar. RC arabamızın direksiyonunda, helikopterlerin pervanelerine açı vermede ve uçakların kontrol yüzeylerini hareket ettirmede kullanılırlar.

12. dersimizde Raspberry ile Servo Motor Sürmeyi öğreneceğiz.

Raspberry İle Step Motor Kontrolü Nasıl Yapılır?

Step motorlar, hassas hareket gerektiren uygulamalarda kullanılan motorlardır. Fonksiyon olarak DC motorlar ile servo motorların her ikisinin de karakterini gösterir: istenildiğinde belirli bir konuma adım adım ilerleyebilir veya sürekli olarak istenilen yönde döndürülebilir. Normal yazıcılar ve 3B yazıcıların vazgeçilmez parçalarındandırlar.
14. Dersimizde Raspberry İle Step Motor Kontrolü Nasıl Yapılır? Beraber öğreneceğiz.

Son Çıkan Yazılar

19 YORUMLAR

  1. Öncelikle yazınız için çok teşekkürler herkesin anlayabileceği düzeyde ve açıklıkta.Sizce 2 adet motoru farklı zamanlarda (örneğin birini birinden 2-3 dk geç çalıştırma), ve ayrı ayrı ayarlanabilir hızlarda çalıştırmak için nasıl bir yol izlemeliyiz. Bunu arduinoda yapabiliyorum ama başka işlerde ki işlem gücünden dolayı raspberry ile yapmam gerekli rpi3 kullanıyorum.Yardımcı olursanız çok sevinirim.İyi çalışmalar.

    • L293D Entegresi yapı gereği 2 adet DC motorun çalışmasına izin verir. Pinlerden 3-6 için birinci motor, 14-11 içinde ikinci motoru bağlayabilirsin. 4 adet motor kontrolü istiyorsan 2 adet kullanabilirsin. Motor sürmek için PWM pin çıkışına ihtiyacın olmadığından genel GPIO lardan istediğini bağlayabilirsin. RasPi ile ne kadar hobi anlamında motor kullanımı yapılsa da eğer endüstriyel uygulama için proje yapacaksan H-Bridge ile motor sürmen gerek tabi motor DC ise. L293D entegresi basit uygulamalar için işini görebilir.

    • Raspberry Pi üzerinde yalnızca bir adet PWM çıkış pini olduğundan mobil robot benzeri projelerde kullanmanız için PCA9685 gibi I2C kontrollü bir motor sürücü kartı kullanmanızı tavsiye ederiz.

  2. Ben 12-24V DC motor çalıştırmayı istiyorum.Motorun yön ayarını Raspberry Pi ile yapabilir miyim? Eğer yapabilirsem kodlarını paylaşabilir misiniz?

  3. İyi günler kolay gelsin
    ben Raspberry pi ile çizgi izleyen robot tasarımı yapmam gerek
    raspberry pi için uygun motor sürücüsü hakkında bilgi verirmisiniz L298P ile ardunio çalışıyor fakat bunun raspberry ile uyumlu olup olmadığı hakkında tam bilgim yok.
    yardımcı olursanız sevinirim

  4. kolay Gelsin
    projecinin yazdigi yazi ile ayni olarak bende cizgi izleyen robot yapacagim.
    L9110 motor surucusu ve sensor bagglantisini yaptim
    fakat raspberry yazilim bilgim olmadigi icin programini yazamiyorum.
    cizgi izleyen roobot programi yazip yayinlama durumunuz var midir acaba
    tesekkurler

  5. Merhaba..
    2 adet l293b motor sürücüsüne 4 adet DC motor bağladım. motor sürücülerin input girişlerine lojik kapılar bağladım. lojık kapılara 1/0 değerlerini vererek motorları kontrol etmek istiyorum. lojik 1/0 GPIO’lardan verilebilir mi aynı şekilde?
    Teşekkürler 🙂

  6. bu kodu yazdığım da sadece bir kere bu işlemi gerçekleştirebiliyorum. while döngüsü içine almaya çalıştığım da hata veriyor yardımcı olabilir misiniz ?

  7. kolay gelsin arkadaşlar internette araştırdım fakat sağlıklı bir örnek bulamadım ikinci bir dc motoru nasıl bağlarız yardımcı olur musunuz.

  8. Elimde Raspberry pi 2 B v1.1 ve TB6612FNG motor sürücüsü var.
    Bağlantılarını düzgün şekilde yapmama rağmen 2 motor sürerken sadece B çıkışındaki motorlardan biri bir yöne (Geri ya da ileri) dönmüyor. Neden olabilir?
    Motor sürücüyü ardionuda denedim sorunsuz çalışıyor.
    Kabloları değiştirdim. Raspberry deki Pin yerlerini değiştirdim. Motorları değiştirdim. Sorun devam ediyor.

CEVAP VER

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