Hi!
I’m last year engineering student and i have to do last year project. But im not good at coding.
My project will be this(given above link)
But i have a problem with codes. The algorithm must be (i think) like this;
Stop > Calculate the nearest distance > Move at low speed (calculated distance - 3cm) > Stop > When there is no obstacle > Move at max. speed (Car lenght + 5 cm ) > Stop and loop
Did someone make a project like this? Can you help me please ?
My codes;
#define echoPin 13
#define trigPin 12
int enA = 10;
int in1 = 9;
int in2 = 8;
int enB = 5;
int in3 = 7;
int in4 = 6;
int save, save1, save2, save3;
int savemain;
int savelast;
long sure, mesafe;
int x = 1000;
int s = 0;
int z = 0;
void sensor() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
mesafe = (sure / 2) / 29.1;
}
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
sensor();
save = mesafe;
delay(x);
Serial.print(“Kayıt 1 :”);
Serial.println(save);
sensor();
save1 = mesafe;
delay(x);
Serial.print(“Kayıt 2 :”);
Serial.println(save1);
sensor();
save2 = mesafe;
delay(x);
Serial.print(“Kayıt 3 :”);
Serial.println(save2);
delay(x);
Serial.print(“Kayıtlar : (”);
Serial.print(save);
Serial.print(",");
Serial.print(save1);
Serial.print(",");
Serial.print(save2);
Serial.println(")");
if (save > save1 && save > save2 ) {
savemain = save;
}
else if (save1 > save && save1 > save2 ) {
savemain = save1;
}
else {
savemain = save2;
}
}
void loop() {
Serial.print(“Main Save”);
Serial.println(savemain);
sensor();
save3 = mesafe;
savelast = savemain - save3;
Serial.print(“Last Save”);
Serial.println(savelast);
Serial.print(“Mesafe”);
Serial.println((savemain - savelast));
if ((savemain - savelast) <= 5) {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enA, 0);
analogWrite(enB, 0);
z = 1;
Serial.print("Mesafe 5 den az ");
Serial.println(z);
}
else if (((savemain - savelast) >= 5) && z == 1) {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enA, 250);
analogWrite(enB, 250);
delay(250);
z = 0;
}
else {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enA, 100);
analogWrite(enB, 100);
}
delay(250);
}