title: Driving two Ultrasonic sensor with Arduino
body: <p>everyone.
  I've got a problem while I try to use Arduino uno to drive two HC-SR04 ultrasonic sensor.
  While a try to display two measured value from each sensor, one of them work fine but the other displays value 0.</p>
  
  <h2>My code is shown below:</h2>
  
  <pre><code>int trigPin=12; // this pin work as the output of the two trig pin of the two sensor
  int echoPin1=8;
  int echoPin2=13;
  
   void setup()
   {
     Serial.begin (9600);
     pinMode(trigPin, OUTPUT);
     pinMode(echoPin1, INPUT);
     pinMode(echoPin2, INPUT);
   }
   void loop()
  {
     float duration1, distance1, duration2, distance2;
  
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW); //trig:10 microsecond TTL pulse
  
    duration1 = pulseIn(echoPin1, HIGH);
    duration2 = pulseIn(echoPin2, HIGH);
  
    distance1 = duration1/2/29.1;
    distance2 = duration2/2/29.1;
    Serial.print(distance1);
    Serial.print(',');
    Serial.println(distance2);
    delay(20);
  </code></pre>
  
  <h2>       }</h2>
  
  <p>The situation is that on the Serial Monitor, "distance1" shows correct value however "distance2" is always 0.</p>
  
  <p>I've found that while "duration1" and "duration2" exchange their order(which means duration2 runs first, then duration1 runs.), the result becomes that distance1 shows 0 but distance2 shows correct value.</p>
  
  <p>It seems there are some problems while I using the function "pulseIn", is that right?</p>
  
  <p>Could anyone help me fix this problem, thanks!</p>