Arduino Uno ile TB6612 Motor Sürücü Kullanımı
Arduino Uno ve TB6612 Motor Sürücü Kartı ile 2 adet motor kontrolünü gerçekleştireceğiz. Bu proje için gerekli malzemeler:
- Arduino Uno R3 DIP Klon
- TB6612 Çift Motor Sürücü Kartı
- 12V 1500 RPM Redüktörlü DC Motor
- Jumper Kablolar
TB6612 Motor Sürücü Özellikleri
TB6612FNG sadece çift motorlu bir sürücü değil, çift H-köprüsüdür. Bir H köprüsü, temel olarak, akım yönünü değiştirmenize izin veren belirli bir transistör kurulumudur. Yani bir motora bağlandığında bu da her iki yönde dönebildiği anlamına gelir ve PWM girişi ile, herhangi bir hızda dönmelerini sağlamak için Arduino kullanabilirsiniz. TB6612FNG’nin 2 adet H-köprüsüne sahip olması nedeniyle, sadece bir robotu ileri ve geri hareket ettirmekle kalmaz, aynı zamanda her bir tekerleğin farklı bir yönde dönmesini sağlayarak dönebilirsiniz.
Teknik Özellikleri:
- Motor besleme voltajı: 13.5V (Maks 15V) (Min 4.5V düşük akımlarda 2.5V’a kadar)
- Daimi çıkış akımı: 1.2A(ortalama) (Maks 3.2A)
- Çıkış ON-Direnci her H-köprüsü bacağı: 0.5Ohm
- Aşırı ısınma kapatma: Var
- Ters bağlantı koruması: Yok
Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino Uno kartımıza yükleyip test edebiliriz.
TB6612FNG Arduino Kodu
int STBY = 10; //BEKLEME PINI
//Motor A
int PWMA = 3; //A MOTOR HIZ PINI
int AIN1 = 9; //YON1
int AIN2 = 8; //YON2
//Motor B
int PWMB = 5; //B MOTOR HIZ PINI
int BIN1 = 11; //YON1
int BIN2 = 12; //YON2
void setup(){
// PIN AYARLARI
pinMode(STBY, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
}
void loop(){
move(1, 255, 1); //MOTOR 1 TAM HIZDA
move(2, 255, 1); //MOTOR 2 TAM HIZDA
delay(1000); //1 saniye bekle
stop(); //motor durdur
delay(250); //250 ms bekle
move(1, 128, 0); //motor 1, yarım hıza al
move(2, 128, 0); //motor 2, yarım hıza al
delay(1000);
stop();
delay(250);
}
void move(int motor, int speed, int direction){
digitalWrite(STBY, HIGH); //MOTORLAR AKTIF
//istenen yön durumuna göre yön pinlerinin polarizesini değiştir
boolean inPin1 = LOW;
boolean inPin2 = HIGH;
if(direction == 1){
inPin1 = HIGH;
inPin2 = LOW;
}
if(motor == 1){
digitalWrite(AIN1, inPin1);
digitalWrite(AIN2, inPin2);
analogWrite(PWMA, speed);
}else{
digitalWrite(BIN1, inPin1);
digitalWrite(BIN2, inPin2);
analogWrite(PWMB, speed);
}
}
void stop(){
//MOTORLARI DURDUR
digitalWrite(STBY, LOW);
}
Arduino ile TB6612FNG Motor Sürücü Kullanımınıbu şekilde gerçekleştirebilirsiniz. Direnc.net Blog sayfamızda sürekli olarak yeni içerikler paylaşmaya devam edeceğiz. Lütfen sormak istediğiniz soruları yorum olarak bize gönderin!