質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

解決済

6軸センサとGPSモジュールを統合するとI2C通信ができなくなる(Arduino nano)

退会済みユーザー

退会済みユーザー

総合スコア0

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

3回答

0評価

0クリップ

2022閲覧

投稿2019/11/12 07:30

編集2019/11/15 09:12

前提・実現したいこと

arduino nanoを用いて6軸センサ(MPU6050)とGPSモジュールの統合制御をI2C通信で行いたいです。

発生している問題

6軸センサとGPSを配線すると6軸センサもGPSモジュールも動作しなくなります。

該当のソースコード

とりあえず6軸センサとGPSモジュールを配線した状態で6軸センサが動作するようにしたいため、
6軸センサ単体のプログラムになっています。

#include<Wire.h> #include<math.h> #define MPU_addr 0x68 int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; void setup(){ Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(); Serial.begin(9600); } void loop(){ Wire.beginTransmission(MPU_addr); Wire.write(0x3B); Wire.endTransmission(); Wire.requestFrom(MPU_addr,14); AcX=Wire.read()<<8|Wire.read(); AcY=Wire.read()<<8|Wire.read(); AcZ=Wire.read()<<8|Wire.read(); Tmp=Wire.read()<<8|Wire.read(); GyX=Wire.read()<<8|Wire.read(); GyY=Wire.read()<<8|Wire.read(); GyZ=Wire.read()<<8|Wire.read(); Serial.print("AcX=");Serial.println(AcX); Serial.print("AcY=");Serial.println(AcY); Serial.print("AcZ=");Serial.println(AcZ); Serial.print(" | Tmp = "); Serial.println(Tmp/340.00+36.53); Serial.print("GyX=");Serial.println(GyX); Serial.print("GyY=");Serial.println(GyY); Serial.print("GyZ=");Serial.println(GyZ); delay(100); }
arduino言語

試したこと

・2つのセンサ共に給電電圧が3.3V以上になっていることを確認しました。
・6軸センサ単体での制御は正常であることを確認しました。
・GPSモジュール単体での制御は正常であることを確認しました。
・6軸センサとGPSを同時に制御した時、6軸センサの信号が出力されなくなります。オシロスコープ
で確認したところ、3.3Vのフラットラインを確認しました。
・例えば方位センサや高度計などと統合制御した場合は6軸センサ、GPSはそれぞれ正常に動作することを確認しました。6軸センサとGPSの組み合わせだけが上手く統合制御できていない状況です。

補足情報(FW/ツールのバージョンなど)

センサモジュールは以下を使用しています。
6軸センサ:https://www.switch-science.com/catalog/1208/
GPSモジュール:https://www.switch-science.com/catalog/3540/

私はI2Cのバスが競合しているのではないかと考えているのですがどのようなプログラムを書けばいいかなど、具体的な解決方法が分かりません。よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

y_waiwai

2019/11/12 07:47

で、GPSモジュール単体では動作させることはできるんでしょうか
退会済みユーザー

退会済みユーザー

2019/11/12 07:51

GPS単体では動作させることができます。
y_waiwai

2019/11/12 07:56

なら問題はないはずですが、、 I2Cの2本の線にプルアップ抵抗(4.7Kぐらい?)つけてやってみてはどうでしょう
退会済みユーザー

退会済みユーザー

2019/11/12 08:36

訂正がありましたので確認お願いします。申し訳ありません。
y_waiwai

2019/11/12 09:19

両方つないでおいて、片方だけ動かすコードだと動きますか?
退会済みユーザー

退会済みユーザー

2019/11/12 11:11

上のソースコードのように6軸だけを動かすプログラムでも動きません。 GPSも同様です。
coco_bauer

2019/11/14 07:51

GPSモジュールを外して、6軸加速度センサだけをI2Cに接続したら、どうなりますか?
退会済みユーザー

退会済みユーザー

2019/11/14 07:59

6軸加速度センサのみをi2cに接続 している場合は動作します。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。