• ベストアンサー

arduinoで同じセンサーを2つ使いたい

I2C通信で、同じセンサーを2つ使ってやりたいことがあります。 このような場合、片方のセンサーのアドレスを変えるのでしょうか? また、センサーのアドレスを変えるにはどうしたらよいでしょうか? 素人のため、スケッチを教えてほしいです。 使用するセンサーは下記方位センサーです。 <http://www.parallax.com/product/29133> よろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • koujikuu
  • ベストアンサー率43% (428/992)
回答No.2

I2Cアドレスの変更は出来ないので、I2Cバスを切り換えるしかないです 参考 http://pdfserv.maximintegrated.com/jp/an/A3011J.pdf FXMA2102を2ヶ使用し、OEでセレクト(OE=H側のみ回路が接続される) http://akizukidenshi.com/catalog/g/gM-05825/ 残念ながら実際には使用したことが無いので、これ以上はアドバイスできません。

yngnhplss
質問者

お礼

回答ありがとございます。 代替案、ありがとうございます。安いので買ってみようかと思います。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>I2C通信で、同じセンサーを2つ使ってやりたいことがあります。 >このような場合、片方のセンサーのアドレスを変えるのでしょうか? はい。 アドレスを変えないと対応できません。 >また、センサーのアドレスを変えるにはどうしたらよいでしょうか? センサーのドキュメント(技術資料なり)を参照してください。 >使用するセンサーは下記方位センサーです。 アドレス固定っぽいので同一のI2Cバスには1つしか接続できません。 別のI2Cバスがあれば2つ使えるかも知れませんが。 # 方位センサを2つ使う必要性がいまいち判りませんが……。

yngnhplss
質問者

お礼

回答ありがとうございます。 商品のドキュメント見ましたが、アドレス変更できなそうです。 センサーは、一つを身体につけて、一つを頭につけて、身体に対する首の角度を求めようとしています。

関連するQ&A

  • 方位センサーのコントロールについて

    いつもお世話になっております。今回もまたよろしくお願いします。 秋月電子で販売されている、方位センサーをコントロールしたいと思っています。(下記URL参照)出力の信号は3ビットのバイナリコードで8パターン あります。(N・NE・E・SE・S・SW・W・NW)今回は、出力が1・1・0だった場合、AのLEDを点灯させて、0・1・1だった場合BのLEDを点灯させたいと思っています。どなたかいいアィディアをお願いします。 方位センサー 方位センサー2 http://akizukidenshi.com/images/org/rdcm-802ev_2.jpg http://akizukidenshi.com/catalog/items2.php?c=dir&s=popularity&p=1&r=1&page=#M-00210

  • 加速度センサ

    100Hzで人の歩行動作を加速度データを使って分析したいと思うのですが、下記の加速度センサを使用する場合、少なからずノイズは発生すると思うのですが、何かよいノイズ低減を行うフィルタ処理などあれば教えてください。 また、無視できるものでしたら、それも教えてください。 http://www.atr-p.com/sensor01.html

  • arduinoで7セグメントを使いたい

    arduinoで下記のスケッチを使って7セグメントledを動かしているのですが、 /////////////////////////////////////////////////////////////////////////////////////////////////////// //LED表示関数を定義 void NumPrint(int Number){ for (int w=0; w<=7; w++){ digitalWrite(w+1,Num_Array[Number][w]); } } /////////////////////////////////////////////////////////////////////////////////////////////////////// (1)この部分がどのような動作をしているのかわかりません。 (2)また、arduinoMEGAを使用して22~29番ピンを出力にして動かそうとしても上手くいきません。 (1)についての説明と(2)の解決法を知りたいです。 よろしくお願いしますm(._.)m ↓使っているスケッチ(1~8番ピンが出力のもので上手く動作します) void setup(){ //1~8番ピン デジタル出力へセット for (int i=1; i<=8; i++){ pinMode(i,OUTPUT); } } //LEDレイアウトを定義 //0,1,2,3,4,5,6,7,8,9,0,. の順。 boolean Num_Array[11][8]={ {0,0,0,1,0,0,0,1},{1,1,0,1,0,1,1,1},{0,0,1,1,0,0,1,0},{1,0,0,1,0,0,1,0}, {1,1,0,1,0,1,0,0},{1,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{1,1,0,1,0,0,0,1}, {0,0,0,1,0,0,0,0},{1,0,0,1,0,0,0,0},{1,1,1,0,1,1,1,1} }; //LED表示関数を定義 void NumPrint(int Number){ for (int w=0; w<=7; w++){ digitalWrite(w+1,Num_Array[Number][w]); } } void loop(){ for(int t=0;t<=10;t++){ NumPrint(t); delay(500); } }

  • パララックス社超音波センサの使い方

    パララックス社の超音波センサーhttp://akizukidenshi.com/catalog/g/gM-05400/ の使い方について教えてください。 信号線に5μS(?)のパルスを入れると距離に応じたパルス幅が帰ってくるのでパルス幅(時間)をはかり音速(348m/s)で時間に相当する距離を算出するという方法かと思います。 この場合の出力と入力のタイミングはどのようにしたら良いでしょうか? また入力値には出力してからの入力に切替の時間など補正は必要ないでしょうか? データシートが英文だったので確証が持てませんでしたのでお願いいたします。

  • Arduinoスケッチがリセットしないと動作しない

    Arduino UNO R3とArduino Nano互換機でI2Cで動く液晶を、標準Wireライブラリーでコントロールするスケッチをプログラミングしました。 しかしながら、Arduino IDEでスケッチを描き込んだ直後は動作するのですが、電源を入れ直すと電源ランプが点灯するだけで、プログラムが実行されなくなります。 一方で、この状態でリセットボタンを押すと、意図したとおりにプログラムが動作するので、おそらく一度はリセットしないと、正しく動かないようです。 ArduinoのFAQではブートローダーによるシリアル通信の関係で、RXを10kΩの抵抗を介してGNDにつなげるか、RXとTXをショートさせると良いとあったのですが、この方法では解決しませんでした。 Arduino単体(パソコンにつなげずに電源のみの供給)で、スケッチを正しく起動させるにはどうしたらよいでしょうか。

  • センサーライト

    センサーライトの購入を考えていますが種類が多くて 迷っています。アドバイスをお願いします。 設置場所は倉庫(木造)の入口ドアの上部2m位、室内側です。 点灯条件は外から入ってきて1,2歩進んだくらいで 点灯を考えていますが、下記の商品で対応できるでしょうか? RITEX B-born7000 センサーライト B-7100 http://www.exsightsecurity.com/catalog/product_info.php/cPath/39_78/products_id/991?osCsid=9493e46245dbb7b07a7eb99f88fdf753

  • MPU-9150のI2Cのアドレス?

    8つのMPU-9150を1つのArduino Mega 2560に繋げて同時に用いることを考えています。MPU-9150は: http://www.switch-science.com/catalog/1183/ です。 I2Cのアドレスを分ければ同時に繋げれるとのことらしいですが、センサーであるMPU-9150にそれぞれ異なるアドレスを指定することはできるのでしょうか? もし指定できない場合、I2C Muxの以下のような製品で4つまで繋げることを知りました: http://www.dsscircuits.com/index.php/i2c-multiplexer これは4チャンネルまでなのですが、このように別の方法で8つのMPU-9150を繋げれる方法があればそれでもいいです。 よろしくお願いします。

  • ArduinoのI2Cで書き込み

    Arduino(Lazurite)を用いてINA231というICとI2Cで通信するプログラムを作成しています.マスタがArduino,スレーブがINA231です. INA231のレジスタアドレスの値を読み取ることはできましたが,レジスタの値を書き換えることが出来ません. 書き込み用の関数は以下のsetINA231になります. void setINA231(char SlaveAddress,const unsigned char *WriteData,char s){ Wire.begin(); Wire.beginTransmission(SlaveAddress); Wire.write(WriteData,s); Serial.write_byte(Wire.endTransmission(true)); } 上記関数を使用して,例えばスレーブアドレス0x40のレジスタアドレス0x00の値を0x4227に書き換えるように値を設定して関数を実行したところ,添付図の波形を取得出来,問題なく通信出来ているように感じます. どのようにすればI2Cでスレーブデバイスの値を書き換えることが出来ますでしょうか?何卒ご教授よろしくお願い致します.

  • SHAPP製 GP2D120のPSDセンサについて

    SHAPP製 GP2D120のPSDセンサが出力した値をパソコンに表示するプログラムを教えて欲しいです。 使用するもの H8 3052 USB-RS232C変換ケーブル 通信方法はシリアル通信 ポートは適当に仮定してください 以上の条件で、センサが読み取った値をパソコンに表示するプログラムを教えてください。 お願いいたします。

  • 赤外線センサー37.9kHと38kHの違いについて

    いつもお世話になっております。 現在、Arduinoで赤外線リモコンの解析や通信に挑戦しております。 最初、スターターセットに入っていました赤外線モジュール(恐らくOSRB38C9AA, 37.9kH)を使用し、色んなサイトで紹介されているリモコン解析スケッチ(多くのライブラリはIRremote)で家電リモコンのコードを解析に成功しました。(再生ボタン: FF22DD) 次に組み込みで作ってみようと新たに赤外線センサーSPS-444-1(38kH)、GP1UXC41QS(38kH)を購入し、再生ボタンを試して見たところどのスケッチでも解析できませんでした。OSRB38C9AA(37.9kH)のセンサーだとちゃんとFF22DDが結果で得られました。 当初、蛍光灯やノイズが原因で解析できないのかなと思いCRフィルターを試してみても購入したセンサーでは解析できませんでした。(これはこれでノイズによる誤作動が減り、大変勉強になりました。) 次に、当方オシロスコープを持っておりませんので、信号線(Vout)をパソコンのマイク端子につなぎAudacityで録音して疑似オシロスコープとして波形を見てみたところ、センサー3つとも同じ波形パターン(FF22DD, 11111111001000101101110111011101)が確認できました。 それではなぜOSRB38C9AAだけで解析できて他二つでできないのか困り果てていた所、表題の通りの周波数の37.9kHと38kHというこれまた微妙な違いに気づきました。   OSRB38C9AA(37.9kH)   SPS-444-1(38kH)   GP1UXC41QS(38kH) 37.9kHと38kHではピーク幅26.316us(26.3us)と26.385us (26.4us)と違いがありますがこれが原因の可能性はあるでしょうか? またその場合どのような対処を解決にぬながるでしょうか? アドバイスご教授いただければ幸いです。 よろしくお願い致します。

専門家に質問してみよう