Sarpdoruk Tahmaz
Sarpdoruk Tahmaz

Reputation: 1448

Arduino UNO + Ethernet Shield + Ultrasonic Sensor = Fail

With my Arduino Uno I measure the distance using HC-SR04 ultrasonic sensor with no problems at all using the wiring below. When I attach ethernet shield, my ultrasonic sensor does not measure distance any more, it constantly says 0cm no matter what. I have tried different digital pin pairs such as 5-7, 6-8, 5-9, 3-5, 2-8 but no luck.

I suspect that HC-SR04 is not compatible with my Ethernet shield but I haven't seen such warning anywhere on the net.

Here is the ethernet shield I have; http://www.ezshopfun.com/product_info.php?products_id=169

Here is my actual circuit;

Here is my code;

#define trigPin 6
#define echoPin 7

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  int duration, distance;
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH) / 2;
  distance = duration / 29.1;
  Serial.print(distance);
  Serial.println(" cm");
  delay(500);
}

Circuit

Upvotes: 1

Views: 4047

Answers (4)

Caedmon
Caedmon

Reputation: 687

I had a similar problem with a wifi shield + ultrasonic sensor. I found switching from pins 13(trig) and 11(echo) to 8(trig) and 3(echo) fixed it.

See here: http://forum.arduino.cc/index.php?topic=201827.0

Upvotes: 0

user1718509
user1718509

Reputation:

As others have said, it looks like the main issue is that you need this connected to 5V and check your wiring generally.

However, there is another potential issue:

digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);

You only need to set the trigger pin high for 10 microseconds, not 1000 microseconds. I don't know if this is an issue or not but there is no need to wait this long. You could potentially be missing some or all of the incoming pulse by waiting that long.

You might want to checkout out some HC-SR04 tutorials too, like this one:

http://superawesomerobots.com/tutorials/hc-sr04-tutorial-for-arduino/

Hope that helps.

Upvotes: 0

Sarpdoruk Tahmaz
Sarpdoruk Tahmaz

Reputation: 1448

Today I bought a multimeter and tested my circuit. Here are the results;

When my circuit directly attached to Arduino itself;

4.80V & 5.7mA

When my circuit attached to ethernet shield;

3.06V & 3.8mA

I think the problem is that 3.06V is not enough for my HC-SR04 to operate.

Upvotes: 1

DotNetRussell
DotNetRussell

Reputation: 9857

Yeah based on this photo

enter image description here

you're not grounding your sensor. You have two power supplies going into it. This, needless to say, is bad for a number of reasons. First and foremost because it wont work ungrounded lol

Upvotes: 0

Related Questions