私のArduino Unoでは、HC-SR04超音波センサーを使用して、以下の配線を使用して問題なく距離を測定しています。イーサネット シールドを取り付けると、超音波センサーが距離を測定しなくなり、常に 0cm と表示されます。5-7、6-8、5-9、3-5、2-8 などのさまざまなデジタル ピン ペアを試しましたが、うまくいきません。
HC-SR04 は私のイーサネット シールドと互換性がないのではないかと思いますが、そのような警告はネット上で見たことがありません。
- イーサネットシールドと超音波センサー自体以外にarduinoに接続されているコンポーネントはありません。
- SD カードスロットに SD カードがありません。
- Web サーバーまたは Web クライアント スクリプトの実行中に、イーサネット シールドが正常に動作します。
- イーサネット シールドのデジタル ピンは、温度センサー、モーション センサーなどの他のすべてのコンポーネントと正常に動作します。
これが私が持っているイーサネット シールドです。 http://www.ezshopfun.com/product_info.php?products_id=169
これが私の実際の回路です。
- http://s7.postimg.org/vyi2z36qz/20140826_001130.jpg
- http://s7.postimg.org/6eb7ewvzf/20140826_001150.jpg
- http://s7.postimg.org/6psnrocff/20140826_001156.jpg
- http://s7.postimg.org/y6ro2ooh7/20140826_001229.jpg
- http://s7.postimg.org/71a44fsvf/20140826_001247.jpg
これが私のコードです。
#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);
}