Robofun 機器人論壇
標題:
Arduino due SDA1 SCL1
[打印本頁]
作者:
mazda770
時間:
2016-5-26 14:25
標題:
Arduino due SDA1 SCL1
我現在要用Aduino due讀兩個IMU的訊號
目前有再SDA1 SCL1接兩個10K 歐姆的 拉提電阻
程式的部分如下
MPU6050 accelgyro1(0x68);
MPU6050 accelgyro2(0x69);
Wire.setClock(1000000) ;
Wire.begin();
Wire1.setClock(1000000) ;
Wire1.begin();
Serial.begin(115200);
讀不到第二個IMU只讀得到第一個,求大神教學如何使用第二個I2C
作者:
超新手
時間:
2016-5-26 19:39
本帖最後由 超新手 於 2016-5-26 19:58 編輯
兩個 mpu 的 ad0 有接對嗎?
要接不一樣
一個 VCC, 一個 GND
作者:
mazda770
時間:
2016-5-27 18:25
我都沒接AD0欸,請問一下為什麼要接此角為呢 我都接4個而已 VCC GND SDA SCL
作者:
超新手
時間:
2016-5-27 19:53
其實你的程式有點奇怪又不太全
所以我只能用猜的
你應該是把兩個mpu都接到同一個 i2c 上
(wire), 然後用位址0x68, 0x69去讀
所以如果是 accelgyro1 讀不到,就把其中
一個mpu的 ad0 接地. 所以如果是 accelgyro2 讀不到,就把其中
一個mpu的 ad0 接 vcc
作者:
mazda770
時間:
2016-5-28 17:33
後來我的位址都用預設的 0x68去讀竟然讀得到,但不經讓我懷疑這樣的作法是否正確?
如果是用0x68 0x69去讀的話通常是 0x69讀不到,而且初始化就會出現錯誤了。所以這種情況要把ad0接到VCC嗎? 為什麼要這樣做呢
作者:
超新手
時間:
2016-5-28 19:51
本帖最後由 超新手 於 2016-5-28 22:02 編輯
如果你都接到 wire 上
當然不對
i2c 因為共用同一條線路(sda scl)
所以線路上的裝置必須使用不同"位址"
來區分
除非分別接到wire 和 wire1
才是對的
作者:
mazda770
時間:
2016-5-29 09:55
所以""DUE""要用 0x68 0x69 連接到才算是對的!!!
我在試試看摟~謝謝大大
作者:
超新手
時間:
2016-5-29 13:17
應該是..如果要接到同一個 i2c 上
就要把位址錯過開
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2