Help needed with RoboHoover Script

I have built a robot hoover and I am using bits of script from a couple of different projects:

I have the following

Arduino Uno
L298N Motor Driver
3 x Ultra Sonic Sensors

I can see the sensors working in the serial monitor and below is my code so far.

int trigPinl = 8;
int echoPinl = 9;
int trigPinc = 10;
int echoPinc = 11;
int trigPinr = 12;
int echoPinr = 13;

int revright = 4;      //REVerse motion of Right motor
int fwdleft = 7;      
int revleft= 6;       
int fwdright= 5;       //ForWarD motion of Right motor
int c = 0;

void setup() {
   Serial.begin(9600); 
   pinMode(5, OUTPUT);
   pinMode(6, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(7, OUTPUT);
   pinMode(trigPinl, OUTPUT);
   pinMode(echoPinl, INPUT);
   pinMode(trigPinc, OUTPUT);
   pinMode(echoPinc, INPUT);
   pinMode(trigPinr, OUTPUT);
   pinMode(echoPinr, INPUT);
  

}

void loop() {
  long durationl, distancel;  //Left Sensor
  digitalWrite(trigPinl,HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPinl, LOW);
  durationl=pulseIn(echoPinl, HIGH);
  distancel =(durationl/2)/29.1;
  Serial.print(distancel);
  Serial.println("Left CM");
  delay(10);

    long durationc, distancec;  //Centre Sensor
  digitalWrite(trigPinc,HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPinc, LOW);
  durationc=pulseIn(echoPinc, HIGH);
  distancec =(durationc/2)/29.1;
  Serial.print(distancec);
  Serial.println("Centre CM");
  delay(10);

    long durationr, distancer;  //Right Sensor
  digitalWrite(trigPinr,HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPinr, LOW);
  durationr=pulseIn(echoPinr, HIGH);
  distancer =(durationr/2)/29.1;
  Serial.print(distancer);
  Serial.println("Right CM");
  delay(10);
 
  
  if((distancec>20))
 {
  digitalWrite(5,HIGH);                               
   digitalWrite(4,LOW);                               
   digitalWrite(6,LOW);                             
   digitalWrite(7,HIGH);                             
 }
 
  else if(distancec<10)  
 {
   digitalWrite(5,HIGH);
   digitalWrite(4,LOW);
   digitalWrite(6,HIGH);                                  
   digitalWrite(7,LOW);
                                            
 }

   else if(distancer<10)  
 {
   digitalWrite(5,HIGH);
   digitalWrite(4,LOW);
   digitalWrite(6,HIGH);                                  
   digitalWrite(7,LOW);
                                            
 }

    else if(distancer<10)  
 {
   digitalWrite(5,HIGH);
   digitalWrite(4,LOW);
   digitalWrite(6,HIGH);                                  
   digitalWrite(7,LOW);
                                            
 }
}

When the robot is switched on, it starts going forward as expected and when the centre sensor detects the distance, it reverses and turns as expected. The left and right sensors do nothing??

Any help would be appreciated.

What do you see in the serial monitor?

I see measurements from all three sensors as you can see in the picture i have enclosed

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.