Arduino Bluetooth İle Motor Kontrolü

0
5694
Arduino Bluetooth İle Motor Kontrolü
Arduino Bluetooth İle Motor Kontrolü

Arduino Bluetooth İle Motor Kontrolü

Arduino ile büyük projelere adım atmak istiyorsak motor kontrolünü öğrenmek zorundayız. İçerisinde motor elemanı olan bir projede kullanılacak motoru daima aracı bir eleman ile Arduino’ya bağlamak en mantıklı iş olacaktır. Bu sayede oluşabilecek herhangi bir arızada Arduino kartına bir zarar gelmez iken, arıza tespiti de kolaylaşır. Piyasada çok sayıda motor sürücü entegreleri bulunmaktadır. Biz bu projede L293D entegresini kullanacağız. Akıllı cihazımız ile dc motoru kontrol etmek için bize lazım olan elamanlara şimdi göz atalım.

Kullanılan Malzemeler

  • 1 adet ARDUİNO UNO,
  • 1 adet HC-05 Bluetooth modülü,
  • 1 adet L293D Motor Sürücü Entegresi,
  • 1 adet DC Motor,
  • 1 adet Breadboard ve çeşitli devre yapım elemanları.

Tasarım

Arduino Uno kartı ile dc motor arasında L293D motor sürücü entegresini kullanacağımızı söylemiştik. L293D’yi daha yakından inceleyecek olursak; toplamda 16 adet uca sahiptir. Bunlardan 4’ü giriş (INPUT), 4’ü çıkış pinidir. Yine 4 adet topraklama (GND) ucuna sahiptir. Kalan 4 uçtan 2’si yetki (ENABLE), 2’si de pozitif besleme ucudur.

Devrenin geneline baktığımızda Uno kartının 3v3 pozitif besleme ucu devre enerjisi için breadboard pozitif şeridine, Gnd negatif besleme ucu ise breadboard negatif şeridine verilmiştir. Kartın dijital 3, 4, 5 uçları L293D motor sürücü entegresinin giriş ve yetkilendirme uçlarına bağlanmıştır. Kartın seri haberleşme TX ve RX uçları HC-05 bluetooth modülünün RXD ve TXD pinleri ile birleştirilmiştir.

Kodlar

Bu projede en büyük avantajlarımızdan birisi mobil tasarıma gerek olmaması. Devre ile iletişime geçmek için gerekli olan Android uygulamayı PlayStore mağazasından BlueTerm programını indirerek gerçekleştirebileceğiz. Uygulamadan biraz bahsetmek gerekirse; kendisine ait seri haberleşme sistemi ile etkin olan bluetooth modüllü cihazı (projede Arduino’yu) bularak iki cihazı etkileşime geçiren bir uygulamadır.

Arduino kodlamamızda giriş, çıkış pinlerini belirledikten sonra seri haberleşmeyi başlatacağız. Daha sonrasında ise mobil cihazımızdan gelecek haberi bekleyeceğiz. Bu haberler mobil cihazdan 0,1,2 numaralarına basılması ile karta gelecektir. 0 numarasına basıldığında motor duracak, 1 numarasına basıldığında motor sağa, 2 numarasına basıldığında ise sola dönecektir. Bu şekilde Android tabanlı mobil bir cihaz ile Arduino sistemli bir devreyi kontrol etmiş olacağız.

Şimdi kodlarımıza bakalım.

int motorPin1 = 3; // L293D 2.pin

int motorPin2 = 4; // L293D 7.pin

int enablePin = 5; // L293D 1.pin

int durum;

int bayrak=0;        

 

void setup() {

    // giriş-çıkış pinlerinin ayarlanması

    pinMode(motorPin1, OUTPUT);

    pinMode(motorPin2, OUTPUT);

    pinMode(enablePin, OUTPUT);

    // motorun çalışabilmesi için yetki pinini(enablePin) lojik-1 yapıyoruz

    digitalWrite(enablePin, HIGH);

    // bluetooth modül ile seri iletişim başlatıldı

    Serial.begin(9600);

}

 

void loop() {

    //veri alışverişi olursa o anki motorun durumu okunsun ve kayıtedilsin

    if(Serial.available() > 0){     

      durum = Serial.read();   

      bayrak=0;

    }   

    //eğer mobil cihazdan "0" verisi gelirse motor dursun

    if (durum == '0') {

        digitalWrite(motorPin1, LOW); 

        digitalWrite(motorPin2, LOW); 

        if(bayrak == 0){

          Serial.println("Motor: kapalı");

          bayrak=1;

        }

    }

    // eğer mobil cihazdan "1" verisi gelirse motor sağa dönsün

    else if (durum == '1') {

        digitalWrite(motorPin1, LOW); 

        digitalWrite(motorPin2, HIGH); 

        if(bayrak == 0){

          Serial.println("Motor: sağa dönüyor");

          bayrak=1;

        }

    }

    // eğer mobil cihazdan "2" verisi gelirse motor sola dönsün

    else if (durum == '2') {

        digitalWrite(motorPin1, HIGH);

        digitalWrite(motorPin2, LOW); 

        if(bayrak == 0){

          Serial.println("Motor: sola dönüyor");

          bayrak=1;

        }

    }

}



 

CEVAP VER

Please enter your comment!
Please enter your name here