L293D Motor Sürücüsü

Bir motor sürücüsü, genellikle otonom robotlardaki motorları kontrol etmek için kullanılan entegre bir devre yongasıdır. Motor sürücüsü Arduino ve motorlar arasında bir arayüz görevi görür. En yaygın olarak kullanılan motor sürücü IC'leri, L293D, L293NE vb. L293 serilerindendir. Bu IC'ler, 2 DC motoru aynı anda kontrol etmek için tasarlanmıştır. L293D iki H köprüsünden oluşur. H köprüsü, düşük akımlı nominal motoru kontrol etmek için en basit devredir. Motor sürücüsü IC'den sadece L293D olarak bahsedeceğiz. L293D, 16 iğneye sahiptir.

Adım 1: Parça Listesi

1) L293D IC

2) 4 1 mikrofarad kapasitör

3) 6 Başlık Erkek pimleri

4) 12 Volt pil veya kaynak

5) Teller veya dişi soketler

6) 2 Motor

7) Sürücüyü test etmek için Arduino (Herhangi)

8) Arduino IDE'li bilgisayar

9) çeşitli itmes gibi havya, havya vb

Adım 2: Şematik ve Çalışma

L293D, motorun kontrolüne adanmış, her iki tarafında sekiz pim bulunan 16 pimli bir IC'dir. Her motor için 2 INPUT pimi, 2 OUTPUT pimi ve 1 ENABLE pimi vardır. L293D iki H köprüsünden oluşur. H köprüsü, düşük akımlı nominal motoru kontrol etmek için en basit devredir.

Pim No. - Pim Özellikleri

  • 1 - 1-2'yi etkinleştirin, bu YÜKSEK olduğunda IC'nin sol kısmı çalışır ve düşük olduğunda sol kısım çalışmaz.
  • 2 - GİRİŞ 1, bu pim YÜKSEK olduğunda akım çıkış 1'den geçecektir
  • 3 - ÇIKIŞ 1, bu pim motor terminalinden birine bağlanmalıdır.
  • 4, 5 - GND, topraklama pimleri
  • 6 - ÇIKTI 2, bu pim motor terminalinden birine bağlanmalıdır.
  • 7 - GİRİŞ 2, bu pim YÜKSEK olduğunda akım çıkış 2'den akacaktır
  • 8 - VCC2, motora verilecek voltajdır.
  • 16 - VCC1, bu IC'nin güç kaynağıdır. Bu nedenle, bu pim 5 V ile birlikte verilmelidir
  • 15 - GİRİŞ 4, bu pim YÜKSEK olduğunda akım çıkış 4'ten akacaktır
  • 14 - ÇIKIŞ 4, bu pim motor terminalinden birine bağlanmalıdır
  • 13, 12 - GND, topraklama pimleri
  • 11 - ÇIKTI 3, bu pim motor terminalinden birine bağlanmalıdır
  • 10 - GİRİŞ 3, bu pim YÜKSEK olduğunda akım çıkış 3'ten akacaktır
  • 9 - 3-4'ü etkinleştirin, bu YÜKSEK olduğunda IC'nin sağ kısmı çalışır ve düşük olduğunda sağ kısım çalışmaz.

IC'de neden 4 temel?

Motor sürücüsü IC ağır akımlarla ilgilenir. Çok fazla akım akışı nedeniyle IC ısınır. Bu nedenle, ısıtmayı azaltmak için bir soğutucuya ihtiyacımız var. Bu nedenle, 4 topraklama pimi vardır. Pimleri PCB'ye lehimlediğimizde, ısının açığa çıkabileceği zeminler arasında büyük bir metalik alan elde ederiz.

Neden Kondansatörler?

DC motor endüktif bir yüktür. Böylece, bir voltajla beslendiğinde bir arka EMF geliştirir. Motoru kullanırken voltaj dalgalanmaları olabilir, çünkü motor bir yöne doğru hareket ederken aniden tersine döndüğümüzü söyler. Bu noktada voltajdaki dalgalanma oldukça yüksektir ve bu IC'ye zarar verebilir. Bu nedenle, akımdaki aşırı değişimi azaltmaya yardımcı olan dört kapasitör kullanıyoruz.

Adım 3: Çalışma Mekanizması ve Arduino Kodu

Şimdi, Giriş ve Etkinleştirme değerlerine bağlı olarak motorlar tam hızda (Etkin YÜKSEK olduğunda) veya daha düşük hızda (Etkinleştirme PWM ile sağlandığında) saat yönünde veya saat yönünün tersine dönecektir. Etkinleştirildiğinde Sol Motor için YÜKSEK ve Giriş 1 ve Giriş 2 sırasıyla YÜKSEK ve DÜŞÜK olduğunda motor saat yönünde hareket edecektir.

Test etmek için kullandığım Arduino Kodu: -

// DC Motorların Test Edilmesi
// L293D // Pimleri Tanımla // Motor A int enableA = 2; int MotorA1 = 4; int MotorA2 = 5; // Motor B int enableB = 3; int MotorB1 = 6; int MotorB2 = 7; void setup () {Serial.begin (9600); // pin modlarını yapılandırın pinMode (enableA, OUTPUT); pinMode (MotorA1, ÇIKIŞ); pinMode (MotorA2, ÇIKIŞ); pinMode (enableB, OUTPUT); pinMode (MotorB1, ÇIKIŞ); pinMode (MotorB2, ÇIKIŞ); } void loop () {// motorun etkinleştirilmesi A Serial.println ("Motorların Etkinleştirilmesi"); digitalWrite (enableA, HIGH); digitalWrite (enableB, HIGH); gecikme (1000); // bir şey yap Serial.println ("Hareket İleri"); digitalWrite (MotorA1, DÜŞÜK); digitalWrite (MotorA2, YÜKSEK); digitalWrite (MotorB1, DÜŞÜK); digitalWrite (MotorB2, YÜKSEK); gecikme (3000); Serial.println ("Geriye Hareket"); digitalWrite (MotorA1, YÜKSEK); digitalWrite (MotorA2, DÜŞÜK); digitalWrite (MotorB1, YÜKSEK); digitalWrite (MotorB2, DÜŞÜK); gecikme (3000); Serial.println ("Motorları durdurma"); // digitalWrite'ı durdur (enableA, LOW); digitalWrite (enableB, LOW); gecikme (3000); }

İlgi̇li̇ Makaleler