前提・実現したいこと
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のバスが競合しているのではないかと考えているのですがどのようなプログラムを書けばいいかなど、具体的な解決方法が分かりません。よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー