Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2462|回復: 7
打印 上一主題 下一主題

Arduino due SDA1 SCL1

[複製鏈接]
跳轉到指定樓層
1#
發表於 2016-5-26 14:25:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在要用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
2#
發表於 2016-5-26 19:39:27 | 只看該作者
本帖最後由 超新手 於 2016-5-26 19:58 編輯

兩個 mpu 的 ad0 有接對嗎?
要接不一樣
一個 VCC, 一個 GND
3#
 樓主| 發表於 2016-5-27 18:25:23 | 只看該作者
我都沒接AD0欸,請問一下為什麼要接此角為呢 我都接4個而已   VCC GND SDA SCL
4#
發表於 2016-5-27 19:53:59 | 只看該作者
其實你的程式有點奇怪又不太全
所以我只能用猜的
你應該是把兩個mpu都接到同一個 i2c 上
(wire), 然後用位址0x68, 0x69去讀
所以如果是 accelgyro1 讀不到,就把其中
一個mpu的 ad0 接地. 所以如果是 accelgyro2 讀不到,就把其中
一個mpu的 ad0 接 vcc
5#
 樓主| 發表於 2016-5-28 17:33:36 | 只看該作者
後來我的位址都用預設的 0x68去讀竟然讀得到,但不經讓我懷疑這樣的作法是否正確?

如果是用0x68 0x69去讀的話通常是 0x69讀不到,而且初始化就會出現錯誤了。所以這種情況要把ad0接到VCC嗎?  為什麼要這樣做呢
6#
發表於 2016-5-28 19:51:03 | 只看該作者
本帖最後由 超新手 於 2016-5-28 22:02 編輯

如果你都接到 wire 上
當然不對
i2c 因為共用同一條線路(sda scl)
所以線路上的裝置必須使用不同"位址"
來區分

除非分別接到wire 和 wire1
才是對的
7#
 樓主| 發表於 2016-5-29 09:55:32 | 只看該作者
所以""DUE""要用 0x68 0x69    連接到才算是對的!!!
我在試試看摟~謝謝大大
8#
發表於 2016-5-29 13:17:23 | 只看該作者
應該是..如果要接到同一個 i2c 上
就要把位址錯過開
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-23 16:25 , Processed in 0.057844 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表