Arduino Uno L293D Motor Sürücü Shield Nedir ve Özellikleri Nelerdir?
Bu shield, iki L293D motor sürücüsü ve bir 74HC595 shift register içerir. Shift register, motor sürücülerinin yönünü kontrol etmek için Arduino’nun 3 pimini 8 pime genişletir. L293D’nin çıkış etkinleştirmesi, doğrudan Arduino’nun PWM çıkışlarına bağlıdır. SN754410 pin uyumlu motor sürücü çipinin (çıkış diyotları vardır ve motor başına 1A, 2A tepe sağlayabilir) çıkış diyotlarının yalnızca ESD koruması için tasarlandığı ve bunların geri tepme koruması olarak kullanımının bir hack olduğu ve verim için garanti edilmediği görülmektedir. Bu nedenle motor shield SN754410 ile birlikte gelmedi ve bunun yerine entegre geri tepme koruma diyotlarına sahip L293D’yi kullanıyor. Riske girmeye hazırsanız ve ekstra akıma ihtiyacınız varsa, SN754410’ları satın almaktan ve sağlanan çipleri değiştirmekten çekinmeyin. Maksimum akımı artırmak için L293D, “piggyback” ile ekstra çiplere izin verir. Piggyback, maksimum akımı artırmak için karttaki L293D sürücülerinin üstüne bir veya iki veya üç ekstra L293D sürücüsü lehimliyor. L293D paralel çalışmaya izin verir. Motorunuzun ne kadar akıma ihtiyaç duyacağını belirleyin. Kitle birlikte gelen motor sürücü çipleri, 1.2A tepe akımı ile motor başına 600 mA’ya kadar sağlamak üzere tasarlanmıştır. 1A’ya doğru yöneldiğinizde, muhtemelen motor sürücüsüne bir soğutucu koymanızın gerektiğini unutmayın, aksi takdirde termal arıza alırsınız, muhtemelen çipi yakarsınız.
2 DC 5V servo ve 4 DC motora kadar veya 2 step motor (veya 1 step ve 2 DC motora kadar) kullanabilirsiniz. 6 analog giriş pininin tamamı motor shieldda kullanılmamaktadır. Ayrıca dijital pinler olarak da kullanılabilirler (14 ile 19 arasındaki pinler). Dijital pin 2 ve 13 kullanılmaz. DC/Step motorları doğrudan Arduino’ya BAĞLI DEĞİLDİR. Arduino tarafından konuşulan 74HC595 mandalına bağlanırlar. Doğrudan motorlarla konuşamazsınız, motor shield kütüphanesini kullanmalısınız. Maker Shed, DF Robotics, Jameco ve diğerlerinin 4WD robot platformlarında kullanılan motorlarda çok fazla “fırça sesi” var. Bu, Arduino devresine geri beslenir ve kararsız çalışmaya neden olur. Bu sorun, motora 3 adet gürültü bastırma seramik veya disk 0.1 uF kapasitör lehimlenerek çözülebilir: 1 adet motor terminalleri arasına ve bir adet her terminalden motor kasasına.
Motorunuzda zaten bir kapasitör varsa ve hala çalışmıyorsa – bunun nedeni, bu motorların çok fazla fırça gürültüsü oluşturması ve genellikle tam 3 kapasitör tedavisine ihtiyaç duymasıdır. yeterli bastırma Bu ekstra kapasitörler, gürültünün kaynakta bastırılması gerektiği veya motor kablolarının anten gibi davranacağı ve sistemin geri kalanına yayınlayacağı için ekran üzerinde etkili olmayacaktır.
Motor Shield Özellikleri
- 4 H-Köprüler: L293D yonga seti, 4,5V ila 25V arasında termal kapatma koruması ile köprü başına 0,6A (1.2A tepe noktası) sağlar.
- Pull down dirençleri, açılış sırasında motorları devre dışı bırakır.
- Kabloları (10-22AWG) ve gücü kolayca bağlamak için büyük terminal bloğu konektörleri vardır.
- Arduino sıfırlama düğmesi bulunmaktadır.
- Ayrı motor beslemeleri için harici gücü bağlamak için 2 pinli terminal bloğu vardır.
- Arduino’nun yüksek çözünürlüklü özel zamanlayıcısına bağlı 5V ‘hobi’ servolar için 2 bağlantı vardır. Servo motorlar Arduino kartının +5V’unu kullanır. Arduino kartındaki voltaj regülatörü ısınabilir. Bunu önlemek için, daha yeni Motor shield, servo motorlar için ayrı bir +5V için bağlantı noktalarına sahiptir. Hobi servoları, motor kontrolüne geçmenin en kolay yoludur. +5V, toprak ve sinyal girişleri ile 3 pinli 0.1″ dişi başlık bağlantısına sahiptirler. Motor shield, 16bit PWM çıkış hatlarını iki adet 3 pinli başlığa getirir, böylece takıp çıkarması kolaydır. 5V ‘Hobby’ servolar motor kontrolüne geçmenin en kolay yoludur. +5V, toprak ve sinyal ile 3 pinli 0.1″ dişi başlık bağlantısına sahiptirler girdiler. Motor shield, 16 bit PWM çıkış hatlarını iki adet 3 pimli başlığa sahiptir, böylece takması ve kullanması kolaydır. Çok fazla güç tüketebilirler, bu nedenle 9V pil birkaç dakikadan fazla dayanmaz.
- Ayrı 8 bit hız seçimine sahip 4 adede kadar çift yönlü DC motor (yani yaklaşık %0,5 çözünürlük) kontrolü sağlar.
- Tek bobinli, çift bobinli, aralıklı veya mikro kademeli 2 adede kadar step motor (unipolar veya bipolar) kullanıma olanak sağlar.
L293D, herhangi bir yönde aynı anda iki DC motor setini kontrol edebilen 16 pinli bir IC’dir. Bu, tek bir L293D IC ile iki DC motoru kontrol edebileceğiniz anlamına gelir. Tek bir L293D çipinde, IC’nin içinde iki dc motoru bağımsız olarak döndürebilen iki H-Bridge devresi vardır. H köprüsü, voltajın her iki yönde de iletilmesine izin veren bir devredir. H-köprü IC, bir DC motoru sürmek için idealdir. Boyutundan dolayı, DC motorları kontrol etmek için robotik uygulamalarda çok kullanılır..
Not: H-köprü çipinin 0,6A üzerindeki yükleri veya 1,2A üzerindeki tepe noktalarını sürmek için tasarlanmadığını, dolayısıyla bunun küçük motorlar için olduğunu unutmayın. Motorun bu sürücüye uygun olup olmadığını datasheet’e bakarak kontrol ediniz.
Pin Diyagramı ve İşlevleri
- Power jumper – Arduino Kartı ve Kalkan ayrı bir güç kaynağı kullanıyorsa çıkarılmalıdır.
- Servo 1 ve Servo2‘ye 2 adet 5V servo motor bağlanabilir. Pinler – (GND veya Toprak), + (VCC), s (Sinyal).
- Güç LED‘i + DC/Step motor güç kaynağının(harici güç kaynağı) çalıştığını gösterir. Yanmıyorsa DC/Step motorları çalışmayacaktır. Servo bağlantı noktaları 5V güçle çalışır ve DC motor beslemesinde kullanmaz.
- Reset butonu – Arduino kartını sıfırlamak içindir.
- 4 DC çift yönlü motor M1 (A,B), M2 (A,B), M3 (A,B), M4 (A,B) terminal bloklarına bağlanabilir. Bu, ileri ve geri sürülebilecekleri anlamına gelir. Hız ayrıca yüksek kaliteli yerleşik PWM kullanılarak %0,5’lik artışlarla değiştirilebilir. Bu, hızın çok düzgün olduğu ve değişmeyeceği anlamına gelir! H-köprü çipinin 0,6A üzerindeki yükleri veya 1,2A üzerindeki tepe noktalarını sürmek için tasarlanmadığını, dolayısıyla bunun küçük motorlar için olduğunu unutmayın. Motorun kullanılabilir olduğunu doğrulamak için motor hakkında bilgi için datasheeti kontrol edin. DC motorlar, regüle edilmiş 5V ile DEĞİL, bir ‘yüksek voltaj kaynağından’ kapatılır. Motor güç kaynağını 5V hattına bağlamayın.
- 2 step motor: biri M1 (A,B), GND, M2(A,B) terminal bloğuna, diğeri M4 (A,B), GND, M3 (A,B) terminal bloğuna bağlanabilir.
- DC motorunuzun ‘yüksek voltaj beslemesini’ alabileceğiniz iki yer vardır. Biri Arduino kartındaki DC jakı, diğeri ise ekrandaki EXT_PWR etiketli 2 terminal bloğu. Arduino’daki DC Jakı bir koruma diyotuna sahiptir, bu nedenle yanlış türde bir güç takarsanız işleri fazla bir sorun çıkmaz. Ancak, EXT_PWR terminallerinde bir koruma diyotu yoktur. Arkaya takmamaya dikkat edin yoksa motor shielda veya arduinonuza zarar verebilirsiniz.
Not: Arduino ve motorlar için tek bir DC güç kaynağına sahip olmak istiyorsanız, Arduino’daki DC jakına veya shielddaki 2 pinli PWR_EXT bloğuna takmanız yeterlidir. Güç atlama telini(power jumper) motor shielda yerleştirin.
Not: Arduino’nun USB’den ve motorların bir DC güç kaynağından hareket ettirilmesini istiyorsanız, USB kablosunu takın. Ardından motor beslemesini resimdeki PWR_EXT bloğuna bağlayın. Jumper’ı shieldın üzerine yerleştirmeyin. Bu, motor projenize güç sağlamak için önerilen bir yöntemdir.
Not: Arduino ve motorlar için 2 ayrı dc güç kaynağınız olsun isterseniz. Arduino beslemesini DC jakına takın ve motor beslemesini PWR_EXT bloğuna bağlayın. Jumper’ın motor shielddan çıkarıldığından emin olun.
Motor Sürücü Besleme Yolları
- Yöntem: Arduino kartı, usb üzerinden ve motor sürücü kartı 2. bir güç kaynağından beslemek için arduinomuza usb kablosu ile güç verelim ve yukarıda resimde görülen PWR_EXT bloğuna harici dc güç kaynağı ile güç verelim. Güç atlama kablosunu(power jumper) yerleştirmeyeceğiz.
- Yöntem: Arduino kartı ve motorlar için 2 ayrı DC güç kaynağı kullanımı şu şekilde olmaktadır. Arduino kartı için harici beslemeyi arduino kartındaki DC jakına takın ve DC motorlar için harici DC beslemesini motor sürücüdeki PWR_EXT bloğuna bağlayın. Güç atlama kablosunun(power jumper) motor sürücü kartından çıkarıldığından emin olun.
Kodlama
- Motor kütüphanesini kodunuza ekleyin.
- AF_DCMotor kütüphanesi ile AF_DCMotor(motor#, frequency) objesi oluşturun. Fonksiyon iki argüman alır. Birincisi(motor) motorun bağlandığı porttur. İkincisi(frequency) hız kontrolün frekansıdır. Motor1 ve motor2 için şu frekanslar seçilebilir. MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, ve MOTOR12_1KHZ. 64 KHz gibi yüksek bir hız duyulmayacak ancak 1KHz gibi düşük bir hız daha az güç tüketecektir. Motor 3 ve 4 sadece 1KHz’de çalışabilir ve verilen herhangi bir ayarı yok sayar.
- Motorun hızı 0 (durur) ile 255 (tam hız) arasında setSpeed(speed) komutu kullanarak ayarlayabilirsiniz.
- Motoru çalıştırmak için yönün “FORWARD”, “BACKWARD” veya “RELEASE” durumlarda “run(yön)” komutunu kullanıyoruz. Tabii ki, Arduino aslında motorun ‘ileri’ veya ‘geri’ olup olmadığını bilmiyor, bu yüzden ileri olduğunu düşündüğünüz yolu değiştirmek istiyorsanız, motordan shielda giden kabloların yerini değiştirin.