Arduino İle BTS7960B Motor Sürücü Kullanımı
Merhaba arkadaşlar! Bu yazımızda BTS7960B motor sürücüsü nedir ve özellikleri nelerdir? Bunu öğreneceğiz. Umarım yararlı bir kaynak olur. 🙂
BTS7960B Sürücü Nedir?
Bu H-Bridge modülü, Çift BTN7960B veya BTS7960B Yarım Köprü Sürücü yongalarına dayanmaktadır. Modül, yüksek güçlü DC Motor ve Solenoid sürücüleri için tasarlanmıştır. Bu yüksek akım sürücüsünü Arduino, PIC ve AVR ile kullanmak son derece kolaydır. Bu sürücü modülü, 43A’e kadar yüksek akıma sahip bir DC motoru kontrol etmenizi sağlar. Maksimum çalışma frekansı 25kHZ’e kadardır.
BTS7960B Sürücü Özellikleri?
- Çift BTN7960B / BTS7960 çip yapısı (maksimum akım 43A)
- Daha iyi izolasyon için 74HC244 arabellek sürücüsü.
- MCU’dan modüle 5 telli bağlantı: GND, 5V, IN1, IN2, EN
- Çalışma Gerilimi: DC 8~24V
- Giriş frekansı maksimum 25kHz
- Boyut: 46 mm (U) x 46 mm (G)
- Toplam Maksimum Yükseklik : 38 mm (soğutucu, kondansatör ve konektör yükseklikleri dahil)
- Sürücü: DC motoru sürmek için Yarım köprü oluşturan Dual BTN 7960 / BTS7960. Her çip, tek sürücü IC’li bir P-kanal ve bir N-kanal MOSFET içerir.
- Akım algılama özelliğine sahip PWM tabanlı kullanım.
- Düşük voltaj kapatma, Aşırı voltaj kilitleme, Aşırı sıcaklık kapatma ve aşırı akım koruması.
- 3,3 V ve 5 V sistemlerle doğrudan kullanım sağlanabilir.
- Mikrodenetleyiciyi ve motor sürücüsünü etkili bir şekilde izole etmek için dahili 74HC244 8bit hat sürücüsü çipi.
- Dönüş hızı ayarı.
- Duty cycle 0-100 %
- Yüksek ve Düşük taraflar için Birleşik Yol Direnci: 16mOhm (Tip) ve 30,3mOhm (150C’de en kötü)
- Yüksek akıma ulaşmak için jonksiyon sıcaklığı düşük kalmalıdır. BTN7960 modülü, tutarlı bir şekilde 10A ila 43A aralığına ulaşmak için yeterli olmayan küçük bir ısı emiciye(soğutucu blok) sahiptir. Sürekli yüksek akım kapasitesine ihtiyacınız varsa, daha iyi soğutma tekniği (örn. hava akışı, su soğutma, vb.) kullanılmalıdır.
Pin Yapısı
- RPWM: Sağ Taraf Yüksek / Düşük taraf Sürücü Etkin (0=düşük taraf açık, yüksek taraf kapalı; 1= yüksek taraf açık, düşük taraf kapalı)
- LPWM: Sol Taraf Yüksek / Düşük taraf Sürücü Etkin (0=düşük taraf açık, yüksek taraf kapalı; 1= yüksek taraf açık, düşük taraf kapalı)
- R_EN: Sağ Tarafı Etkinleştir
- L_EN: Sol Tarafı Etkinleştir
- R_IS: Sağ taraf Akım Algı Pini
- L_IS: Sol taraf Akım Algı Pini
- VCC: Logic VCC 3,0V/3,3V/5,0V Nominal (2,5V ila 5,3V olabilir)
- GND: 0V Mantıksal Güç Kaynağı
Güç Giriş Tarafı
- M-: Motor /Solenoid Negatif Terminal
- M+ : Motor /Solenoid Pozitif Terminali
- B+: Akü Pozitif / Yüksek Akım (Nominal: 8V – 18V, Uzatılmış: 5,5V – 28V)
- B-: Akü Negatif / Yüksek Akım ( 0V)
Kullanım Tablosu
R_EN + L_EN | RPWM | LPWM | MOTOR DURUMU |
0 | X | X | KAPALI/BEKLEMEDE |
1 | 0 | 0 | Düşük Taraf Kırma |
1 | 0 | 1 | Saat Yönü |
1 | 1 | 0 | Saat Yönünün Tersi |
1 | 1 | 1 | Yüksek Yan Kırma |
Mantıksal Değerlerin Açıklaması
- 1 = Mantık Yüksek (3v – 5,0V)
- 0 = Mantık Düşük (0v)
- x = Herhangi bir değer olabilir
Kullanım Alanları
- E-bisikletler için motor kontrolü, Segway.
- Yüksek tork gerektiren 2 tekerlekten çekişli / 4 tekerlekten çekişli robotlar.
- Yüksek torklu robotik kollar.
- Yüksek akım selenoidleri.
- PWM kontrolünün ve akım yönünün tersine çevrilmesinin gerekli olduğu endüktif veya dirençli yükler.
BTS7960B Kullanımı
Örneğimizde potansiyometre ile motorumuzu sağa ve sola döndüreceğiz.
Projemizde kullanılacak elemanlar:
- Arduino UNO R3
- BTS7960 43A Motor Sürücü
- 6V DC Motor
- 10K ohm Potansiyometre
- 9V Batarya
- 9V Batarya Klipsi
- Dişi-Erkek Jumper
- Erkek-Erkek Jumper
- Breadboard
BTS7960B Devre Şeması
Modül | Arduino |
BTS7960B R_PWM | 5 |
BTS7960B L_PWM | 6 |
BTS7960B R_EN | 8 |
BTS7960B L_EN | 9 |
BTS7960B VCC | 5V |
BTS7960B GND | GND |
Motor Pin 1 | BTS7960B M- |
Motor Pin 2 | BTS7960B M+ |
9V Batarya – | BTS7960B B- |
9V Batarya + | BTS7960B B+ |
Potansiyometre 5V | 5v |
Potansiyometre Çıkış | A0 |
Potansiyometre GND | GND |
BTS7960B Kullanım Kodu
#define RPWM 5
#define LPWM 6
#define REN 8
#define LEN 9
int pot;
int out1;
int out2;
void setup() {
Serial.begin(9600);
pinMode(RPWM,OUTPUT);
pinMode(LPWM,OUTPUT);
pinMode(LEN,OUTPUT);
pinMode(REN,OUTPUT);
digitalWrite(REN,HIGH);
digitalWrite(LEN,HIGH);
}
void loop() {
pot=analogRead(A0);
if(pot>512){
out1=map(pot,512,1023,0,255);
analogWrite(RPWM,out1);
analogWrite(LPWM,0);
}
if(pot<512){
out2=map(pot,512,0,0,255);
analogWrite(LPWM,out2);
analogWrite(RPWM,0);
}
}
Kodumuzu açıklayacak olursak. Eğer potansiyome değeri 512’den büyük ise potansiyometreden alınanan değer 512-1023 arasındadır. Bu değer map fonksiyonu ile 0-255 değer aralığına dönüşüm yaptırılır ve motor sürücüye pwm sinyali olarak verilir. Bu aralıkta motor saat yönünün tersine döner. Eğer 512’den küçük ise potansiyometreden 512-0 değer aralığı 0-255 değer aralığına dönüştürülür ve motor sürücüye verilir. Bu aralıkta ise motor saat yönünde döner. Takıldığınız kısımları yorum olarak sorabilirsiniz 🙂
BTS7960 ürününün akım algılama pinlerinin kullanımı, bağlanacak harici direnç konusunda bir uygulama yapar mısınız? (R_IS ve L_IS)
Bu konuda çekilen akım değerine göre motor yönü veya stop işlemi yapmak istiyorum. Bu konuda serefbalgmail.com adresine özelden dönüş te yapabilirsiniz.
İyi günler. Şuan için uygulama yapmak için zamanım yok aşağıdaki youtube linkinde kullanımı ve detaylı bilgilendirme yapılmış. Buradan bakarak yapabilirsiniz.
https://www.youtube.com/watch?v=JaOuOL1J4-E