back to top

Arduino Temelleri 12: DC Motor Hız Kontrolü

Merhaba arkadaşlar. Bugünkü uygulamamızda Arduino ile DC motor hız kontrolü yapacağız. Konuya geçmeden hatırlatmak isterim, tüm arduino eğitim derslerimizi mutlaka inceleyin.

Gerekli malzemeler:

Bu uygulamamızda BJT tipi bir transistör kullanarak DC motorumuzun hızını kontrol edeceğiz. Peki neden bir transistöre ihtiyacımız var?

Arduino’muzun dijital pinlerinden alacağımız çıkış geriliminin 5V olduğunu biliyoruz. 9V DC motorumuz 5V gerilimle çalışabilir fakat motorun çekeceği akım, Arduino pinlerinden çekebileceğimiz en yüksek akım değeri olan 40 mA’in oldukça üzerinde olacaktır. Burada transistör devreye giriyor.

Transistörler

Transistörü çok basit bir şekilde elektrik akımı veya gerilimi ile kontrol edebileceğimiz bir switch olarak düşünebiliriz. Bunu anlamak için elimizdeki NPN tipi transistörü bir musluk olarak düşünelim: transistörün kolektör (collector) bacağından emitör (emitter) bacağına doğru bir boru içerisinden su aktığını hayal edelim. Biz, ortada bulunan baz bacağından vereceğimiz akım ile tıpkı bir musluğun suyuk akışını kısıp arttırması gibi kolektörden emitöre akan akım miktarını kontrol edebiliriz:

Bu sayede çok küçük akımlar kullanarak, büyük akım çeken cihazları kontrol edebilmemiz mümkün olur.

Devre şemamız:

Devredeki diyotun görevi, motorun durur vaziyetten harekete geçtiği anda oluşan gerilim sıçramalarından transistörü korumak içindir.

NOT: Bağlantıları yapmadan önce Arduino’muza kodu yükleyelim. Bağlantıları yaptıktan sonra ise USB bağlantısı yerine Arduino üzerinde bulunan güç girişinden 9V adaptör veya 9V pil ile kartımızı besleyelim. Aksi takdirde bilgisayarımızın USB portuna veya Arduino’muza zarar verebiliriz!

Bu kod ile motorumuzun hızı önce kademeli olarak artacak; en yüksek değere ulaştıktan sonra ise aynı şekilde azalacak:

int motorPin = 3;
int hiz = 0; 
void setup() 
{ 
pinMode(motorPin, OUTPUT);
} 
void loop() 
{ 
 for(hiz = 0; hiz <= 255; hiz++) 
 { 
  analogWrite(motorPin,hiz); delay(20); 
 } 
 for(hiz = 255; hiz>=0; hiz--) 
{ 
 analogWrite(motorPin,hiz); 
 delay(20); 
} }

analogWrite() fonksiyonunu RGB LED uygulamamızdan hatırlarsınız umarım 🙂

Bu sefer motorun hızının kendiliğinden artması yerine biz bilgisayarımızdan kontrol edelim:

int motorPin = 3; 
void setup() 
{ pinMode(motorPin, OUTPUT); 
  Serial.begin(9600); while (! Serial); 
  Serial.println("0 ile 255 arasi hiz giriniz");
} 
void loop() 
{ 
 if (Serial.available()) 
  { int hiz = Serial.parseInt(); 
    if (hiz >= 0 && hiz <= 255) 
      { analogWrite(motorPin, hiz); 
} 
}
}

Bu kod sayesinde, motorumuzun hızını bilgisayarımızdaki Arduino programının seri port ekranından gireceğimiz değerle kontrol edebiliriz. Motor gibi fazla akım çekebilen cihazlarla çalışırken 9V adaptör veya 9V pil ile Arduino’muzu güç girişinden beslemeyi unutmayalım.

Son Çıkan Yazılar

176 YORUMLAR

  1. Arduino kartımızı harici olarak 9 volt ile besledik ve motor da pwm yaptık .motor donus hızını bilgisayar üzerinden kontrol etmek istediğimizde arduino kartımızı usb takacaz bu durumda bir sorun yaşarmıyız. yani harici besleme verdiğimizde hem o besleme varken usb den takarak bilgisayar üzerinden kontrol etmek istediğimizde bir sıkıntı cıkarmı.

    • Bu uygulamada fırçalı motor kullanılmıştır. Ayrıca sürücü olarak sadece bir transistör kullanıldığından, yanlızca hız kontrolü yapılabilir. L293D çift motor sürücü entegresi ile yapılan örnek için bu yazımıza bakabilirsiniz

  2. merhaba arkadaşlar ben bu konuda yeniyim elimde dc 18 volt bir motor var bu motorun devrini düşürüm ve yüksetmek isityorum. bunun için ayarlı adaptorler var 7,5vot-18 volt. kadar amper olarak 4,5 Amper kullanam olurmu çalışırmı lütfen yardımcı olurmusunuz…

  3. merhaba 9 voltluk fırçalı dc motoruma direk güç verdiğimde çalışıyor ama devreyi tamamen kurup kodu yazdığımda çalışmıyor yardımcı olabilirmisiniz?

  4. Merhaba arkadaşlar dc motorun hızını hız kontrol devresi ile düşürsem düşük devirde güç azalırmı aynı güçte düşük devirde kullanabilirmiyim

    • DC motorunuzun üzerinden geçen akımı ve gerilimi değiştireceğinizden, motorun harcayacağı güç te değişmiş olacaktır. Aynı güçte düşük devirde kullanım için redüktör mekanizması kullanmanız gereklidir. Böylece motorun hızı azalacak, fakat torku yükselecektir.

    • Motora Arduino’nun Vin pininden giden güç kablosu yerine 9V kaynağınızın + ucunu bağlayabilirsiniz. Arduino’nun GND pinleri ile harici kaynağınızın – ucunu birleştirmeyi unutmayınız.

      • Başka bir kaymakta 2N2222 transistör ile 9 volt pille motor sürüldüğünü görmüştüm. Tranisörü aldım ancak sayfayı bir saha bulamadım. BC547 yerine 2N2222 kullansam uygun olur mu?

  5. hocam s.a ben zaman ayarlı duran kalkan bir motor yapacagım 12 volt yada 24 volt fan motorunu calıştırıcak led blink uygulamasını arduinoya yükledik diyelim ama arduinonun pinlerinde 5 volt var bu pinlerin cıkışlarını nasıl 12 volt yada 24 volt yapabilirim

    • Motorun besleme gerilimi ile Arduino pinlerinin lojik gerilimleri farklıdır. 12 veya 24V gerilimle çalışabilecek bir motor sürücü kullanırsanız sorun olmayacaktır.

    • 255 değeri, Arduino’nun PWM çıkışlarının 8-bit çözünürlükte olması sebebiyledir. 2^8 = 256 adımda hız kontrolü yapabilirsiniz. Besleme gerilimi ile ilgisi yoktur. Örneğin o değeri 127 yaparsanız motoru besleme geriliminizin yarısında çalıştırmış olacaksınız.

  6. hocam ben bu sistem için 12v motor kullandım. transistör yanıp duruyor. sıkıntıyı nasıl halledebilirim? acil cevap verirseniz sevinirim

  7. Kerem bey, Bilgilendirmeleriniz için teşekkürler. Projem için ürün önerirmisiniz arduino UNO R3 var, 24 V 1000rpm motor var. Bu motoru iki konumlu düğme ile 400-ve 600 devirde çalıştırmam gerekiyor. Basit bir karıştırıcı yapacağım. (devirler çok önemli) Hangi motor sürücüyü kullanmamı önerirsiniz. Ayrıca başka bir malzemeye gerek varsa yazarsanız sevinirim.

    • Basit bir motor hız kontrol devresi kurarak ve bahsettiğiniz iki konumlu düğmeyi Arduino’nuza bağlayarak motorunuzun hızını %60 ve %40 arasında değiştirebilirsiniz. Yapmanız gereken, düğmeden gelen sinyale göre Arduino’nun dijital çıkışlarından elde edeceğiniz PWM dalganın duty cycle’ını değiştirmeniz (PWM ve duty cycle ile ilgili bilgi edinmek için RGB LED Kontrolü dersimizi inceleyebilirsiniz). Dikkat etmeniz gereken nokta, kuracağınız devredeki sürücünün veya transistörün motorunuzun ihtiyaç duyacağı akım ve gerilim değerlerini karşılamasıdır.

  8. Hocam iki adet step motoru sarma işinde kullanıcam yani iki motor da aynı anda 45 yada 90 derecede dönecek ve hizi da ilk baslarda normal olacak bunun için gerekli arduino bileşenleri ne olabilir,.yeni başladım oyuzden çok fazla acemiyim.

  9. Kerem bey merhaba bu projenizi hız kontrolu değilde baskı (gerilim) kontrolüne göre çalıştırmak için ne yapabiliriz. Nette benzer bi cihaz var godex t10 kol da ki gerilimi hissedip motor çalışıyor gerilim bitince duruyor.

    • Gerilimi algılamak için basit bir op-amp devresi veya gerilim bölücü ile gerilimi 0-5V arasına çekebilir ve Arduino’ya analog girişlerden bağlayabilirsiniz. Daha sonrası için analog girişteki değere oranlı olarak dijital çıkıştan alacağınız PWM sinyali ile motoru sürebilirsiniz.

    • Pek tavsiye edilen bir durum olmasa da deneme amaçlı kısa süreler için kullanabilirsiniz. Uzun vadede motorunuzun daha erken bozulmasına sebep olacaktır.

    • Ben denedim ve çalışıyo d13003 kodlu transistör evinde bile bulabilirsin mesela ampullerin içinde veya cakma cin mali sarj adaptorlerinde ayrica elinde transistör falan varsa dene belki çalışır

  10. neden vin motorun eksi ucuna bağlanmış o kısmı çözemedim sebebini anlatabilir misiniz?
    bir de şu iki satır ne anlama geliyor anlatabilir misiniz?
    ( Serial.begin(9600);
    while (! Serial); )

    • Motorun + ve – ucu diye bir kavram yoktur. Sadece motorumuz ters yönde dönerse uçlarını değiştirmemiz gereklidir. Vin’den bağlanmasının sebebi ise şudur: Bu projede Arduino’yu 9V pil veya adaptör gibi harici bir güç kaynağına bağladığımızda buradaki gerilimi Arduino üzerindeki Vin pininden görmekteyiz. 5V ve 3.3V çıkışları Arduino üzerindeki regülatörlere bağlı olduğundan buradan fazla akım çekmek istemeyiz. Bu yüzden Vin pinini kullanıyoruz. while (!Serial); ise, haberleşmenin seri port açılana kadar başlamamasını sağlıyor.

  11. diğer bir sorum ise şu ben de 6 v dc motor olduğu için 255 lik kısmı 165 yaptım.ilk komut dizininde sıkıntı yaşamadım ama bilgisayardan değer girmeli versiyon çalışmadı nedense önce sadece 255 olan yerleri 165 yaptım bana değer sorucak diye bekledim sormadı.sonra o değer yazın diyen yerin içine kendim değer yazdım yine olmadı sorun nerde acaba?

    • Büyük ihtimalle o ses kullandığınız motordan geliyodur. Arduino’nun PWM frekansı duyulabilir aralıkta olduğundan bu şekilde bir ses gelmesi normaldir.

  12. Merhaba, ben 24 v dc motoru potansiyometre bağlıyarak potansiyometreyi çevirdikçe motorun dönmesini istiyorum (potansiyometreyi çevirince motor dönsün potansiyometreyi geri çevirince motor geri dönmesini istiyorum) nasıl yapabilirim, şimdiden teşekkürler.

    • Öncelikle hız ve yön kontrolü yapmanız için bir motor sürücüye ihtiyacınız olacaktır. Arduino Dersleri 14: DC Motor Hız ve Yön Kontrolü dersimizde bu konuyu detaylıca anlattım. Bunun yanında potansiyometreyi kullanmak için analog okuma yaptırmalısınız. Bununla ilgili bilgileri de Arduino Dersleri 7: Analog Girişler dersimizde bulabilirsiniz. Potansiyometrenin orta konumu 512’ye denk düşeceğinden, 0-511 arasını bir yöne döndürecek 512-1023 arasını diğer yöne döndürecek bir if koşulu yazabilirsiniz. Motorun hızını da ölçeklemek istiyorsanız map() komutunu kullanabilirsiniz.

    • 24 V DC motor için H-Bridge denen bir yapı var. Bu şekilde arama yaparsanız çift yönlü motor sürücü bulabilirsiniz. Bu konuda da transistörler yeterli gelmeyecektir. NMOS ve PMOS kullanmanız gerekecek. IRFZ44N ve IRF4905 kullanmanızı tavsiye edebilirim H-Bridge için. Bunları da direkt olarak Arduino pinleriyle sürmeye çalışırsanız mosfet kanallarını yeterince açamayacağınız için ısınmaya yol açacak. O nedenle mosfetleri de transistörler yardımıyla hatta optokuplörlerle sürmenizde fayda var. Isınmadan tamamen uzak ve en güzel yöntem bu bence. Potansiyometre işine gelince de analog okuma yapmalısın kerem Bey’in dediği gibi. Bu aşamada da potansiyometrenin bacaklarını 5 V ve GND bacaklarına bağlayıp orta bacaktan analog okuma yapacaksın. Çevirdiğinde yön değiştirmesini istediğinden değerlerdeki artış ve azalışa göre motora yön vereceksin. Ya da söylendiği gibi 0-511 arası bir yöne 512-1023 arası diğer yöne şeklinde de yapabilirsin.

  13. Merhaba, bu devrede Vin girişindeki bağlantıyı söküp harici 6v kaynağı bağlarsam ve gnd’yi ortak edersem 6v motor sürebilir miyim?
    Teşekkürler.

  14. Lütfen yazdiklarimin hepsini okuyun

    Bişey sormak istiyorum size ben bu degil ama ayni gorevi goren d13003 transiator kullandim ve oldu ama yon tayini olmuyor 2 transistorle yaparak bunu basardim aslinda ama soyle bi problem var motorların ikisinede ayni oranda voltaj gittigi icin fren gibi bisi yapiyo birazdaha detaya girmem gerekiyor burda simdi benim bi rc projem var mini boyutlarda ve bu projede bu transistorle ileri goturdum “geriye gitmese de olur ” ama sag sol olmuyor mesela sadece saga yada sadece sola donuyor bundan dolayi 2 transistor kullanmam gerekti bende yaptim ve dedigim gibi oldu ama fren yapar gibi calisiyor motor bu yuzden bana bi kod lazim
    Kodda oyle calismali ki pot mesela 1860 da durucak “serial monitorde bu sekilde potun orta noktasi” 1860 dan 1760 a kadar saga 1860 dan 1960 a kadar sola donmesi lazim ama yapamiyorum bi turlu yokmu bi bilen abiler :/

    • Motorunuz fırçalı tipte ve kullanacağınız transistör motorun çekeceği akımı sağlayabildiği sürece redüktörlü motor ile de kullanabilirsiniz.

  15. Merhaba,
    Bilgisayardan,girdigimiz veri ses sistemine baglamali nasil yapabiliriz.Yani sectigimiz șarkiya gore dc motorumuz donecek.Analoh girise sesin durumunu algilayici bir komut mu girmemiz lazim ,bluetooth moduluyle bazi ornekler var ama ben jak girisli olsun istiyorum ne onerirsiniz.

  16. Merhabalar; 24 V, 7 A Değerlerindeki DC motoru ne şekilde sürebilirim? çözüm bulamıyorum, yardım ederseniz çok sevineceğim. İlginiz için şimdiden teşekkür ederim.

  17. Merhabalar,
    12 veya 24 volt ile çalışan kartlar ile 380 volt çalışan motorlar kontrol edilebiliyor. Arada nasıl bir kat kullanıyorlar da bu dengeyi sağlıyorlar. Bilgi vere bilir misiniz?

    • Merhaba. Bahsetmiş olduğunuz kartlar, endüstriyel tipteki motor sürücülerdir. Bu ekipmanlar PLC gibi 24V seviyesinde çıkışa sahip cihazlar ile kullanılmak üzere tasarlanmıştır. Eski tip sistemler ile uyumlu olması açısından, tıpkı bir Arduino ile motor sürücü kullanır gibi dijital çıkışlar aracılığıyla yön ve hız kontrolü yapabilmektedir (örnek ders). Daha güncel motor sürücüler ise PROFINET, CCLink gibi endüstriyel haberleşme standartları üzerinden kontrol sistemine entegre edilerek sayısız şekilde konfigüre edilebilme ve esneklik sunabilmektedir. Umarım açıklayıcı olabilmişimdir 🙂

  18. merhaba,

    oyuncak’dan çıkan bir motoru bağladım, çalışıyor fakat kabloları değdirince ilk anda ufak bir kıvılcım çıkıyor. bu normal midir?
    devreye sadece diyot bağladım.

  19. Merhaba Kerem bey,
    Elimde 12 V ve en fazla 40 amper akım çekebilen DC motor, 12V 80Ah Jel akü ve arduino R3 var. Benim yapmak istediğim projede motoru arduino dan potansiyometre ile hız kontrolünü yapmak.Yaptığım araştırmalara göre ‘MSF50 Mosfet Motor Sürücü 3-15V 50A’ sürücü kartı bu motoru arduino ile sürmek için yeterli gözüküyor.
    Benim size sormak istediğim önerebileceğiniz başka bir dc motor sürücü kartı var mı ve MSF50 Mosfet Motor Sürücü 3-15V 50A projem için uygun mudur?
    Örnek bir proje mevcut mu veya bu kart ın bağlantılarını nasıl yapmalıyım?
    Saygılarımla.

    • Kullanabilirsiniz, sorun olmaz. Arduino’nun giriş gerilimi 7-12V arasında olduğundan Vin pininden veya adaptör aracılığıyla uygulayabileceğiniz gerilimler bu aralıkta olduğu sürece problem yoktur.

    • Potansiyometre değerini analogRead ile ölçün. Bu değeri bir değişken içerisinde tutun. Daha sonra map komutu veya bölme işlemi ile 0-1023 arasında değişen bu değeri 0-255 arasına çekin. Son olarak bu değeri analogWrite ile motoru sürecek PWM sinyalini oluşturmada kullanın.

  20. Hocam iyi günler ben 4 tane step motoru aynı anda kontrol etmek istiyorum tam bir tur olmadan yaklaşık yarım tur dönüp ters yönde devam etmesi lazım projem için acaba bunu nasıl sağlayabilirim.

  21. merhabalar bu hız kontrolünü sesle yapmak mümkünmüdür farklı kaynaklarda bt kullanarak android den kontrol sağlamayı gösteriyorlar bunun haricinde bi yöntem varmıdır ? motor olarak step motor kullanacağım örneğin hızlan dendiğinde motor dönüş hızı artacak nasıl yapabileceğim konusunda yardımcı olurmusunuz?

    • Arduino’nun kendi işlemcisi ses tanıma gibi karmaşık sayılabilecek bir işlemi yapabilecek güce sahip değildir. Bunun için üzerinde Linux çalıştıran Arduino kartları veya Raspberry Pi gibi tek kart bilgisayarları kullanmak daha mantıklı olacaktır.

  22. Merhaba kerem Bey
    Ben Garaj kapım için 12 volt dc 100watt veya 250 watt motor ayarladım dc motor sürücü de ayarladım ancak bağlantı için başka neler gerekli
    bide kod örneği var mı elinizde paylaşım yaparsanız sevinirim.

    İyi günler..

    • Sanırım amacınız uzaktan kontrollü garaj kapısı uygulaması yapmak. Bu proje için ayrıca tercihinize göre bir kablosuz haberleşme modülüne ihtiyacınız olacaktır. Yazmanız gereken kod da bu modüle bağlı olarak değişeceği için örnek kod verebilmem mümkün değildir.

  23. Kerem Bey
    Kapı sistemini alıp biz röle ve bluetooth yardımıyla kapıyı açıp kapatabiliriz sanırım.Röle ile sisteme 220voltluk sisteme enerji giriş çıkışını sağlayabilir sanırım .
    Biraz karışık bir soru oldu ama sanırım demek istediğimi anladınız..

  24. Hobi açlı Masaüstü ağaç torna yapmaktayım.

    Adım hamdi Sizden ricam 24 volt rediktörlü kapı motorlarını yaptığımız sağa,sola ve onun üstünde ileri geri hareket eden alt destekli iki arabalarımızın kontrolü için kullanmak istiyoruz.
    İki eksen hareketli cnc olarak kullanmak istiyoruz. Görselleri paylaşıyorum. Görsellerini paylaştığım ürünlerle istediğimizi yaptırmamızın bir yoluvarsa rica ediyorum.

  25. merhabalar hocam başlama hızlanma ve yavaşlama diye 3 buton oluşturup kodları kullandım ama hangi butona yazıp textboxtan sayı çekeceğimi saptayamıyorum yardımcı olursanız çok sevinirim.

    • Transistör ile Arduino dijital pin arasındaki direncin görevi akım sınırlamaktır. Arduino pinlerinden maksimum 40mA akım çekilebileceğinden, direnç bu akımı sınırlar. Kullanmanızda fayda vardır.

  26. RC arabamız var ve kumadasıyla arduinodan kontrol yapıyoruz.Arka dc motor çok hız dönüyor bunu yavaşlatmak istiyoruz.Hız kontrol devresi aldık sadece ileri yönde çalışıyor geri yönde motoru çalıştırmıyor.Yani ileri ve geri yönde çalıştıracak ve yavaş çalıştırmasını sağlayacak birşey lazım bize yardım eder misiniz?

  27. Merhaba Kerem Bey, yazdıklarınızdan çok faydalanıyorum, çok teşekkür ederim. UNO yerine NANO kullanırsam VIN pinini NANO yu 9 V ile beslemek için kullanmak zorunda kalıyorum. Ben VIN pininden yalnız board beslenebilir zannediyordum. Anlaşılan OUT olarak da kullanılabiliyor ama bu durumda NANO yu VIN dan beslerken aynı anda motoru nasıl besleyebilirim?

    • Merhabalar, güzel sözleriniz için teşekkür ederim. VIN pini, UNO’da DC adaptör girişinin + ucuna bağlıdır. Kart üzerindeki 5V regülatöre bağlanır. Dolayısıyla buraya yapacağınız bağlantı yalnızca giriştir. Nano kullandığınıza göre, breadboard üzerinde kullanıyorsunuz diye tahmin ediyorum. Bu pine paralel olarak yapacağınız bir bağlantı ile kolaylıkla motorunuzu besleyebilirsiniz.

    • Çıkış değildir derken kastettiğim bu pinin Arduino tarafından herhangi bir şekilde kontrol edilememesiydi. Bu pini ister DC 7-12V ile Arduino’nuzu beslemede kullanın, isterseniz de bu uygulamadaki gibi adaptörden gelen gerilimi kolay bir şekilde breadboard üzerine taşıyarak motor gibi fazla akım çekebilecek cihazları çalıştırın.

  28. Tamamdır, o zaman pilin + ucunu VIN pininin bacağının breadboard’da takılı olduğu sıraya bağlayacağım. Aynı sıradan çekeceğim bir kabloyu motora da bağlayacağım. Böylece aynı anda hem NANO’yu besleyeceğim hem de motoru.

  29. Merhabalar bir kaç sorum olacak yanıtlarsanız memnun olurum. Öncelikle ben yüksek akım çekebilen dc motor kontrol kartı yapmak istiyorum nedeni ise motora belli bir yük binecek bu yük ne olursa olsun motoron rpm hızı değişmeyecek, ne yapmam lazım bunun için arduino kartı kullanmayacağım devreyi baştan tasarlamak istiyorum. Böyle birşey mümkün demi yani asansör mantığı ile çalıştıracağım kontrol kartını teşekkür ederim.

    • Öncelikle motor sürücünüz için H köprüsü devresi kurabilirsiniz. Köprü için kullanacağınız transistörleri yeterince güçlü seçtiğiniz sürece sorun olmayacaktır. Motor devrinin sabit kalmasını ise bir enkoder kullanarak Arduino veya herhangi başka bir mikrokontrolcü üzerinden PID kontrol ile sağlayabilirsiniz. Çok basit şekilde şöyle anlatılabilir: Motora yük bindikçe motor yavaşlayacak, enkoder sayesinde motorun hız bilgisi mikrokontrolcüye gidecek, mikrokontrolcü de sürücüye müdahale ederek motorun hızını arttıracak.

  30. iyi günler ben bir proje ödevim için arduino ile fırçasız dc motor kontrolü yapmak istiyorum. bu devrede fırçasız dc motor kullansam herhangi bir problem çıkar mı? çıkarsa nasıl bir proje yapabilirim yardımınız için şimdiden teşekkürler.

  31. Selamlar ben 775 motorun arduino ile hız kontrolü nü yapıcam tam olarak hangi malzemeler Lazım yapılışı hakkında biraz bilgi verebilirmisiniz teşekkür ederim

  32. merhaba ilk önce paşlastıgınız bilgiler için tesekkurler bir sey sormak istiyorum. devreye pot baglanıla bilir mi baglanılırsa devrede ve yazılımda nasıl değişiklikler olur benımle paylaşırsanız cok sevirim son dakikaya bırakılmiş bir ödevim var 🙂

    • Tabi ki bağlanabilir 🙂 Örnek olarak Arduino Dersleri 13: Servo Motor Kontrolü dersimizdeki gibi bir potansı A0’dan bağladığımızı düşünelim. Bu durumda loop fonksiyonu içindeki for döngüleri yerine servo örneğindeki gibi bir map komutu ile (örneğin, map(hiz, 0, 1023, 0, 255) ) analog pinden okuduğumuz değeri 0-255 arasına ölçeklendirmemiz ve daha sonra analogWrite komutu ile çıkış verdirmemiz gerekir.

  33. merhaba, fw-12v-dc fan (60×60) kullandım devremde ama fan durmuyor gnd ve 5v bacaklarını arduinoya bağladığımdan itibaren sürekli dönüyor. Kodla ne bu dönüşü yavaşlatabiliyorum ne de durdurabiliyorum. Amacım saıcaklık arttığı an fan devreye girmesi ama bunu başaramıyorum güç verdiğim an fan sürekli çalışıyor lütfen yardımcı olur musunuz??

    • GND ve 5V bacaklarını doğrudan Arduino’ya bağlarsanız bu durum herhangi bir güç kaynağına bağlamaktan farksız olacaktır. Yazıdaki gibi bir transistörlü devre kurmanız gereklidir.

  34. Merhaba kerem bey 12 v dc motor hız kontrolü İçin İçin enerjiyi sadece arduinonun usb girişinden alabilirmiyim yada ek bir pil kullanmam gerekirmi daha güçlü bi transistör olarak ne kullanmamı önerirsiniz birde direnç için değişiklik yapmalımıyım teşekkür ederim

  35. Selamlar kerem bey arduino unonun jack girişinden adaptörle 12 v sağlasam hem arduinoyu hem motoru çalıştırabilirmiyim birde devre üzerine potansiyometre bağlasam çevirince elle hızı kontrol etmek için devrede ne gibi değişiklikler yapmam gerekir kod aynen geçerlimidir

    • Arduino’ya adaptör girişinde 12V vererek çalıştırabilirsiniz. Motorunuz 12V ile çalışıyorsa, devre şemasında gösterildiği gibi Vin pininden beslemeniz de mümkündür. Potansiyometre bağladığınızda ilk kodda yer alan for döngüleri yerine bir analogRead fonksiyonu ile bağlantı yaptığınız pinden okuma yapıp, bu değeri ölçekleyerek tekrardan analogWrite ile PWM çıkış pinine yazmanız gereklidir.

  36. Hocam potansiyometre ile hız ölçümü için devreyi kurdum motor çalıştı fakat kontrol edemedim sanırım bi yerde hata yapmış olmalıyım birde önemli sorunum 12 v dc motor içim adaptörle arduinodan 12v verdim bi kaç denemeden sonra arduino da L ledi yandı sonra başka kod yüklemek istedim olmadı acaba arduino yandımı hocam yardımcı olursanız memnun olurum şimdiden teşekkür ederim

      • Hocam şimdiye kadar verdiğiniz bilgiler için çok teşekkür ederim sağolun son bir sorum olucak arduinoyu beslemek için vin pininden 9v versem aynı zamanda adaptör girişinden de 12v versem sorun yaşarmıyım arduino zarar görürmü sonuçta birbirine bağlı kısımlar sadece adaptör kullandığında motor tam devir aldıktan sonra duruyor yetersiz kalıyor hem adaptör 12v hem vin 9v aynı anda vermeyi düşündüm size sormak istedim yada hocam usb ve adaptörden aynı anda gerilim sağlasam sonuçta zarar görürmü yoksa yetersiz beslemeyi giderirmi herşey için çok teşekkürler sağolun varolun

        • Vin pini ile adaptör girişi aynıdır, iki farklı gerilim kullanamazsınız. Eğer motorunuzu 12V ile çalıştırmak istiyorsanız doğrudan adaptör girişinden verebilirsiniz.

    • Kullandığımız transistör BJT tipinde olduğu için baz akımı ile kolektör emitör arasındaki akım orantılı olarak artacaktır. 220 ohm olmasının sebebi Arduino’nun 5V çıkışından fazla akım çekilmesini önlemektir. Daha yüksek bir direnç kullanmanız baz akımını azaltacağından motorun çalışması için gerekli akımı sağlayamayabilir.

  37. Merhaba ben kalp test platformu yapacağım. Projenin bi kısmında pompa kullanicam. Pompayi kontrol edebilmek için projenin bir örneğinde fircasiz dc servo motor ve sürücüsü kullanılmış. O pompa ve sürücüsünü kullanmak yerine bu devreyi ya da servo lu olan diğer devreyi kullansam olur mu ne gibi farklar olur?

    • Fırçalı motorlar için olan sürücüleri malesef fırçasız motorlar ile kullanmanız mümkün değildir. Kullanacağınız motor tipine uygun bir motor sürücü seçmeniz gereklidir.

      • Öncelikle teşekkür ederim cevabınız için 6V 250 Rpm Motor kullanacagim projem için en uygun olan bu motoru sürmek için uygun mudur bu kodlar? Bi pompayi calistiracagim

    • Fanların hepsini aynı anda aynı devirde kontrol edecekseniz 1 adet transistör kullanabilirsiniz. Fakat unutmayın ki, bu uygulamada kullanmış olduğumuz BC547 yeteri kadar akım sağlayamayacaktır. Onun yerine TIP41C gibi daha güçlü bir transistör kullanmanız gerekir.

        • 0.2 x 5 = 1A yapacaktır. Ayrıca üzerine güvenlik açısından bir miktar hata payı koyacak olursak 1.5A veya daha üzerinde akım sağlayabilen 12VDC bir güç kaynağı kullanabilirsiniz.

          • 6A olması sebebiyle büyük olacağını düşündünüz sanırım. Transistörler ne kadar yüksek akım değerine sahipse, o kadar rahat ve ısınmadan çalışacaktır. Bu sebeple TIP41C önerdim. Arzu ederseniz farklı transistör de kullanabilirsiniz.

  38. Benim elim de 5 volt step motor var bu motoru arduino ya baglayip calistirdigimda motorun torku cok dusuk geliyor elle dokununca duracak seviyede ve birde potansiyometreyi nasil bagliyacaz tesekkurler

    • Step motorunuzun güç kaynağı olarak Arduino’nun 5V çıkışını kullandıysanız buradan aldığınız akım yetersiz kalıyor olabilir. Harici bir 5V adaptör kullanmayı deneyebilirsiniz.

  39. Merhaba hocam ardinyo nano ile hem kamera hem motorun konturolu yapmak istiyorum fakat göüntüyü pc ye nasil aktarabilirim bilgi verirseniz memnun olurum iyi çalismalar

    • Nasıl bir kamera kullandığınızı bilmeden yardımcı olamam. Ayrıca Arduino ile kamera görüntüsü aktarımı yapmanız da mümkün değildir.

  40. biz projemizde 12 voltluk 6000 rpm bir motor kullanacağız.bu proje l 298 vb motor sürücüleri kullanmassak olur mu,olur ise nasıl olur

    • Kullanacağınız motorun çekeceği akımı L298 sürücünüz karşılayabilecekse sorunsuzca kullanabilirsiniz. Motorunuzun yükteyken çektiği akımı ölçerek ya da datasheet’inden öğrenerek bu değere göre motor sürücü tercih etmelisiniz.

    • Evet kontrol edebilirsiniz. Koddaki for döngüleri yerine bir analog girişe (örn. A0) potansiyometreyi bağlayın ve şu şekilde bir kod yazın:

      int value = analogRead(A0);
      int hiz = map(value,0,1023,0,255);
      analogWrite(motorPin, hiz);

  41. merhaba,benim kafamı kurcalayan bir sorun var
    bende 5 volt luk iki tane motor var ve onları motor sürücü olmadan çalıştırmak istiyorum neden se olmuyor bunun sebebini bana açıklarmısınız şimdiden teşekkürler

  42. Merhaba hocam ben arduino ile ses kontrollü tekerlekli sandelye maketi yapacağım bunun için dc motor kullanmayı düşünüyorum fren sistemini dc motora bağlasam komutu aldığı gibi motor durur mu ve dc motor kütüphanesi Ne?

  43. Herkese iyi gunler sizden yardim istiyorum.elimde 12 v 2 am dc motor var.iki tane cift kontakli röle 12 v 5 a var.birde iki tane limit switch var.ben bu motoru calistiracam bir switch dokundugunda geri donmesini istiyorum.ön deki switch dokundugunda geri donecek arka da kalan switch dokundugunda duracak.oyle bir şema yollayabilirmisiniz.ne yaptiysam yapamadim.tabi bilgim yok.yardiminiz icin simdiden tesekkurler

  44. merhaba Kerem bey, HC-SR04 kullanarak dc motor hız kontrolü yapacağım bir bakıma cruise kontrol gibi ama aynı zamanda farları uzun kısa yakmak için ldr kullandım fakat devreyi bir türlü çalıştıramadım.bu konuda yardımcı olabilir misiniz kod dizilimini nasıl ayarlamalıyım?

  45. Hocam aynı devreyi yaptım,ben harici güç kaynağı kullarak 12v 0.5 amp pc fanını kontrol ettim, hızlarını ayarlıyabiliyorum ancak 255 altı değerlerde fan tam hızla dönmediği zamanlarda fanda ince bir ötme sesi geliyor(aynı fan ve adaptörü manuel potlu devreyle yaptığım da öyle bir ses gelmiyor) acaba sorun ne olabilir

    • int motorPin = 3;
      void setup() {
      pinMode(motorPin, OUTPUT);
      Serial.begin(9600);
      while (! Serial);
      Serial.println(“0 ile 255 arasi hiz giriniz”);
      }
      void loop() {
      if (Serial.available())
      {
      int hiz = Serial.parseInt();
      if (hiz >= 0 && hiz <= 255)
      {
      analogWrite(motorPin, hiz);
      }
      }
      }

  46. Merhabalar, ben sizden almış olduğum ürünler ile nextion ekran ve arduino uno klon kullanarak bir sistem yaptım yanlız takıldığım bir konu var ekrandan on off yapinca şerit led kismi role ile kontrol edilerek calisiyor yani bu kısımda sorun yok ama slider ile motor devir ayarını bir türlü yapamıyorum. Bir suru kod denedim ama bir türlü beceremedim. Bu konuda bilgi verebilme imkanınız varmı ?

    Bütün ürünleri robotistandan satın aldım ilave olarakda sizi youtube kanalinizdan takip etmekteyim.

    Sizden aldığım ürünler bunlar ;

    1-Redüktörlü 12Vdc motorum :

    https://www.robotistan.com/12v-35mm-100rpm-dc-motor

    2-Sürücü kartım :

    https://www.robotistan.com/12-40v-10a-motor-surucu-karti-40

    3-Diğer sürücü kartım :

    https://www.robotistan.com/l298n-voltaj-regulatorlu-cift-motor-surucu-karti

    4-Diğer sürücü kartım :

    https://www.robotistan.com/rf520-mosfet-surucu-karti

    3 adet sürücü kartım var internetteki slider ile bahsi geçen örneklere göre 3 ceşit aldım hangisiyle olursa artık.

  47. Merhaba,

    Teknik olarak anlamak adına bir iki sorum olacak.

    1. Devrede Direnç ve diyot kullanmamızın sebebi nedir?
    2. Transistör sadece anahtar görevi görüyor ise bu durumda Arduino yüksek akıma maruz kalmış olmaz mı?
    3. 9 V’lik pil takıyoruz ancak 5V pin’inden çıkış yapıyoruz. Yani motora 5V gidiyor. Bu şartlarda neden USB üzerinden besleme yapmıyoruz?

  48. 9V pil ile harici güç sağladık ancak burada kodlama kısmı için usb ile bilgisayarımız arasında bağlantı da yapmamız gerekiyor değil mi?

  49. Merhabalar, devrenin kodunu yazdım ama şöyle bir sorunla karşılaşıyorum.
    ‘lt’ was not declared in this scope diye hata mesajı geliyor. for(hiz = 0; hiz <= 255; hiz++) hata yeri olarak ta bu satırı gösteriyor. Hatayı giderebilmek için ne yapmalıyım?

CEVAP VER

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