Arduino – L293D Bağlantısı

Merhaba, arduino devre elemanlarını tanımaya ve onların bağlantı şekillerini öğrenmeye devam ediyoruz ve bu yazımızdaki bağlantımız Arduino – L293D Bağlantısı.

İlk önce L293D nedir, ne işe yarar, nerelerde kullanırız. Bununla ilgili kısa bir giriş yapalım sonrasında Arduino – L293D Bağlantısı için bağlantı şemasına ve test koduna geçelim.

L293D Nedir?

Mikrodenetleyicilerin çıkışları DC motorları veya step motorları direkt olarak kontrol etmek için yetersiz olduğundan motor sürücü devreler kullanılır. Motor sürücü devreler ile mikrodenetleyicilerin çıkışlarından alınan sinyaller yükseltilerek motorların kontrolü sağlanır. Motor sürücü devreler transistörler kullanılarak H köprüsü ve benzeri şekillerde hazırlanabilir. Ancak genellikle kolaylık açısından motor sürücü entegre devreler tercih edilmektedir.

Robotikte en sık kullanılan motor sürücü entegre devreler; DC motor kontrolleri için L293D, L293B, L298 motor sürücü entegrelerdir. Motor sürücü entegre seçiminde temel özellik entegrenin kullanım voltajı ve akım sınırı gibi özellikleridir.

L293D ve L293B motor sürücü entegreleri içlerinde iki adet H köprüsü barındıran 16 bacaklı motor sürücü entegrelerdir. Genellikle DC motor kontrolünde tercih edilen motor sürücü entegreler olan L293D ve L293B ile iki motor birbirinden bağımsız olarak çift yönlü kontrol edilebilmektedir. Ayrıca L293 motor sürücü entegrelerin enable bacaklarının kullanılmasıyla PWM kontrolü de yapılabilmektedir.

L293D motor sürücü entegresi 4,5 V ile 36 V aralığında maksimum 600 mA akım sınırına kadar kullanılabilir.

L293D Nerelerde Kullanılır?

Motorlarda yön kontrolü yapabilmemiz için bir motor sürücü entegresine ihtiyacımız var. L293D entegresi, 2 adet DC motor veya 1 adet step motor sürmek için kullanılan oldukça popüler bir entegredir. Bu entegrenin input 1 ve input 2 girişleri, motorun döneceği yönü; enable pini ise hangi çıkışların aktif olacağını kontrol ediyor. Enable pinine uygulayacağımız PWM sinyal, motorların hızını değiştirmemize olanak sağlıyor.

 

Bu entegreyi kullanarak hazırlanan devre şeması aşağıda paylaşılmıştır.

Görselde gösterildiği gibi bir devre kuracak olursanız devrenin tamamlanmış olduğunu göreceksiniz.

Test Kodu –>

// Include Libraries
#include "Arduino.h"
#include "DCMDriverL293D.h"


// Pin Definitions
#define DCMOTORDRIVERA_PIN_ENABLE1 5
#define DCMOTORDRIVERA_PIN_IN1 2
#define DCMOTORDRIVERA_PIN_IN2 3
#define DCMOTORDRIVERA_PIN_ENABLE2 6
#define DCMOTORDRIVERA_PIN_IN3 4
#define DCMOTORDRIVERA_PIN_IN4 7

// Global variables and defines

// object initialization
DCMDriverL293D dcMotorDriverA(DCMOTORDRIVERA_PIN_ENABLE1,DCMOTORDRIVERA_PIN_IN1,DCMOTORDRIVERA_PIN_IN2,DCMOTORDRIVERA_PIN_ENABLE2,DCMOTORDRIVERA_PIN_IN3,DCMOTORDRIVERA_PIN_IN4);

// define vars for testing menu
const int timeout = 10000; //define timeout of 10 sec
char menuOption = 0;
long time0;

// Setup the essentials for your circuit to work. It runs first every time your circuit is powered with electricity.
void setup() 
{
// Setup Serial which is useful for debugging
// Use the Serial Monitor to view printed messages
Serial.begin(9600);
while (!Serial) ; // wait for serial port to connect. Needed for native USB
Serial.println("start");


menuOption = menu();

}

// Main logic of your circuit. It defines the interaction between the components you selected. After setup, it runs over and over again, in an eternal loop.
void loop() 
{


if(menuOption == '1') {
// L293D Motor Driver IC - Test Code
//Start both motors. note that rotation direction is determined by the motors connection to the driver.
//You can change the speed by setting a value between 0-255, and set the direction by changing between 1 and 0.
dcMotorDriverA.setMotorA(200,1);
dcMotorDriverA.setMotorB(200,0);
delay(2000);
//Stop both motors
dcMotorDriverA.stopMotors();
delay(2000);

}



if (millis() - time0 > timeout)
{
menuOption = menu();
}

}

// Menu function for selecting the components to be tested
// Follow serial monitor for instrcutions
char menu()
{

Serial.println(F("\nWhich component would you like to test?"));
Serial.println(F("(1) L293D Motor Driver IC"));
Serial.println(F("(menu) send anything else or press on board reset button\n"));
while (!Serial.available());

// Read data from serial monitor if received
while (Serial.available()) 
{
char c = Serial.read();
if (isAlphaNumeric(c)) 
{
if(c == '1') 
Serial.println(F("Now Testing L293D Motor Driver IC"));
else
{
Serial.println(F("illegal input!"));
return 0;
}
time0 = millis();
return c;
}
}
}

 

Diğer devre elemanları, bağlantı şemaları ve test kodları için lütfen tıklayınız.

0 0 votes
Article Rating
Subscribe
Bildir
guest

1 Yorum
En Yeniler
Eskiler Beğenilenler
Inline Feedbacks
View all comments
cumhur
cumhur
5 yıl önce

Gayet başarılı bir paylaşım olmuş teşekkürler

1
0
Would love your thoughts, please comment.x