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:
- Arduino UNO
- Breadboard
- 220 Ω direnç
- BC547 NPN transistör
- 1N4007 diyot
- 9V DC motor
- İki ucu erkek jumper kablo
- 9V DC adaptör veya 9V pil
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.
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ı.
Herhangi bir problem yaşamazsınız.
burada ki motor fırçasız mı yoksa fırçalı mı ? birde neden motor sürücüsü yok ??
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
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…
Kullandığınız adaptörünüz motorunuzun çekebileceği maksimum akımı sağlıyorsa kullanabilirsiniz.
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?
Bağlantılarınızı kontrol etmenizi tavsiye ederim.
Aynı sorun bende de var. Herşeyi yaptım, tekrar tekrar kontrol ettim fakat olmuyor
aynı sorun bendede oldu bağlantıda hiç bir sorun olmadığını yüzde yüz eminim ama çalışmıyor
aynısı bendede olmuştu sonra motoru çıkarıp yerine led taktım herşey çalıştı motor transistör uyumlu olmayabilir ama bende tam bilmiyorum
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.
harici bir 9 volt bağlamak istersek nasıl yapabiliriz teşekkürler
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?
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.
sa. hocam burda en yüksek değerin 255 olma sebebi nedir? ben 12v güç kaynağı ve 12v motor kullansam değeri max kaç yapabilirim?
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.
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
farklı transistör kullan örneğin D16N05 olabilir
BC160 ile de çalışıyor hocam bilginize..
Bilgilendirme için teşekkürler.
Transistörler bildiğim kadarıyla 5 volt ve üzerinde yanma riski taşır yani transistör yerine 12 v destekleyen bir motor sürücü kullanman daha iyi olur tabi bu bildiğim kadarıyla belki daha yüksek voltajlara kadar dayanabilir ha bide transistörler için soğutma blokları olur onlara bakarsan belki çalışabilir
BEN devreyi kurdum fakat motora ilk hareketi vermeden dönmüyor.Önce elle çeviriyorum öyle motor harekete geçiyor.acaba sebebi nedir.
Uygulamada kullandığınız transistör motorunuz için güçsüz gelmekte. Daha büyük bir transistör kullanmayı deneyebilirsiniz.
for(hiz = 0; hiz =0; hiz–)
{
analogWrite(motorPin,hiz);
delay(20);
}
Kısmını silmeniz yeterli 🙂
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.
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.
bunu servo motor ile yapabilirmiyim
Merhabalar, servo motor uygulamamız için https://maker.robotistan.com/arduino-dersleri-13-servo-motor-kontrolu/ adresindeki yazımızı inceleyebilirsiniz.
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.
9 v beslemeyle 6 v dc motor sürmem mümkün mü?Herhangi bir sorun yaşar mıyım?
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.
Bc547 yerine başka transistör kullanabiliyor muyuz?
2N2222 veya buna benzer özelliklere sahip başka bir NPN tipi transistör kullanabilirsiniz.
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
9V adaptör kullandım ve transistörüm yandı. Devre birebir aynı malzemeler tamamiyle aynı. Sebebi nedir?
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.Vin pininde regülatör yok mu yani 5 V a düşmüyor mu o pin de? diğer bir sorum ise Serial.begin(9600) parantez içindeki 9600 nerden geliyor?
Vin pini adaptör girişi ile kısa devredir, regülatör bulunmaz.
Serial.begin(9600)
satırındaki 9600, baud değeridir. Detaylı olarak buradan inceleyebilirsiniz: https://tr.wikipedia.org/wiki/Bauddiğ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?
İkinci kodun çalışması için herhangi bir modifikasyona ihtiyacınız yoktur, sadece seri monitör üzerinden 165 üzerinde değer girmeyin yeterli.
seri monitör dediğiniz nedir nerden ulaşabilirim ona?
Arduino Dersleri 4: Seri Haberleşme (UART)
bir de bilgisayardan kontrol ederken sadece usb ile bağlamamız yeterli midir?yoksa bir de aynı anda 9v pil ile veya adaptör ile de beslememiz gerekir mi?ben sadece usb bağlayıp denedim çalışmadı.Kartttan bir ses geldi sadece.
Yalnızca ses gelmesi ve motorun dönmemesi, motorun yeteri kadar akım çekemediğini gösterir. Adaptör veya pil ile aynı anda USB bağlantısını kullanabilirsiniz.
merhabalar bizde motoru gösterdiginiz gibi çalıştırıp sonra motora 1motor çalışşın gibi kod göndermek istiyorum
iyi günler kerem bey,bu uygulamayı gerçekleştirirken karttan bildirim sesi gibi bir ses çıkıyor bunun nedeni nedir?
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.
bağlantılar daha açık yapılsa çizimlerde çok daha iyi olacak
Kesinlikle katılıyorum.
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.
İyi günler devereyi kurdum bilgisayardan nasıl kontrol edicem. Yazılımı nasıl yazıcam
Arduino Dersleri 4: Seri Haberleşme (UART)
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.
Evet yapabilirsiniz.
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 :/
Motorların ikisinede degil transistorlerin ikisinede olcak yanlis yazmisim
Bununla redüktörlü motor sürebilir miyiz ?
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.
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.
Arduino ile Vu Metre Yapalım yazımızdaki gibi bir bağlantı kurabilir ve analog pinlerden gelen değeri motorun hızına göre map komutu ile ölçekleyerek projenizi yapabilirsiniz.
Bütün yorumlara neredeyse cevap yazıp yardımcı oluyorsunuz size gerçekten teşekkür ediyoruz.
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.
Merhaba, yeterince güçlü bir motor sürücü kartı (örnek) kullanarak sürebilirsiniz. Diğer çeşitler için sitemizdeki motor sürücü kartları kategorimizi inceleyebilirsiniz: http://www.robotistan.com/motor-surucu-karti
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 🙂
Çok teşekkür ederim
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.
Normaldir, motorun karbon fırçalarından kaynaklı bir durumdur.
Arduino unoyu bilgisayar yerine lcd ekrana bağlasak olurmu teşekür ler
Malesef hayır.
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.
9 v motor ve 9 v adaptör yerine 12 volt motor ve 12 v adaptör kullansak sıkıntı yaşar mıyız ??
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.
hocam iyi günler benim projem arduino ile dc motor hız kontrolü fakat potansiyometre kullanmanı istiyorum dedi hoca nasıl yapmalıyım
Potansiyometre değerini
analogRead
ile ölçün. Bu değeri bir değişken içerisinde tutun. Daha sonramap
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ğerianalogWrite
ile motoru sürecek PWM sinyalini oluşturmada kullanın.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.
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.
sensörün motora komut vermesi için nasıl bir kod gerekir acil
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.
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..
Malesef anlamadım 🙂 Sanırım Arduino ile Bluetooth haberleşmesi yaparak röle açıp kapatmak istiyorsunuz? Bu yazıyı okumanızı tavsiye ederim: Arduino Dersleri 17: HC-05 Bluetooth Modülü Kullanımı
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.
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.
Sorunuzu anlayamadım, bilgisayar üzerinden bir arayüz ile motor hızını mı kontrol etmek istiyorsunuz?
Transistör e bagladigimiz direnci ,pro mini 3.3 de çalışırken çıkarmalıdır miyim yoksa hız ayarlamada bi görevi var mi ,Teşekkürler
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.
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?
Geri dönüş özellikli (reverse) bir ESC temin edebilirsiniz.
arduino yazılımı atımda kontrol edıyorum calısıyo ama yukledımde hata verıyo
aynı işlemi nrf24l01 ile uzaktan yapabilirmyiz? ve biraz nasıl yapılacagı hakkında bilgi verirmisiniz
Yapabilirsiniz. nRF24L01 kullanımı ile ilgili sitemizde yer alan bu yazıyı inceleyebilirsiniz: Arduino Uygulaması: NRF24L01 ile uzaktan kontrol
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.
Yukarıdaki devre şemasında UNO’nun VIN pini önce uzun kırmızı, sonra kısa sarı kablo ile motora bağlanmış. Ben bunu çıkış olarak kullanılmış şeklinde yorumladım ama hata mı yapıyorum?
Çı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.
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.
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.
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.
Fırçalı motorlar ile fırçasız motorlar, tamamen farklı sürücü devrelerine ihtiyaç duyarlar. Fırçasız motor sürebilmek için ESC (electronic speed controller) isimli özel sürücüler kullanmanız gereklidir. Bu sürücüleri Arduino ile tıpkı servo motor sürer gibi kontrol edebilirsiniz. Servo motorun 0° konumu motorun durmasını, 180° konumu tam gaza denk düşecektir. Detaylı bilgi edinebileceğiniz diğer yazılarımızı da okumanızı tavsiye ederiz:
DC Motor Çeşitleri Nelerdir?
Arduino Dersleri 13: Servo Motor Kontrolü
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
Sadece hız kontrolü için bu devredeki transistörü yeterince güçlü bir transistör ile değiştirerek kullanabilirsiniz.
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.
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.
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
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
Hocam birde lcd için usb girişinden gerilim bağlamalımıyım 5 volt
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.
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
Arduino’nun adaptör girişi 20V’a kadar gerilim desteklemektedir. Kartın bozulmuş olması düşük bir ihtimaldir.
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.
Merhaba, pwm3’ten transistorun base’ine giden kolda, 220Ohm direnç yerine başka bir direnç koyabilir miyiz? 1k Ohm mesela? Direnç neye göre belirlenip seçiliyor?
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.
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
Ben beş adet felan fan sürmek istiyorum bunu nasıl yapıcaz? Beş tane transistör mü kullanıcam?
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.
Peki herbiri 12v 0.2a fandan 5 adet kullandığım zaman nasıl bir güç kaynağı kullanmam 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.
E o zaman TIP41C transistör fazla büyük değilmi?
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.
250 rpm hızlı mı
İlginiz için teşekkür ederim.
Rica ederim 🙂
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.
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.
selamun aleykum abı motor surucu kartsız dc motoru nasıl ılerı gerı yapabılırım lutfen yardımcı olurmusun
Merhaba, 3 konumlu bir ON-OFF-ON anahtar ile (alternatif) şöyle bir devre kurabilirsiniz:
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.
Iyi günler. Motor hız kontrolü için transistör yerine MOSFET kullanabilir miyiz?
MOSFET’in açılımı da Metal Oxide Semiconductor Field Effect Transistor olduğu için tabi ki kullanabilirsiniz 🙂 Dikkat etmeniz gereken tek nokta, kullandığınız MOSFET’in gate geriliminin Arduino uyumlu olmasıdır. Örnek bir MOSFET devresi için buradaki yazımızı inceleyebilirsiniz: Arduino Kullanarak Uzaktan Kumandalı Şerit LED Yapalım
potansiyometre veye joystick ile dc motorun hızını kontrol edebilirmiyiz
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);
Bu örneğin raspberry ile yapılmış halini de paylaşabilmeniz mümkün mü acaba?
Raspberry Pi İle DC Motor Kontrolü Nasıl Yapılır? #13
aynı devreden 2 adet kurdum Vın çıkışını ve ek pil kullandım fakat motorum durduktan sonra ben döndürmedikçe çalışmadı sebebi nedir
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
Merhaba, benim evde arduino’m var bu siteden aldım içinde motor var ama transistör yok. Transistör olmadan çalıştırılabilir mi?
peki diyot koymassam ne olur acaba ?
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?
DC motor hiz kontrolunu 2 butonla nasil yapabiliriz, 1. butona bastigimizda hizlanacak 2.butona bastigimizda yavaslayacak
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
bu projenin telefon uygulaması ile çalışması için ne yapabilirim bilginiz varsa söyleyebilirmisinz
Kolay gelsin ben bu şema ile motoru bir ileri bir geri döndürmek istiyorum bunu nasıl sağlaya bilirim ?
esc yada motor nasil uretebilirim quadcopter için
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?
Diyot nedir? Arduino proje setinden çıkıyor mu?
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
Kodları arduino formatında atarmısınız?
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);
}
}
}
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.
hızını potansiyometre ve gaz pedalı ile nasıl kontrol edebiliriz
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?
benim sorum su kodları tam olarak birlestirerek mi yazacagız yoksa hangisini yazacagız ??
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?
dc motoru istenilen açı değerine nasıl getirebilirim
Enkoder kullanmanızı öneririm.
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?