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.
Comments