ARDUINO İLE UZAKTAN KUMANDALI ARABA YAPIMI
Merhaba MakerMühendis okurları bugün sizlerle Arduino ile basit telefondan bluetooth kontrollü uzaktan kumandalı araba yapacağız. Bunun için gerekli malzemelerimiz ise;
1-) Arduino UNO R3
2-) Adafruit Arduino Motor sürücü Sheild
3-) 2 Adet DC motor ve Motorlara uyumlu Tekerlek
4-) HC05 Bluetooth modül
5-) Bluetooth RC Controller programı(BURADAN İNDİR)
5-) Güç kaynağı
Öncelikle HC05 Bluetooth modülümüzü konfigürasyonunu yapmamız gerekiyor bunun için HC05’ in RX pinini Arduinonun 13. pinine HC05’ in TX pinini Arduinonun 2. pinine bağladıktan sonra GND hattını bağlıyoruz.
Önemli nokta ise VCC hattını normalde 3.3V hattına bağlamamız gerekirken burada konfigürasyon yaptığımız için 5V hattına bağlıyoruz ve HC05’ in güç düğmesine basılı tutuyoruz. Eğer HC05’ in ışığı 3 saniye aralıklarla yanmaya başladıysa artık konfigürasyon modundayız demektir güç düğmesini bırakabilirsiniz…
Aşağıdaki kodu düzenleyip HC05’e yüklüyoruz
#include <SoftwareSerial.h> SoftwareSerial mySerial(13, 2); // RX, TX SIRASIYLA AYARLAYINIZ String isim = "Arduino UNO"; int sifre = 0000; //ŞİFRENİZİ GİRİNİZ String uart = "9600,0,0"; void setup() { Serial.begin(9600); Serial.println("HC-05 Bluetooth ayarlanıyor..."); Serial.println("HC05’in güç düğmesine 5 saniye basılı tutarak bağlantı yapınız"); mySerial.begin(38400); delay(5000); mySerial.print("AT+NAME="); mySerial.println(isim); Serial.print("Ad ayarlandı: "); Serial.println(isim); delay(1000); mySerial.print("AT+PSWD="); mySerial.println(sifre); Serial.print("Sifre ayarlandi: "); Serial.println(sifre); delay(1000); mySerial.print("AT+UART="); mySerial.println(uart); Serial.print("Baud rate ayarlandi: "); Serial.println(uart); delay(2000); Serial.println("Tamamlandi."); } void loop() { }
YAPIM AŞAMASI
1-) Adafruit Motor sürücü sheild’in Arduino R3’ ün üzerine takıyoruz
2-) Güç kaynağını Sheild’in GND ve VCC hattına bağlıyoruz
3-) MOTOR1(M1) MOTOR2(M2) portuna bağlıyoruz
4-) HC05’in GND ve VCC pinlerine Sheild’den elektrik alıyoruz
5-) HC05’in RXD pinini 13. pine bağlıyoruz TXD pinini 2. pine bağlıyoruz
6-) Uzaktan kumandalı arabamızın gerekli mekanik bağlantılarını yapıyoruz
7-) Bluetooth rc controller programını telefonumuza kurup gerekli bağlantıları yapıyoruz
Uzaktan kumandalı basit robotumuz kullanıma hazırdır…
KODLARIMIZ
#include <SoftwareSerial.h> // hc05 kütüphanesini dahil ediyoruz SoftwareSerial mySerial(13, 2); //hc05 yaptığımız konfigürasyon pinlerimiz #include <AFMotor.h> // Sheildimizin kütüphanesini dahil ediyoruz AF_DCMotor motor1(1, MOTOR12_64KHZ); // motor1 AF_DCMotor motor2(2, MOTOR12_64KHZ); // motor2 void setup() { motor1.setSpeed(255); // motor hızı motor2.setSpeed(255); // motor hızı mySerial.begin(9600); // seri haberleşmeyi açıyoruz } void loop() { char ch = mySerial.read(); if (ch == 'F') { motor1.run(FORWARD); motor2.run(FORWARD); // Programımız F kodunu yolladığında bütün motorlar ileri gitsin delay(25); motor1.run(RELEASE); motor2.run(RELEASE); } else { } if (ch == 'B') { motor1.run(BACKWARD); motor2.run(BACKWARD); delay(25); // Programımız B kodunu yolladığında bütün motorlar geri gitsin motor1.run(RELEASE); motor2.run(RELEASE); } else { } if (ch == 'R') { motor2.run(FORWARD); motor1.run(BACKWARD); // Programımız R kodunu yolladığında 2. motor ileri gitsin 1. motor geri delay(25); motor1.run(RELEASE); motor2.run(RELEASE); } else { } if (ch == 'L') { motor1.run(FORWARD); motor2.run(BACKWARD); delay(25); // Programımız L kodunu yolladığında 1. motor ileri gitsin 2. motor geri gitsin motor1.run(RELEASE); motor2.run(RELEASE); } else { } if (ch == 'X') { motor1.run(RELEASE); motor2.run(RELEASE); // Programımız X kodunu yolladığında bütün motorlar dursun } }4.TEKERLEKLİ VERSİYON GÖRÜNÜMÜ VE KODLAR İÇİN AŞAĞIYA BAKINIZ.
![]()
KODLARIMIZ
#include <SoftwareSerial.h> // hc05 kütüphanesini dahil ediyoruz SoftwareSerial mySerial(13, 2); //hc05 yaptığımız konfigürasyon pinlerimiz #include <AFMotor.h> // Sheildimizin kütüphanesini dahil ediyoruz AF_DCMotor motor1(1, MOTOR12_64KHZ); // motor1 AF_DCMotor motor2(2, MOTOR12_64KHZ); // motor2 AF_DCMotor motor3(3, MOTOR12_64KHZ); // motor3 AF_DCMotor motor4(4, MOTOR12_64KHZ); // motor 4 void setup() { motor1.setSpeed(255); // motor hızı motor2.setSpeed(255); // motor hızı motor3.setSpeed(255); // motor hızı motor4.setSpeed(255); // motor hızı mySerial.begin(9600); // seri haberleşmeyi açıyoruz } void loop() { char ch = mySerial.read(); if (ch == 'F') { motor1.run(FORWARD); motor2.run(FORWARD); motor3.run(FORWARD); motor4.run(FORWARD); // Programımız F kodunu yolladığında bütün motorlar ileri gitsin delay(25); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'B') { motor1.run(BACKWARD); motor2.run(BACKWARD); motor3.run(BACKWARD); motor4.run(BACKWARD); delay(25); // Programımız B kodunu yolladığında bütün motorlar geri gitsin motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'R') { motor2.run(FORWARD); motor3.run(FORWARD); motor1.run(BACKWARD); motor4.run(BACKWARD); // Programımız R kodunu yolladığında 2. ve 3. motorlar ileri gitsin 1. ve 4. motorlar geri delay(25); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'L') { motor1.run(FORWARD); motor4.run(FORWARD); motor2.run(BACKWARD); motor3.run(BACKWARD); delay(25); // Programımız L kodunu yolladığında 1. ve 4. motorlar ileri gitsin 2. ve 3. motorlar geri gitsin motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'X') { motor1.run(RELEASE); motor2.run(RELEASE); // Programımız X kodunu yolladığında bütün motorlar dursun motor3.run(RELEASE); motor4.run(RELEASE); } }
Show Conversion Code Hide Conversion Code Show Emoticon Hide Emoticon