hi guys. My installed code work fine. With this code my robot turn right when sensor one (in code distance1) <= 25.
But I want my robot turn right while sensor two (in code distance2) value <= 100 . And when sensor two (in code distance2) alredy >= 100 my robot go forward and at that time sensor one (in code distance1) turn off. Thank you
// motor 1 and 2
const int in1 = 30;
const int in2 = 28;
const int in3 = 26;
const int in4 = 24;
// motor speed
#define ena 32
#define enb 22
// distance sensor
int trigPin1=11;
int echoPin1=12;
int trigPin2=8;
int echoPin2=9;
void setup() {
Serial.begin (9600);
// dsistance sensor
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
//motor l298p
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(ena, OUTPUT);
pinMode(enb, OUTPUT);
}
void loop() {
long duration1, distance1;
digitalWrite(trigPin1, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1 = (duration1/2) / 29.1;
long duration2, distance2;
digitalWrite(trigPin2, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distance2= (duration2/2) / 29.1;
if (distance1 >= 500 || distance1 <= 0){
Serial.print("Out of range");
}
else {
Serial.print("Sensor1 ");
Serial.print(distance1);
Serial.print("cm");
}
if (distance2 >= 500 || distance2 <= 1){
Serial.print("Out of range");
}
else {
Serial.print("Sensor2 ");
Serial.print(distance2);
Serial.println("cm");
}
delay(20);
if (distance1 <=25 & distance1 >= 5) {
Right();
Serial.print("Right");
}
}
void Forward()
// go forward
{
analogWrite(ena, 255);
analogWrite(enb, 255);
digitalWrite(in2, LOW);
digitalWrite(in1, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4,HIGH);
}
void Right()
// turn right
{
analogWrite(ena, 255);
analogWrite(enb, 255);
digitalWrite(in2, LOW);
digitalWrite(in1, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4,LOW);
}
void Left()
// turn left
{
analogWrite(ena, 255);
analogWrite(enb, 255);
digitalWrite(in2, HIGH);
digitalWrite(in1, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4,HIGH);
}