Elektrik enerjisini hareket enerjine çevirmeye yarayan mekanik aygıtlara motor denir. Elektrik
motorları AC ve DC olarak iki gerilim türünde çalışacak şekilde üretilir. Diğer birçok motor modeli
bu iki motor türünden geliştirilmiştir. AC motorlar genel olarak asenkron motor olarak iki türde
üretilir. Bunlar bir fazlı ve üç fazlı motorlar olmak üzere iki türdedir. Bu motorların dönüş yönünü
değiştirmek için farklı uygulamalar mevcuttur.
DC motorlar ise senkron motorlar, step motorlar, fırçalı ve fırçasız motorlar, sabit mıknatıslı motorlar olmak üzere üretilmektedir. Fırçalı DC motorlarda motor yönünü değiştirmek için besleme
gerilim uçlarının yerini değiştirmek yeterlidir. Step motorlar, fırçasız motorlar ve sabit mıknatıslı
motorlarda ise motor yönünü değiştirmek için farklı motor sürme teknikleri uygulanmaktadır
Bu uygulamada fırçalı DC motor dönüş yönünü değiştirmek için dört transistörlü H tipi köprü
devresi kullanılmaktadır.
DC Motor Uygulaması
DC motor, doğru akım elektrik enerjisini mekanik enerjiye dönüştüren elektrik motorudur.
Motorun içinde yer alan sargılara elektrik akımı uygulandığında manyetik kuvvetin etkisiyle motor hareket eder. DC motorda + ve – kutupların yerleri değiştirilerek dönüş yönü değiştirilirken
uygulanan gerilim değiştirilerek de motorun hızı kontrol edilir.
DC motorun dönüş yönünü değiştirmek için H-köprüsü (H-Bridge) kullanılır. H köprüsü devresi,
merkezinde motor bulunan ve ”H” harfi benzeri bir düzenleme oluşturan dört anahtar içerir.
Görseldeki çapraz iki anahtarın aynı anda kapatılması, motora uygulanan voltajın polaritesini
tersine çevirir ve motorun dönüş yönünün değişmesini sağlar
Görselde motorun hızını ayarlamak için motora uygulanan gerilim değişiminin mikrodenetleyicilerde PWM kullanılarak yapılışı gösterilmiştir.
Arduino pininden sağlanan 5 V, 40 mA (0,2 W) değerleri, motorları (mikro DC motorlar hariç) çalıştırmak için yeterli değildir. Bunun için Arduino ile motor arasında motor sürücü adı verilen güç
üniteleri kullanılır.
L298N Motor Sürücü
H-Köprüsü oluşturmak için dört ayrı transistör kullanılabildiği gibi entegre devreler de kullanılabilir. Görselde H-Köprüsü içeren L298N motor sürücünün pin yapısı verilmiştir. Benzer özellikleri olan ancak daha küçük boyutlara sahip TB6612FNG motor sürücüsü de uygulamalarda tercih edilebilir.
VCC: 5 V – 35 V besleme.
GND: Topraklama pini.
5 V: 5 V enable jumper yerindeyse bu pin çıkış görevi görür ve Arduino’u beslemek için kullanılır.
5V enable jumper çıkmamışsa modül üzerindeki 5 V regülatör pasif bırakılır. L298N içindeki
anahtarlama mantığı devresinin gücü kesilir. Bu durumda 5 V pini Arduino üzerindeki 5 V pininden güç alacak şekilde haricî besleme bulunmayan mikro DC motor uygulamasında
kullanılabilir.
ENA: A motorunun hız kontrolünü yapar. Jumper takılıysa 5 V sağladığından tam güç verilir.
Jumperı çıkarılıp bu pin PWM çıkışına bağlandığında A motorunun hızı kontrol edilir
IN1 ve IN2: İki pinin kutuplanmasına göre (lojik 0 veya 1) A motorunun dönüş yönü belirlenir
IN3 ve IN4: İki pinin kutuplanmasına göre (lojik 0 veya 1) B motorunun dönüş yönü belirlenir
ENB: B motorunun hız kontrolünü yapar. Jumper takılıysa 5 V sağladığından tam güç verilir.
Jumperı çıkarılıp bu pin PWM çıkışına bağlandığında B motorunun hızı kontrol edilir.
OUT1-OUT2: A motorunun bağlandığı pinler (Tam güçte VCC kadar voltaj çıkışı verir. Çıkış akımı
en fazla 2 A olur.)
OUT3-OUT4: B motorunun bağlandığı pinler.
Örnek: L298N motor sürücünün IN1, IN2, IN3 ve IN4 girişlerinde analogWrite() kullanımı
const byte IN1 = 5, IN2 = 6, IN3 = 9, IN4 = 10; //Tümü PWM çıkışı. //enA ve enB jumperları kaldırılmamıştır. void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } void loop() { analogWrite(IN1, 200); analogWrite(IN2, 100); analogWrite(IN3, 200); analogWrite(IN4, 100); }
Görseldeki devredeki DC motorlar, L298N motor sürücüsüyle sürülmektedir. Uygulamada motorlar birer
saniye aralıklarla ileri, geri, sola ve sağa döndürülmektedir. Motorlara uygun tekerlek ve şase takılarak sonuçlar gözlemlenebilir.
const byte IN1 = 2, IN2 = 3, IN3 = 4, IN4 = 5; const byte enA = 9, enB = 10; byte hiz = 255; // PWM. void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } void loop() { // İleri. digitalWrite(IN1, 1); digitalWrite(IN2, 0); digitalWrite(IN3, 1); digitalWrite(IN4, 0); analogWrite(enA, hiz); // Tam güç. analogWrite(enB, hiz); delay(1000); // Geri. digitalWrite(IN1, 0); digitalWrite(IN2, 1); digitalWrite(IN3, 0); digitalWrite(IN4, 1); analogWrite(enA, hiz / 4); analogWrite(enB, hiz / 4); delay(1000); // Sol. digitalWrite(IN1, 0); digitalWrite(IN2, 1); digitalWrite(IN3, 1); digitalWrite(IN4, 0); analogWrite(enA, hiz / 2); //Yarım güç. analogWrite(enB, hiz / 2); delay(1000); // Sağ. digitalWrite(IN1, 1); digitalWrite(IN2, 0); digitalWrite(IN3, 0); digitalWrite(IN4, 1); analogWrite(enA, hiz / 2); analogWrite(enB, hiz / 2); delay(1000); }
No responses yet