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. L293B motor sürücü entegrenin ise aynı voltaj aralığında, maksimum 1 A akım sınırına kadar kullanılması mümkündür.
Burada lojik voltaj değeri 5 V, motor voltajı ise kullanılan motoru sürmek için gerekli voltaj değeri olup bu değer 36 V değerini geçmemelidir.
PİN2=1 VE PİN7=0 iken sol motor sağa, PİN10=1 VE PİN15=0 iken sağ motor da sağa dönmektedir.
PİN2=0 VE PİN7=1 iken sol motor sola, PİN10=0 VE PİN15=1 iken sağ motor da sola dönmektedir.
CRL293D, 4,5 V ila 36 V arasındaki voltajlarda 600 mA’ya kadar iki yönlü sürücü akımları sağlamak üzere tasarlanmıştır. pozitif besleme uygulamalarında röleler, solenoidler, DC ve bipolar step motorlar gibi endüktif yükleri ve diğer yüksek akım / yüksek voltajlı yükleri çalıştırmalar için tasarlanmıştır.
L293D Motor Sürücü Kullanımı
#define MOTOR_EN_1_2 10
#define MOTOR_IN1 9
#define MOTOR_IN2 8
#define slow 64
#define normal 128
#define fast 255
int Speed;
void Forward_Rev(void){
analogWrite(MOTOR_EN_1_2, Speed);
digitalWrite(MOTOR_IN1, HIGH);
digitalWrite(MOTOR_IN2, LOW);
}
void Backward_Rev(void){
analogWrite(MOTOR_EN_1_2, Speed);
digitalWrite(MOTOR_IN1, LOW);
digitalWrite(MOTOR_IN2, HIGH);
}
void Forward_ramp_up(void){
digitalWrite(MOTOR_IN1, HIGH);
digitalWrite(MOTOR_IN2, LOW);
for (int i=0; i<255; i++) { analogWrite(MOTOR_EN_1_2, i); delay(10); } } void Forward_ramp_down(void){ digitalWrite(MOTOR_IN1, HIGH); digitalWrite(MOTOR_IN2, LOW); for (int i=255; i>=0; i--) {
analogWrite(MOTOR_EN_1_2, i);
delay(10);
}
}
void Backward_ramp_up(void){
digitalWrite(MOTOR_IN1, LOW);
digitalWrite(MOTOR_IN2, HIGH);
for (int i=0; i<255; i++) { analogWrite(MOTOR_EN_1_2, i); delay(10); } } void Backward_ramp_down(void){ digitalWrite(MOTOR_IN1, LOW); digitalWrite(MOTOR_IN2, HIGH); for (int i=255; i>=0; i--) {
analogWrite(MOTOR_EN_1_2, i);
delay(10);
}
}
void Brake(void){
digitalWrite(MOTOR_IN1, HIGH);
digitalWrite(MOTOR_IN2, HIGH);
}
void setup() {
Serial.begin(9600);
Serial.println("L293D DC motor test");
pinMode(MOTOR_EN_1_2, OUTPUT);
pinMode(MOTOR_IN1, OUTPUT);
pinMode(MOTOR_IN2, OUTPUT);
}
void loop() {
Speed=normal; // Normal Speed
Forward_Rev();
delay(1000);
Brake();
delay(500);
Backward_Rev();
delay(1000);
Brake();
delay(500);
Forward_ramp_up();
Forward_ramp_down();
Backward_ramp_up();
Backward_ramp_down();
}
İncelemeler
Henüz inceleme yapılmadı.