#10 Arduino ile DC Motor Kontrolü

Malzemeler:


1 Adet Arduino Uno (25 TL)
1 Adet DC Motor (10-50 TL) Rpm torkuna göre fiyatları değişiyor.
1 Adet Motor Sürücü(5-25 TL)  L298 ya da L293 olabilir.
1 Adet Batarya (seçtiğiniz Motora göre Voltajı değişmektedir.)

Devre Kurulumu:

Dc motorlar bilindiği gibi çizgi izleyen robot, engelden kaçan robot , yangın söndüren robot, sumo ve mini sumo robotlarda kullanılmaktadır.Ben devreyi kurarken 9V motor kullandığımızı varsayarak 9V luk batarya kullandım.Motor sürücü olarak da L293D kullandım. Çok fazla akım çekmeyecek uygulamalar için kullanımı daha kolaydır. Eğer motorlarınız 600mA den fazla akım çekiyorsa başka motor sürücü kullanmalısınız. L293B 1 Ampere kadar uygun 1 amperden 2 ampere kadar da L298 kullanmalısınız.Bütün bu motor sürücülerle 2 tane motor sürebilirsiniz. Ayrıca transistörlerle H köprüsü kullanarak da motorlarınızı kontrol edebilirsiniz. H köprüsü hakkında ayrıntılı bilgiyi bir çok siteden bulabilirsiniz. Kullandığınız motora göre motor sürücü ve batarya değişmekte. Şimdi gelelim devremize L239D nin datasheetine bakalım.

Bacakları açıklayalım.
1. Bacak CHIP INHIBIT yazan yer Enable1 bacağıdır ve arduinonun PWM destekleyen bir bacağına bağlanacaktır.
2.Bacak INPUT 1 Motor ileri olarak tanımlanır.
3.Bacak OUTPUT 1 Motorun bir ucunu bağlayacağımız bacak.
4.-5.-12.-13. Bacakalar GND bacaklarıdır. Arduinonun GND pinine bağlayacaksınız.
6.Bacak OUTPUT 2 Motorun diğer ucunu bağlayacağımız bacak.
7.Bacak INPUT 2 Motor geri olarak tanımlanır.
8.Bacak Vc Bataryanın + kısmını bağlıyoruz.
16.Bacak 5V verilmesi gerek Arduinonun herhangi bir digital pini 5V verdiği için herhangi bir digital pine bağlayıp HIGH olarak tanımlayacağız.
Diğer bacaklar da 2. Motor içindir. İlk motorla aynı şekilde bağlanır.




Programlama:

const int ileri = 13;
const int geri = 12;
const int enable = 5;
const int voltage = 8;

void setup(){
pinMode(ileri,OUTPUT); //pinleri çıkış olarak tanımladık
pinMode(geri,OUTPUT);
pinMode(enable,OUTPUT);
pinMode(voltage,OUTPUT);
digitalWrite(voltage,HIGH); // Motor sürücünün 16. pinine 5V gönderdik
                            // direk 5V pinine de bağlayabilirsiniz.
}
void loop(){

digitalWrite(ileri,HIGH); // Böylece ileri olarak tanımladık
digitalWrite(geri,LOW);
for(int i=0; i<255; i++)  { // hızlanarak ileri gitti
analogWrite(enable,i); }     // pwm değeri gönderdiği için analogwrite komutu kullandık

digitalWrite(ileri,LOW); // geri olarak tanımladık
digitalWrite(geri,HIGH);
for(int j=255; j>0; j--){ // yavaslayarak geri geldi
analogWrite(enable,j);

}
}
Programı yüklediğimizde motor ileriye hızlanarak gidecektir. Ardından geriye doğru yavaşlayarak geri gelecektir.Bu motor sayısını arttırarak ve kodu biraz değiştirerek rc arabanızı yapabilirsiniz. Hatta bu arabanızı android telefonunuzdan da kontrol edebilirsiniz. Onunla ilgili uygulama yakında blogumda yayınlayacağım. Herkese iyi bayramlar :)

Yorumlar

Bu blogdaki popüler yayınlar

Sinyal Jeneratörü Nedir? (Function generator)

Arduino'dan Python'a veri aktarma

#12 Arduino ile Step Motor Kontrolü