Go Down

Topic: How to use second I2C? (Read 6 times) previous topic - next topic

fuscof

Hi.
How to use Wire1.setup() or other? The compiler does not recognize "Wire1".
Then about the pull-up resistors, I have to add them phisically or can I enable them with software commands?
Thanks a lot
Francesco
PS: I would like tu use arduino due with SDA1 and SCL1 to make a shield working.

johnflux

> I tried using accelerometer on pins 20 & 21 but it seems like there is something wrong with the board

For those wondering, this is a confirmed bug in the arduino Wire library:  https://github.com/arduino/Arduino/pull/1994

Specifically:

Download:

https://raw.githubusercontent.com/bluesign2k/Arduino/d8d6d62853a5308c21b95dad4bdd64e358e857cc/hardware/arduino/sam/libraries/Wire/Wire.cpp

And overwrite in your arduino installation: hardware/arduino/sam/libraries/Wire/Wire.cpp

For me, this just fixed i2c on the Due.

ECUni

Hi John,

I downloaded the code and when it compile it gave me errors:
Code: [Select]
C:\arduino-1.5.2-windows\arduino-1.5.2\hardware\arduino\sam\libraries\Wire\Wire.cpp: In function 'void Wire_Init()':
C:\arduino-1.5.2-windows\arduino-1.5.2\hardware\arduino\sam\libraries\Wire\Wire.cpp:368: error: 'WIRE_ISR_ID' was not declared in this scope
C:\arduino-1.5.2-windows\arduino-1.5.2\hardware\arduino\sam\libraries\Wire\Wire.cpp: In function 'void Wire1_Init()':
C:\arduino-1.5.2-windows\arduino-1.5.2\hardware\arduino\sam\libraries\Wire\Wire.cpp:395: error: 'WIRE1_ISR_ID' was not declared in this scope


Did you come across these errors?

kkazakov

This worked for me, too. I2CScanner works. Thank you!

Heievacheza

Hi everybody,

I'm trying to connect three MPU6050 sensors to Arduino Due to read raw acceleration and angular velocity. I connected two of my sensors to SDA and SCL (pins 20 and 21) and got both of them to work. I mean I can read data from both of them simultaneously using primary I2C pins of Aruino Due and it works well.

However, for the third sensor, I have used secondary I2C (SDA1 and SCL1) pins but it always shows 'MPU6050 connection failed'.
I don't know what to do. For the sketch ('MPU6050_raw' written by Jeff Rowberg) I have replaced all wire....() with wire1....() but it is still not working. I also used pull up resistors, but no success!

On the other, when I use 'address scanner' sketch on SCL1 and SDA1, the Arduino Due recognizes the address of third sensor. It means that they can communicate with each other. But I don't know why I can read data!

I will be grateful if somebody helps me with this. 

Go Up