Hi,
I am trying to use MPU6050 together with BMP180. I already connected both SCL and SDA to the A4 and A5 pin of my arduino. But I still cant get it to work together. I read somewhere that I need to remove a paralel resistor but some people told me in my case I should not do that.
So below I attach you my pictures of the modules I am using.
Should I really remove a resistor? From which module? Should I really do that? My code is working really fine cause when I use both modules separated it works fine. Ayway I paste you the code below:
//Código do MPU6050.
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#include "Wire.h"
MPU6050 mpu;
uint8_t mpuIntStatus;
uint16_t packetSize;
uint16_t fifoCount;
uint8_t fifoBuffer[64];
Quaternion q;
VectorFloat gravity;
float ypr[3];
volatile bool mpuInterrupt = false;
void dmpDataReady() {mpuInterrupt = true;}
#include "Adafruit_BMP085.h"
Adafruit_BMP085 bmp180;
void setup() {
//Código do MPU6050.
Wire.begin();
TWBR = 24;
mpu.initialize();
mpu.dmpInitialize();
mpu.setXAccelOffset(-1343);
mpu.setYAccelOffset(-1155);
mpu.setZAccelOffset(1033);
mpu.setXGyroOffset(19);
mpu.setYGyroOffset(-27);
mpu.setZGyroOffset(16);
mpu.setDMPEnabled(true);
attachInterrupt(0, dmpDataReady, RISING);
mpuIntStatus = mpu.getIntStatus();
packetSize = mpu.dmpGetFIFOPacketSize();
//Por algum motivo se utilizar "9600" aparece erro "FIFO overflow!".
//COMENTAR_OFICIAL
Serial.begin(115200);
if (!bmp180.begin()) {
Serial.println("Sensor não encontrado.");
while (true) {}
}
}
void loop() {
while (!mpuInterrupt && fifoCount < packetSize) {
Serial.println("a");
Serial.println(bmp180.readPressure());
}
//Código do MPU6050.
mpuInterrupt = false;
mpuIntStatus = mpu.getIntStatus();
fifoCount = mpu.getFIFOCount();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {
mpu.resetFIFO();
//COMENTAR_OFICIAL
Serial.println(F("FIFO overflow!"));
}
else if (mpuIntStatus & 0x02) {
while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();
mpu.getFIFOBytes(fifoBuffer, packetSize);
fifoCount -= packetSize;
mpu.dmpGetQuaternion(&q, fifoBuffer);
mpu.dmpGetGravity(&gravity, &q);
mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
//COMENTAR_OFICIAL
Serial.print("ypr\t");
Serial.print(ypr[0]*180/PI);
Serial.print("\t");
Serial.print(ypr[1]*180/PI);
Serial.print("\t");
Serial.print(ypr[2]*180/PI);
Serial.println();
}
}
As I can see my MPU6050 has a resistor of "472" and BMP of "103". Should it be fine?