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.