Hasan SAVUN Blog

Bir Elektronikçinin Günlüğü

Yön değiştiren araba

Yön değiştiren araba

Merhaba,

Bu yazımda engel ile karşılaştığında yöünün değiştiren arabadan bahsedeceğim.

araba

 

Arabayı arduino ile yaptım.

Malzeme Listesi ve Kodlar aşağıda

Malzeme Listesi

Arduino Uno
Breadboard
4 adet Motor
2 adet Motor sürücü
1 adet Ultranic Mesafe sensörü
1 adet pil yuvası

 

 

Arduino kodları aşağıdaki gibi

#include <Stepper.h>

#define echoPin 7 // Echo Pin
#define trigPin A0 // Trigger Pin

int maximumRange = 200; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance

const int in1 = 10;
const int in2 = 11;
const int in3 = 12;
const int in4 = 13;
//const int e1 = A1;
//const int e2 = A2;

const int in5 = 2;
const int in6 = 3;

const int in7 = 4;
const int in8 = 5;

long  mesafe=0,mesafe_sag=0,mesafe_sol=0;

const int stepsPerRevolution = 250;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(400, 1, 8, 2, 9);

void setup()
{
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(in5,OUTPUT);
pinMode(in6,OUTPUT);
pinMode(in7,OUTPUT);
pinMode(in8,OUTPUT);
// set the speed at 60 rpm:
myStepper.setSpeed(60);
// initialize the serial port:
//000000Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
delay(1000);
//motor_ayarla();

}

void loop()
{
mesafe = mesafe_oku();

if (mesafe>20)
ileri();
if (mesafe<20)
{
dur();
delay(1000);
geri();
delay(500);
dur();
delay(500);
sag_don();
delay(500);
dur();
delay(500);
mesafe_sag=mesafe_oku();
delay(100);
sol_don();
delay(1100);
dur();
delay(500);
mesafe_sol=mesafe_oku();

delay(100);

if (mesafe_sag<mesafe_sol)
{
ileri();
}
else
{
sag_don();
delay(1200);
dur();
delay(500);
ileri();
}
}
delay(100);

}

void ileri()
{
sag_on_teker(1);
sol_on_teker(1);
sag_arka_teker(1);
sol_arka_teker(1);
}

void geri()
{
sag_on_teker(2);
sol_on_teker(2);
sag_arka_teker(2);
sol_arka_teker(2);

}

void dur()
{
sag_on_teker(0);
sol_on_teker(0);
sag_arka_teker(0);
sol_arka_teker(0);
}

void sag_don()
{
sag_on_teker(2);
sol_on_teker(1);
sag_arka_teker(1);
sol_arka_teker(2);
}

void sol_don()
{
sag_on_teker(1);
sol_on_teker(2);
sag_arka_teker(2);
sol_arka_teker(1);
}

void sag_on_teker(int y)
{
if (y==1)
{
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
}
if (y==2)
{
digitalWrite(in4,HIGH);
digitalWrite(in3,LOW);
}

if (y==0)
{
digitalWrite(in4,LOW);
digitalWrite(in3,LOW);
}

}

void sag_arka_teker(int y)
{
if (y==1)
{
digitalWrite(in5,HIGH);
digitalWrite(in6,LOW);
}
if (y==2)
{
digitalWrite(in6,HIGH);
digitalWrite(in5,LOW);
}

if (y==0)
{
digitalWrite(in5,LOW);
digitalWrite(in6,LOW);
}

}

void sol_on_teker(int y)
{

if (y==1)
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
}
if (y==2)
{
digitalWrite(in2,HIGH);
digitalWrite(in1,LOW);
}

if (y==0)
{
digitalWrite(in2,LOW);
digitalWrite(in1,LOW);
}

}

void sol_arka_teker(int y)
{

if (y==1)
{
digitalWrite(in7,HIGH);
digitalWrite(in8,LOW);
}
if (y==2)
{
digitalWrite(in8,HIGH);
digitalWrite(in7,LOW);
}

if (y==0)
{
digitalWrite(in7,LOW);
digitalWrite(in8,LOW);
}

}

void yon_bul()
{

int a=stepsPerRevolution;

myStepper.step(a);
Serial.println(mesafe_oku());
delay(500);

myStepper.step(-a);
Serial.println(mesafe_oku());
delay(500);

myStepper.step(-a);
//Serial.println(mesafe_oku());
delay(200);

myStepper.step(a);
Serial.println(mesafe_oku());
delay(500);

//delay(5000);
}

void motor_ayarla()
{
int a=stepsPerRevolution;
//Serial.println(mesafe_oku());
Serial.println("motor ayarla");
long m=mesafe_oku();
Serial.println("m : "+m);
while (m>5)
{
myStepper.step(a);
delay(100);

m=mesafe_oku();
Serial.println("m : "+m);
}

Serial.println("motor ayarlan cikildi");
}

long mesafe_oku()
{
analogWrite(trigPin, 0);
delayMicroseconds(2);

analogWrite(trigPin, 255);
delayMicroseconds(10);

analogWrite(trigPin, 0);
duration = pulseIn(echoPin, HIGH);

//Calculate the distance (in cm) based on the speed of sound.
distance = duration/58.2;

return distance;
}
Hasan SAVUN

3 Yorum

ne önemi var Yayın tarihi6:03 pm - Nis 15, 2019

Nasıl yapıldığını anlatır mısın lütfen acil

Osman Yayın tarihi9:00 pm - Kas 22, 2019

Merhaba. Şu sayfanızdaki kodlara bakmak istiyorum, Parola istiyor? yardımcı olabilir misiniz?
http://hasansavun.com.tr/kml-to-excel-koordinat-aktarma/
KML to EXCEL koordinat aktarma

    hsavun Yayın tarihi9:42 am - Şub 17, 2020

    Merhaba Osman,
    sayfanın korumasını kaldrıdım.
    kodlar yanımda değil.
    evdeki bilgisayarda bozuldu.
    verileri alınca yüklerim buraya.

Bir Cevap Yazın