Code Monkey home page Code Monkey logo

Comments (6)

74ls04 avatar 74ls04 commented on May 27, 2024

The answer to this issue on this other library should apply to your case kriswiner/MPU9250#37

from invensense-imu.

imankareem avatar imankareem commented on May 27, 2024

@74ls04 Thank you for the reply. I am not sure where in the post lies my answer, Sorry that I am a bit slow. How do I tweak my I2C scanner to get both addresses? I am currently using this scanner to check for the devices..

I've added Wire1.begin(5,4) and Wire1.beginTransmission(address);. I am trying to use the second I2c on a different set of pins to see if I get better results.. still no luck, only able to find one imu attached to 21,21 pins

#include <Wire.h>
void setup()
{
  Wire.begin(21,22);
  Wire1.begin(5,4);
 
  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    Wire1.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknown error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(500);           // wait 5 seconds for next scan
}

from invensense-imu.

74ls04 avatar 74ls04 commented on May 27, 2024

Have you addressed the IMUs by connecting the AD0 pin of one to ground and the AD0 pin of the other one to VCC with a resistor? If you've done that then they will each have unique addresses and you shouldn't have any issues. Here is the relevant section from the documentation
image

You should also add pull-up resistors to VCC on the SDA/SCL lines.

from invensense-imu.

imankareem avatar imankareem commented on May 27, 2024

@74ls04 Thanks again for the reply, I did not use a resistor, but I have connected one of the AD0 pins to VCC to get 69 as the address. While the other, stayed unmodified with the default address of 68. The addresses can be checked using the I2C scanner separately. I did not use a resistor.

I am having the same issues with an arduino pro mini (just to see if it's an issue with the Esp32). I had both the imus working for about 10 seconds. Both being connected to the SDA and SCL pins of the pro mini. Screenshot of the imus being found is below.

screenshot 73

from invensense-imu.

74ls04 avatar 74ls04 commented on May 27, 2024

Try adding pull-up resistors on the I2C lines -- in general they will improve stability of the bus.

from invensense-imu.

imankareem avatar imankareem commented on May 27, 2024

Partially resolved the issue just by using 2 Pro minis to monitor the 2 Imus.. Data from pro minis was sent to Esp using serial. Thank you everyone for your support!

from invensense-imu.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.