• 締切済み

MPU-9150のI2Cアドレス

MPU-9150のI2CアドレスをAD0=L/AD0=H、つまりGNDか3.3VCC接続に接続することによって、2つの異なる設定をしようとしています。ArduinoのスケッチでもMPU9150_I2C_ADDRESS = 0x68 か MPU9150_I2C_ADDRESS = 0x69に書き換えているのですが、AD0がGNDに繋げられ、MPU9150_I2C_ADDRESS = 0x68の時は正常に動くのですが、AD0が3.3VCCでMPU9150_I2C_ADDRESS = 0x69の際はMPU9150からデーターを受け取れません(常に全ての数値が0です)。どなたかこれに関する経験がございました、詳細を教えていただければ幸いです。よろしくお願いします。

みんなの回答

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

MPU-9150の経験はありませんが MPU-9150は複合デバイスの為I2Cアドレスが2っあります 加速度・ジャイロセンサ 0x68/0x69 AK8975磁気センサ 0x0C/0x0D https://strawberry-linux.com/pub/mpu-9150-manual.pdf 0x68 時に正常なら、プログラム側のI2Cアドレス設定ミスか、AD0の切り換えミスの可能性が高いと思われます I2Cアドレス切り換えには、AD0のGNDへのパターンカットを行い、VCCへのはんだジャンパが必要 テスタで導通チェック、通電してのAD0電圧チェックを行ってみて下さい。

leime_0420
質問者

補足

返事をありがとうございます。 ブレッドボードで試しているのですが、接続には問題ないようです。はんだジャンパがなく、直接AD0の接続を変えるだけのもの、ジャンパを外せばAD0次第になるもの(Sparkfun製品)などいろいろ試してみましたが全て結果は同じでした。 I2Cスキャンを同時にしても、AD0の接続次第でアドレスは確かに変わっているのですが、VCCに繋がっている時はMPU9150からのセンサーの数値が受け取れません。0x68と0x69を変える他に、AK8975磁気センサのアドレスをプログラム内で変える必要はあるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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でスレーブデバイスの値を書き換えることが出来ますでしょうか?何卒ご教授よろしくお願い致します.

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

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

  • Arduinoから6V駆動のサーボを動かすには?

    Arduinoから6V駆動のサーボモータを動かしてみたいと考えています。信号は5Vで、電源だけ6Vでもいいのでしょうか? 私の予想だと以下のままで一応動きそうですが。 ・6V電源のVCCとGNDをサーボのVCCとGNDに接続 ・ArduinoのPWM可能なPINをサーボの信号線につなげる ・全てのGNDを接続する 信号が5Vでもカタログどおり6V駆動時のトルクがでるんでしょうか? データシートなどを見ても信号が何V以上でないといけないと描いてませんし。 http://eleshop.jp/shop/g/gDBQ412/ たとえば、12V駆動のサーボだとさすがに5Vの信号はまずそうですが。 それとも図のようにして信号も駆動電圧に合せたほうがいいのでしょうか?

  • Arduino INA219 I2C通信できない

    Arduinoのsda, sclにINA219のsda, sclを接続すると出力が止まってしまいます。 確認のためLCDを使ってI2C通信を試してみましたが問題なく動作しました。

  • I2C通信のスレーブアドレスについて

    電子回路初学者です。 I2C通信は、まず自分が (例としてマイコンが) マスターになる宣言をし、バスの所有権を得て、次に通信相手となるスレーブアドレスを指定し、データを送受信するものだと理解しています。そこで質問があります。 このスレーブアドレスとは製品固有のものなのでしょうか。 例えば、X社製のXというセンサーはスレーブアドレスが0x74である、といった具合です。 それとも、マイコンのポートxのyビット目 (SDAまたはSCL) にぶら下がっているスレーブにスレーブアドレス0x74を持たせる、といった具合に任意に決定できるのでしょうか。 実際に使用する場合の解説が見当たらず悩んでおりました。 よろしくお願い致します。

  • AE-ATMEGA328 MINI外部電源について

    秋月で購入したAE-ATMEGA328 MINI(Arduino pro mini互換)です LED(抵抗入り)が交互に点滅するスケッチを書き込み無事点滅しました。 USBシリアル変換モジュールを抜いてVINに9Vを挿してみましたが点滅しません VINから電源が供給されてない様に思います。 何か使い方間違えているのでしょうか? Arduino pro miniはVCCではなく "RAW"ピンに接続してくださいという記事は見ましたが "RAW"ピンと云うのは見当たらないです。 どなたかよろしくお願いします。

  • 82c930,82c931と表示されるサウンドドライバの設定のしかたを教えてください。

    サウンドのドライバ(82c930,82c931と表示)を入れたいのですが設定の仕方がわかりません。 I/O AddressやIRQやDMA Play/Rec ChannetやMPU-401 configrationなどの表示が出るのですが、 どのように設定すれば使えるようになるのでしょうか?どなたか詳しく教えていただけませんか。 もしくは詳しく説明されたさいとを教えていただけませんか?

  • PIC24FでI2C

    PIC24FでRTCを制御するためのI2C通信がうまくいかず困っています。 そこでSDA/SCLから信号が出ているかのみを確認するため 下記のようなプログラムをPICに書込みました。 (STARTの出力のみ) 当方オシロを持っていませんので汎用のテスタでSDA/SCL電圧の一時的な変化を読み取ろうと試みましたが全く電圧の変化はありません。 #include "p24FJ64GA002.h" _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & ICS_PGx1& FWDTEN_OFF ) _CONFIG2( IESO_ON & FNOSC_FRC & FCKSM_CSDCMD & OSCIOFNC_OFF & IOL1WAY_ON & I2C1SEL_SEC & POSCMOD_NONE) int main(void) { AD1PCFG = 0xffff; CLKDIV = 0; TRISA = 0xFFE3; TRISB = 0x006F; LATB = 0x0010; CNPU1 = 0x003C; /// I2Cの初期設定 I2C1BRG = 0x27; I2C1CON = 0x8000; I2C1RCV = 0x00; I2C1TRN = 0x00; while(1){ I2C1CONbits.SEN = 1; while(I2C1CONbits.SEN); } } 心ある方、どなたかご教示お願いいたします。

  • 82c930,82c931と表示されるサウンドドライバの設定のしかたを教えてください。

    サウンドのドライバ(82c930,82c931と表示)を入れたいのですが設定の仕方がわかりません。 I/O AddressやIRQやDMA Play/Rec ChannetやMPU-401 configrationなどの表示が出るのですが、 どのように設定すれば使えるようになるのでしょうか?どなたか詳しく教えていただけませんか。 もしくは詳しく説明されたさいとを教えていただけませんか? OS:XP