top of page
Katman 0 Karesi - Kopya (2).png
Yazarın fotoğrafıAtakan Ekşi

Ultrasonic sensör ile engelden kaçan araba yapımı


Engelden kaçan araba ultrasonik ses sensörü (HC-SR04) sayesinde önüne bir engel çıktığı zaman başka yöne doğru hareket etmeye başlıyor. Bu proje için 2 tekerli (+1sarhoş teker) araba kiti kullandım.

Kodu aşağıya bırakıyorum;


#define echo 13

#define trig 12


#define sagmotor1 3

#define sagmotor2 5

#define sagmotorEn 6

#define solmotor1 9

#define solmotor2 10

#define solmotorEn 11


long zaman;

int cm;


void setup() {


pinMode(trig,OUTPUT);

pinMode(echo,INPUT);

pinMode(sagmotor1, OUTPUT);

pinMode(sagmotor2, OUTPUT);

pinMode(sagmotorEn, OUTPUT);

pinMode(solmotor1, OUTPUT);

pinMode(solmotor2, OUTPUT);

pinMode(solmotorEn, OUTPUT);//motorları tanımladık


Serial.begin(9600);


}


void loop() {



digitalWrite(trig, LOW);

delayMicroseconds(5);

digitalWrite(trig, HIGH);

delayMicroseconds(10);

digitalWrite(trig, LOW); //sensore sinyal gönderdik ve aldık


zaman = pulseIn(echo,HIGH);

cm = zaman/58.2; //engelle aramızdaki mesafeyi ölçtük

Serial.println(cm);

if (cm < 15)

{

dur();

delay(500);

sag();

delay(500);

}//15 cmden az varsa dur ve saga don dedik

else {

ileri();

}//degilse devam et dedik


}

void ileri(){


digitalWrite(sagmotor1, 1); //sag motorun ileri mi geri mi gidecegini bu satırlarla ayarlıyoruz

digitalWrite(sagmotor2, 0); //eger teker istediğimiz gibi dönmüyorsa bu iki satırdaki 1 ve 0ın

//yerini değistirin. aynı durum diger motor icinde gecerli

analogWrite(sagmotorEn, 255);


digitalWrite(solmotor1, 0);

digitalWrite(solmotor2, 1);

analogWrite(solmotorEn, 255);

} //ielri fonksiyonunu girdik


void sag(){


digitalWrite(sagmotor1, 1);

digitalWrite(sagmotor2, 0);

analogWrite(sagmotorEn,255);


digitalWrite(solmotor1, 1);

digitalWrite(solmotor2, 0);

analogWrite(solmotorEn, 255);

}//sag fonksiyonunu girdik

void dur(){


digitalWrite(sagmotor1, LOW);

digitalWrite(sagmotor2, LOW);

analogWrite(sagmotorEn,0);


digitalWrite(solmotor1, LOW);

digitalWrite(solmotor2, LOW);

analogWrite(solmotorEn, 0);

}//dur fonsiyonunu girdik


//kod bitti


Dilersek yukarıda 1 ve 0 ların yerini değiştirmek yerine motorlarların sağ ve sol pinlerine bağladığımız kabloları da sağ kablo sol pine sol kablo sağ pine gelecek şekilde değiştirebliliriz.

Yükleme işlemi bittikten sonra arabamız çalışır hale gelecektir.


Bilinmesi gerekenler: Bu motorlar çok akım çektiği için motor sürücüyü arduinonun 5 voltajıyla beslemenizi önermem, mümkünse şemadaki gibi arduinoyu farklı motor sürücüyü farklı bataryalarla besleyin.





185 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

Comments


bottom of page