UZAKTAN KUMANDALI ARABA VE SAĞA SOLA BAKAN ROBOTU BİRLEŞTİRMEK #1


MAKER MUHENDIS SORU-CEVAP #1

Merhaba Mesut Erkmen Bize Arduino ile uzaktan kumandalı araba ve sağa solan bakan robotun birleştirilip birleştirilemeyeceğini sormuştun. Elimizde olmayan sebeplerden dolayı projeyi deneyimleme şansımız olmadı fakat kodlarını buraya yükleyeceğiz.
Öncelikle yapman gerekenler

1- 9. pine bir led bağlamak
2- Echo pinini 6. pine Trig pinini 10. pine bağlamak
3-Son olarak aşağıdaki kodları Arduinoya yüklemek

****Mod Değiştirmek için bluetooth programında yukarıdaki KORNA tuşuna basmak modun değişip değişmediğini ledin yanıp sönmesinden anlayabilirsin***




!! Kodları deneme şansımız olmadığı için emin olamıyoruz fakat siz deneyip bize geri dönerseniz çok memnun oluruz.
!! Bu proje için biraz fazla güç kaynağı kullanmalısınız.

KODLARIMIZ



#include <SoftwareSerial.h> 
#include <Servo.h>  
SoftwareSerial mySerial(13, 2);  
const int trig = 6;
const int echo = 10;
const int led = 9;

Servo servo;
int sure = 0;
int mesafe = 0;
int mesafesol = 0;  // mesafe sol’u tanımladık
int mesafesag = 0;  // mesafe sağ’ı tanımladık

#include <AFMotor.h> 
 AF_DCMotor motor1(1, MOTOR12_64KHZ); // motor1
AF_DCMotor motor2(2, MOTOR12_64KHZ); // motor2 


void setup()
{

motor1.setSpeed(255); 
   motor2.setSpeed(255); 
  servo.attach(10);   // motor sheildteki servo 1 pini arduinoda 10. pine denk geliyor
  pinMode(trig , OUTPUT);
  pinMode(echo , INPUT);
pinMode(led , OUTPUT);

  mySerial.begin(9600); 
}
 
void loop()
{
  
  char ch = mySerial.read();    
  if (ch == 'V'){
    digitalWrite(led , HIGH);
  }
    if (ch == 'v'){
    digitalWrite(led , LOW);
  }
int durum = digitalRead(led);
while(durum = 1){
  if (ch == 'F')
  {
      motor1.run(FORWARD);
    motor2.run(FORWARD);
    delay(25);
      motor1.run(RELEASE);
    motor2.run(RELEASE);

  }
    else
    {
    }

  if (ch == 'B')
  {
     motor1.run(BACKWARD);
    motor2.run(BACKWARD);
     delay(25);                  
      motor1.run(RELEASE);
    motor2.run(RELEASE);
  }
    else
    {
    }
  if (ch == 'R')
  {
    motor2.run(FORWARD);
motor1.run(BACKWARD);
    delay(25);
      motor1.run(RELEASE);
    motor2.run(RELEASE); 
  }
    else
    {
    }
  if (ch == 'L')
  {
   motor1.run(FORWARD);
      motor2.run(BACKWARD);
    delay(25);       
      motor1.run(RELEASE);
    motor2.run(RELEASE);
  }
    else
    {
    }
     if (ch == 'X')
  {
    motor1.run(RELEASE);
    motor2.run(RELEASE);                

  }
}
while (durum = 0){
    servo.write(90);
  digitalWrite(trig , HIGH);
  delayMicroseconds(1000);
  digitalWrite(trig , LOW);

  sure = pulseIn(echo , HIGH);
  mesafe = (sure/2) / 28.5 ;
  

  if ( mesafe > 20 )  // mesafe 20 den fazlaysa tekerler ileri dolayısıyla araba ileri
  {
    motor1.run(FORWARD);
    motor2.run(FORWARD);
   
}
else
{
     motor1.run(RELEASE); // mesafe 20 den yukarı değilse motorlar dursun
    motor2.run(RELEASE);
    servo.write(0);  // servomuz sola döndü
    delay(600);
    digitalWrite(trig , HIGH);
  delayMicroseconds(1000);
  digitalWrite(trig , LOW);
  sure = pulseIn(echo , HIGH);
  mesafesol = (sure/2) / 28.5 ;    // mesafe sol ölçüldü
  delay(250);
  servo.write(180);  // servomuz sağa döndü
    delay(750);
    digitalWrite(trig , HIGH);
  delayMicroseconds(1000);
  digitalWrite(trig , LOW);
  sure = pulseIn(echo , HIGH);
  mesafesag = (sure/2) / 28.5 ;  // mesafe sağ ölçüldü
  delay(250);
  servo.write(90);  // servomuz eski haline geri döndü
  delay(750);

  if (mesafesol > mesafesag)  // mesafe solda daha fazla boşluk varsa sağ motor ileri sol geri
{
  motor1.run(BACKWARD);
    motor2.run(BACKWARD);
   delay(300);
   motor1.run(BACKWARD);  
    motor2.run(FORWARD);
    delay(350);
     motor1.run(FORWARD);
    motor2.run(FORWARD);
}
else if (mesafesag > mesafesol)  // mesafe sağda daha fazla boşluk varsa sol mtr ileri sağ geri
{
    motor1.run(BACKWARD);
    motor2.run(BACKWARD);
   delay(300);
   motor1.run(FORWARD);
    motor2.run(BACKWARD);
    delay(350 );
     motor1.run(FORWARD);
    motor2.run(FORWARD);
}
   else
   {
          motor1.run(BACKWARD);
    motor2.run(BACKWARD);
   }
}

}
}
SONRAKI YAYIN
« Prev Post
ONCEKI YAYIN
Next Post »
Thanks for your comment