Using 2 ultrasonic sensors

i want to make a robot that follows things and people i have 2 ultrasonic sensors and i have a code for 1 ultrasonic sensor here is the code

long ultrason_11() {
   long duration, distance;
   digitalWrite(11,LOW);
   delayMicroseconds(2);
   digitalWrite(11, HIGH);
   delayMicroseconds(10);
   digitalWrite(11, LOW);
   duration = pulseIn(12, HIGH);
   distance = duration/58;
   return distance;
}


void setup() {
  pinMode(11, OUTPUT);
  pinMode(12, INPUT);

}

void loop() {
    Serial.println(ultrason_11());
    if () {
      pinMode(2, OUTPUT);
       digitalWrite(2, 0);
      pinMode(3, OUTPUT);
       digitalWrite(3, 1);
      pinMode(4, OUTPUT);
       digitalWrite(4, 0);
      pinMode(5, OUTPUT);
       digitalWrite(5, 1);
    } else {
      pinMode(2, OUTPUT);
       digitalWrite(2, 0);
      pinMode(3, OUTPUT);
       digitalWrite(3, 1);
      pinMode(4, OUTPUT);
       digitalWrite(4, 0);
      pinMode(5, OUTPUT);
       digitalWrite(5, 0);
    }

}

Welcome to the forum

I am not sure what you are asking for but your code is a little strange. In it you have

    if () {

What is that intended to do ?

Why do you have multiple ( or any ) pinMode() calls in loop() ?

2 Likes

Hello ukhelibob thank for the reply i forgot to use the new code i am trying to make a robot that follows anything in front or behind it here is the new code

long ultrason_10() {
   long duration, distance;
   digitalWrite(10,LOW);
   delayMicroseconds(2);
   digitalWrite(10, HIGH);
   delayMicroseconds(10);
   digitalWrite(10, LOW);
   duration = pulseIn(11, HIGH);
   distance = duration/58;
   return distance;
}


void setup() {
  Serial.begin(9600);
  pinMode(10, OUTPUT);
  pinMode(11, INPUT);

}

void loop() {
    Serial.println(ultrason_10());
    if (Serial.read() < 25) {
      pinMode(2, OUTPUT);
       digitalWrite(2, 0);
      pinMode(3, OUTPUT);
       digitalWrite(3, 1);
      pinMode(4, OUTPUT);
       digitalWrite(4, 0);
      pinMode(5, OUTPUT);
       digitalWrite(5, 1);
    } else {
      pinMode(2, OUTPUT);
       digitalWrite(2, 0);
      pinMode(3, OUTPUT);
       digitalWrite(3, 1);
      pinMode(5, OUTPUT);
       digitalWrite(5, 0);
      pinMode(4, OUTPUT);
       digitalWrite(4, 0);
    }

}
    if (Serial.read() < 25)

Where is the serial input coming from ?

Your new code and old code are similar, with only pin changes, and the same result (zero).

I corrected your sketch and added comments. I think you should practice with just the HC-SR04 and learn how to interpret its output.

long ultrason_10() {
  long duration, distance;
  digitalWrite(10, LOW); // trigger pin
  delayMicroseconds(2); // let signal settle
  digitalWrite(10, HIGH); // start pulse
  delayMicroseconds(10); // hold HIGH for 10us
  digitalWrite(10, LOW); // end pulse
  duration = pulseIn(11, HIGH); // read ECHO pin for pulse
  distance = duration / 58; // calculate centimeters
  return distance; // send results to calling function
}

void setup() {
  Serial.begin(9600);
  pinMode(10, OUTPUT); // TRIG ...  Declare pinMode() only one time per pin
  pinMode(11, INPUT); // ECHO
  pinMode(2, OUTPUT); // IN1 - right motor, forward.
  pinMode(3, OUTPUT); // IN2 - right motor, reverse.
  pinMode(4, OUTPUT); // IN3 - left motor, forward.
  pinMode(5, OUTPUT); // IN4 - left motor, reverse.
}

void loop() {
  // Serial.println(ultrason_10()); // not how to read the distance result
  // if (Serial.read() < 25) { // not how to read the distance result

  if (ultrason_10() < 25) { // closer than 25cm, reverse motors
    digitalWrite(2, 0); // right motor reverse
    digitalWrite(3, 1);
    digitalWrite(4, 0); // left motor reverse
    digitalWrite(5, 1);
  } else { // otherwise, forward motors
    digitalWrite(2, 1); // right motor forward
    digitalWrite(3, 0);
    digitalWrite(4, 1); // left motor forward
    digitalWrite(5, 0);
  }
}

This shows your motors going forward and reverse.

motor

diagram.json for WOKWI.COM
{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    {
      "type": "wokwi-arduino-nano",
      "id": "nano",
      "top": -4.8,
      "left": -0.5,
      "rotate": 270,
      "attrs": {}
    },
    {
      "type": "wokwi-hc-sr04",
      "id": "ultrasonic1",
      "top": -180.9,
      "left": 120.7,
      "attrs": { "distance": "214" }
    },
    { "type": "wokwi-led", "id": "led1", "top": -61.2, "left": -5.8, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led2", "top": -61.2, "left": -25, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led3", "top": 8.77, "left": -7.53, "attrs": { "color": "red" } },
    {
      "type": "wokwi-led",
      "id": "led4",
      "top": 8.77,
      "left": -26.73,
      "attrs": { "color": "red" }
    }
  ],
  "connections": [
    [ "ultrasonic1:VCC", "nano:5V", "red", [ "v0" ] ],
    [ "ultrasonic1:TRIG", "nano:10", "green", [ "v0" ] ],
    [ "ultrasonic1:ECHO", "nano:11", "green", [ "v0" ] ],
    [ "led1:A", "nano:2", "green", [ "v0" ] ],
    [ "led2:A", "nano:3", "green", [ "v0" ] ],
    [ "led3:A", "nano:4", "green", [ "v6.83", "h11.33", "v-28.8" ] ],
    [ "led4:A", "nano:5", "green", [ "v16.43", "h40.13", "v-38.4" ] ],
    [ "nano:GND.2", "led1:C", "black", [ "h0" ] ],
    [ "led1:C", "led2:C", "black", [ "v9.6", "h-18.8" ] ],
    [ "led2:C", "led4:C", "black", [ "v0", "h-9.2", "v67.2" ] ],
    [ "led4:C", "led3:C", "black", [ "v6.83", "h11.73" ] ]
  ],
  "dependencies": {}
}

Thank u so much

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