arduinoarduino-unoarduino-ultra-sonic

Arduino - Ultrasonic sensor (SR04T) measure only 0


I have a ultrasonic sensor (SR04T) that I have connected to my Arduino. I'm using the TX and RX port at the Arduino UNO. The problem is that it only reads value 0 cm. Could anyone help me find the error?

The code I'm using looks like this:

const int trigPin = 1;
const int echoPin = 0;

void setup() {

  Serial.begin(9600);
}

void loop()
{

  long duration, inches, cm;


  pinMode(trigPin, OUTPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);


  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);

  // convert time into cm
  cm = microsecondsToCentimeters(duration);


  Serial.print(cm);
  Serial.print("cm");
  Serial.println();

  delay(100);
}



long microsecondsToCentimeters(long microseconds)
{

  return microseconds / 29 / 2;
}

Solution

  • You are doing two things incorrectly here.

    1. You are setting pinMode in the Loop. No need for that. Put them in the Setup. You don't need to set pinmode continuously.

    2. You are using pin 0 and 1 for your input and output while using Serial. Serial uses pin 0 and 1 for serial communication. Use other pins for your input and output. Have a look at http://marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.png