Hi!
Im making a robot that is controlled by 4 HC-SRO4 modules. The problem is that my code is not running how it should, because he only detects close objects and starts going back with the uS1 declared sensor and if all are above 70 cm, he justs goes front to the right.
int uS1 = SonarFrontLeft.ping();
int uS2 = SonarFrontRight.ping();
int uS3 = SonarLeft.ping();
int uS4 = SonarRight.ping();
if (uS1 / US_ROUNDTRIP_CM < 35 || uS2 / US_ROUNDTRIP_CM < 35 || uS3 / US_ROUNDTRIP_CM < 35 || uS4 / US_ROUNDTRIP_CM < 35){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
if (uS1 / US_ROUNDTRIP_CM > 70 && uS2 / US_ROUNDTRIP_CM > 70 && uS3 / US_ROUNDTRIP_CM > 70 && uS4 / US_ROUNDTRIP_CM > 70){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
}
if ((uS1 / US_ROUNDTRIP_CM <70 && uS1 / US_ROUNDTRIP_CM > 35) || (uS3 / US_ROUNDTRIP_CM >70 && uS3 / US_ROUNDTRIP_CM >35)){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
}
if ((uS2 / US_ROUNDTRIP_CM <70 && uS2 / US_ROUNDTRIP_CM >35) || (uS4 / US_ROUNDTRIP_CM >70 && uS4 / US_ROUNDTRIP_CM >35)){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
if ((uS1 / US_ROUNDTRIP_CM <70 && uS1 / US_ROUNDTRIP_CM >35) && (uS2 / US_ROUNDTRIP_CM <70 && uS2 / US_ROUNDTRIP_CM >35) && (uS3 / US_ROUNDTRIP_CM >70 && uS3 / US_ROUNDTRIP_CM >35) && (uS4 / US_ROUNDTRIP_CM >70 && uS4 / US_ROUNDTRIP_CM >35)){
if ((uS2 / US_ROUNDTRIP_CM > uS1 / US_ROUNDTRIP_CM) || (uS4 / US_ROUNDTRIP_CM > uS3 / US_ROUNDTRIP_CM )){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
if ((uS2 / US_ROUNDTRIP_CM < uS1 / US_ROUNDTRIP_CM) || (uS4 / US_ROUNDTRIP_CM < uS3 / US_ROUNDTRIP_CM )){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
}
if ((uS2 / US_ROUNDTRIP_CM == uS1 / US_ROUNDTRIP_CM) && (uS4 / US_ROUNDTRIP_CM == uS3 / US_ROUNDTRIP_CM )){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
}