const int trig = 10; //sensör pinleri tanımlandı
const int echo = 8;
const int sol_i = 2; // motor sürücü pinleri tanımlandı
const int sol_g = 3;
const int sag_i = 4;
const int sag_g = 7;
int pwm_sag = 5;
int pwm_sol = 6;
int sure = 0; // mesafe hesabından kullanılacak olan değişkenler tanımladı
int mesafe = 0;
void setup()
{
pinMode(trig , OUTPUT); // sensörün trigger pini çıkış olarak ayarlandı
pinMode(echo , INPUT ); // sensörün echo pini giriş olarak ayarlandı
pinMode(sol_i, OUTPUT); // motor sürücü pinleri çıkış olarak ayarlandı
pinMode(sol_g, OUTPUT);
pinMode(sag_i, OUTPUT);
pinMode(sag_g, OUTPUT);
pinMode(pwm_sag, OUTPUT);
pinMode(pwm_sol, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(trig , HIGH); // hc-sr04 kullanılarak mesafe hesaplandı
delayMicroseconds(1000);
digitalWrite(trig , LOW);
sure = pulseIn(echo , HIGH);
mesafe = (sure / 2) / 29,1;
Serial.print(" cisme olan uzaklık = ");
Serial.println(mesafe);
Serial.println("--------------------");
delay(500);
analogWrite(pwm_sag , 127);
analogWrite(pwm_sol , 127);
if (mesafe < 20 ) // mesafe 20cm den küçük ise robotu geri al ve döndür
{
digitalWrite(sol_i , LOW);
digitalWrite(sol_g , HIGH);
digitalWrite(sag_i , LOW);
digitalWrite(sag_g , HIGH);
delay(150);
digitalWrite(sol_i , HIGH);
digitalWrite(sol_g , LOW);
digitalWrite(sag_i , LOW);
digitalWrite(sag_g , HIGH);
delay(250);
}
else // mesafe 20cm den büyük ise düz git
{
digitalWrite(sol_i , HIGH);
digitalWrite(sol_g , LOW);
digitalWrite(sag_i , HIGH);
digitalWrite(sag_g , LOW);
}
}