3

I want to wire multiple MPU6050 (at least 16 of them) to an arduino UNO for development (then nano for production). So I first started wiring one MPU6050 to an arduino like shown on the diyhacking website or in the picture below: MPU6050 wired to Arduino Uno as you can see in the picture above the INT pin is used. I then wearched for a way to wire multiple MPU6050 to an arduino using a multiplexer and I found a way on horizonlab's website or see the picture below: enter image description here As you can see in the second picture the INT isn't used at all. I'd like to know how important it is and what I'm missing out by not using it.

  • You are connecting a 3.3V sensor to a 5V Arduino board. That means the I2C signals are not fully compatible. With many modules and each module having a pullup resistors from SCL to 3.3V, that might be too much. What is the value of the pullup resistors on the MPU-6050 module ? What sample rate do you want to achieve ? Can the Arduino Uno handle all that data ? – Jot Sep 20 '17 at 18:37
  • @Jot the two resistors next to the SCL say "222". I'm not sure how to calculate the sample rate I want to achieve but I would like to read each module at least 60 times per second (at most 120 times per second). Can the arduino handle that much data? I hope so. Otherwise I'm gonna have to add an SRAM to the circuit or use a second arduino and a third and so on and divide the MPUs between them until they all can handle the data. – Paiku Han Sep 20 '17 at 19:41
  • The 222 means 2k2. That is a low value. The maximum current is specified as 3mA. Since those 2k2 are tied to 3.3V, the current is 3.3/2k2 = 1.5mA per module. When you want more than two modules, you have to desolder the pullup resistors. You also need a I2C level converter. The Arduino Uno can not do that many modules at that high datarate. Sorry. It doesn't even come close. Beside that, the total length of all pieces of wire of SCL and SDA can be 50 cm. That is the rule of thumb, only 50 cm. – Jot Sep 20 '17 at 22:10
  • @Jot 50 cm that's short. Is there no way to extend the length of the cable. (I can still work with that by using more arduinos. I just feel like it's a shame it can't be longer) – Paiku Han Sep 21 '17 at 11:00
  • That's the rule of thumb. Some say they can get up to 3 meters, but that has a lot requirements for: the kind of wires or cable, the pullup resistors, the voltage levels, the i2c clock speed, and so on. Could you add to your first question what kind of project it is ? How many sensors ? How far apart ? Cost restrictions ? If you want to use many Arduino boards, how will you connect them to a computer ? – Jot Sep 21 '17 at 15:49
2

The INT is the interrupt signal, usually open-drain output and you can connect many of them to the single MCU interrupt line (but you have to check all devices which ones are ready). The LOW level from MPU device signalize that data are ready (conversion was finished). So you don't have to periodically read status register to find it out (no polling is necessary).

In short, using INT is optional.

  • At first level they are optional, and at least half the code out there if not more never uses them. If you do connect them together, then you have to poll all of them to see which is ready. – Chris Stratton Sep 20 '17 at 18:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.