Mühendis Bilim / Eğitimler / Arduino Dersleri / Arduino İle Dc Motor Kullanımı ve Hız Kontrolü

Arduino İle Dc Motor Kullanımı ve Hız Kontrolü

Hasan Eren EMİR | 3 Temmuz 2016, 18:06 | Arduino Dersleri | 14197 görüntülenme

Merhabalar. Arduino eğitimlerimizin bu bölümünde arduino ile dc motor nasıl sürülür ve bu motorun hız kontrolü nasıl yapılır bunu göstereceğiz.

Motor gibi cihazlar Arduino üzerinden direk olarak çalıştırılamazlar. Çünkü Arduino’ nun verdiğinden daha fazla akıma, gerilime dolayısıyla güce ihtiyaç duyarlar. Bu ihtiyaçlarını usb portundan beslenen arduinodan karşılayamadıkları için dışarıdan ek bir kaynağa ihtiyaç duyarlar. Bu sebeple Arduino’ yu, bu dış kaynağı ve motoru birleştirecek bir devre elemanına ihtiyaç duyarız; transistörler.

İlk olarak Transistörler ve Transistörlerin Anahtar Olarak Kullanılması başlıklı yazıyı okumanızı tavsiye ederim. Zira bu uygulamada da bc547 transistörünü anahtar olarak kullanacağız. bc547 yi tanıyalım;

BC547

BC547

Görselde bacak numaraları ve isimleri belirtilen bu transistör, piyasada rahatlıkla bulacağınız NPN yapılı bir transistördür. Dc motorun ihtiyaç duyduğu enerjiyi dışarıdan sağlamak için kullanılacaktır. Şimdi devre şeması üzerinden yaptığımız işlemleri anlatalım;

Devre Şeması

Arduino Transistör İle Dc Motor Hız Kontrol

 

Devrede potansiyometre ile dc motorun hızını ayarlamak istiyoruz. Bunun için potonsiyometrenin 1.bacağı arduino üzerindeki 5V çıkışa, 2.bacağı analog değer okumamız için A1 pinine ve 3.bacağı ise GND pinine gidiyor. A1 pini üzerinden okuduğumuz analog değere göre dijital ve PWM özelliği bulunan 6.pin üzerinden transistörü PWM sinyali ile kontrol edeceğiz. PWM hakkında detaylı bilgi için bkz. Elektrik Sinyalinin Yapısı. Arduino üzerinde PWM hakkında detaylı bilgi için bkz. Arduino’ da PWM Sinyali ve Kullanımı.

Transistörün emiter bacağı GND hattına bağlanıyor. Collector bacağı motorun bacaklarından birine, motorun boşta kalan diğer bacağı dışarıdan motoru besleyeceğimiz kaynağın + ucuna bağlanıyor. Kaynağın – ucu ise GND hattına bağlanıyor.

Motorun uçlarında bulunan diyot ise ilk çalışma anında motorda oluşabilecek gerilim sıçramalarından transistörü korumak için kullanılıyor. Bu arduino eğitiminde yazacağımız kodlar oldukça kısa, fakat mantığını iyi kavramak gerekiyor.

Kaynak Kodlar

Arduino üzerinde PWM sinyali dijital pinler üzerinden sağlandığı halde analogWrite(); kodu ile kontrol edilirler. Burada ilk defa map(); ifadesini kullandık. Bu ifade belirli değer aralığında bulunan bir değişkenin değerini istediğimiz değerler arasına sınırlamaya yarar.

Kodlarımızda A1 pininden okuduğumuz değeri potDeger değişkenine atadık. Önceki arduino eğitimlerinde hatırlarsanız analog pinler 0 ile 1023 arasında sayısal değer alır demiştik. Ancak Arduino’ da PWM ise 0 ile 255 arasında sayısal değer alır. Dolayısıyla analog olarak 0 ile 1023 arasında okuduğumuz potansiyometre değerini PWM için 0 ile 255 aralığına sınırlamamız  gerekir. map(); komutu burada tam da bu işi görür.

YAZAR BİLGİSİ
Hasan Eren EMİR
Yönetici
Biyografi

Merhabalar. Ben MühendisBilim’ in yöneticisiyim. Çocukluğumdan beri elektik-elektronik ve yazılım alanlarına duyduğum büyük ilgi sebebiyle üniversite eğitimimde bu alana yöneldim. Halen Atatürk Üniversitesi Elektrik-Elektronik Mühendisliği Bölümü’ nde eğitim görmekteyim. Bunun yanında kendi projelerim üzerinde çalışmalarımı sürdürüyorum. Bilim, teknoloji, mühendislik alanlarından gelişmeleri duyuracağım ve diğer projelerimi de yayınlayacağım bir platform ihtiyacından doğan bir diğer projem; MühendisBilim için desteklerinizi bekliyor, iyi okumalar diliyorum.

BENZER GÖNDERİLER

FACEBOOK İLE YORUM YAP

YORUM YAP
  1. Avatar
    Mustafa Tuğberk Çakır, 23 Eylül 2016 - 11:20 'de demiş ki:
    Mustafa Tuğberk Çakır

    Arduino hakkında gerçekten faydalı bilgiler var.Başarılı bir site.

    • Hasan Eren EMİR
      Hasan Eren EMİR, 5 Ekim 2016 - 16:38 'de demiş ki:
      Hasan Eren EMİR

      İlginiz ve güzel yorumunuz için teşekkürler 🙂


PAYLAŞ