2016-04-06 13 views
1

私はArduinoの宇野とArduinoのコードに超音波センサを接続しているプロジェクトは、センサからの読み取りを行うとイーサネットシールドを通じてリモートサーバーに送信されてい、号Arduinoの

今私が直面している問題は、6つの超音波センサーを使用する必要があるということですが、Arduinoが4つ以上のセンサーから読み取っている場合、Arduinoは正しく機能しませんが、2つの残りのセンサーを1つのピン以前のセンサーのそれはうまく動作するか、たとえ2つのセンサーのデフォルト値を割り当てても正常に動作します。

私が直面している問題は、フォローインgピン: 10,11,12,13 イーサネットシールドがそれらを使用していますが、どのようにこの問題を克服して6つのセンサーをすべて実行できますか?

あなたは以下のコードの一部を見つけることができます。

#include <Ethernet.h> 
#include <SPI.h> 
#define ECHOPIN1A1 3  // Pin to receive echo pulse 
#define TRIGPIN1A1 2  // Pin to send trigger pulse 
#define ECHOPIN1A2 5  // Pin to receive echo pulse 
#define TRIGPIN1A2 4  // Pin to send trigger pulse 
#define ECHOPIN1A3 7  // Pin to receive echo pulse 
#define TRIGPIN1A3 6  // Pin to send trigger pulse 
#define ECHOPIN1B1 9  // Pin to receive echo pulse 
#define TRIGPIN1B1 8  // Pin to send trigger pulse 
#define ECHOPIN1B2 5  // Pin to receive echo pulse 
#define TRIGPIN1B2 4  // Pin to send trigger pulse 
#define ECHOPIN1B3 3  // Pin to receive echo pulse 
#define TRIGPIN1B3 2  // Pin to send trigger pulse 

答えて

1

あなたはのArduino MEGAのようなより多くのGPIOピンでボードを使用することができます。または、トリガー・ピンを一緒に接続して、それらをすべて駆動するために1つのArduinoピンのみを使用することもできます。

編集: あなたがいない何を働き、ものを見るためにTansirの以下のコメントや実験を必ずお読みください。利用可能なピンの数で、ピンあたり3つの超音波センサーをトリガーする必要があります(トリガーには2ピン、エコーを読み取るには6ピン)。

マルチプレクサ/デマルチプレクサを使用して、5つのピン(2つのデータピンと3つのアドレスピン)で最大8個のセンサを駆動できます。しかし、これはハードウェアの複雑さを増すことになります。

+1

複数の超音波センサーを同時に起動するように注意する必要があります。干渉やマルチパスのエコーが原因で、センサごとに複数のリターンが得られます。干渉を最小限に抑えるために、それぞれの間にわずかな遅れを持って順番にトリガをかけ、反対方向に向けてください。 – Tansir1

+0

私が6つの超音波センサーを使用する必要があるので、私が考えているのは入力と出力の限界です。私はトリガーのための共有ピンから3つのセンサーをトリガーし、私が読んでみたい3人のセンサー共有ピンから3つのセンサーをトリガーして、私が読んでみたい特定のセンサーからの読みを得るでしょう、 – HAlmusajjen