[問題] Arduino 三軸加速度計

看板ASM作者 (LIEO)時間8年前 (2015/11/04 21:03), 8年前編輯推噓4(407)
留言11則, 4人參與, 最新討論串1/1
小弟新手想學學看Arduino 連接三軸加速度計讀出數值 用的是MMA8652FC 3-Axis 12-bit Digital Accelerometer Module DIP-12 size 這塊板子,但網路上找不到用這塊板子的範例 所以我試者用別人的教學範例CODE 下去修改,但改了後數值都一直跑出-1的狀態,也不清楚是哪出了問題 想請教人我是哪裡出錯了不知是CODE的問題還是接腳的問題 SDA連結A4腳位 SCL連A5腳位 下面是CODE #include <Wire.h> int I2C_Address = 0x1D >> 1; int X0, X1, Y0, Y1, Z1, Z0; float X,Y,Z; void setup(){ Serial.begin(9600); Serial.println("Start : \n------------------------------------"); Wire.begin(); setReg(0x2B, 0x09); } void loop(){ X0 = getData(0x01); X1 = getData(0x02); X = ((X1 << 8) + X0) / 256.0; Y0 = getData(0x03); Y1 = getData(0x04); Y = ((Y1 << 8) + Y0) / 256.0; Z0 = getData(0x05); Z1 = getData(0x06); Z = ((Z1 << 8) + Z0) / 256.0; Serial.print("X= "); Serial.print(X); Serial.print(" Y= "); Serial.print(Y); Serial.print(" Z= "); Serial.println(Z); delay(500); } void setReg(int reg, int data){ Wire.beginTransmission(I2C_Address); Wire.write(reg); Wire.write(data); Wire.endTransmission(); } int getData(int reg){ Wire.beginTransmission(I2C_Address); Wire.write(reg); Wire.endTransmission(); Wire.requestFrom(I2C_Address,1); if(Wire.available()<=1){ return Wire.read(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.114.140.253 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1446642233.A.766.html ※ 編輯: ks89213 (120.114.140.253), 11/04/2015 21:05:05

11/05 00:55, , 1F
一個軸-1.另外兩軸0?
11/05 00:55, 1F
三個軸都是-1 ※ 編輯: ks89213 (120.114.140.253), 11/05/2015 11:06:11

11/06 17:18, , 2F
會不會是電壓關係 arduino的i2c是5v
11/06 17:18, 2F

11/06 17:18, , 3F
三軸3.3v
11/06 17:18, 3F

11/06 17:22, , 4F
我也是初學者int I2C_Address = 0x1D >> 1;改int I2C_A
11/06 17:22, 4F

11/06 17:22, , 5F
ddress = 0x1D; 看看能不能
11/06 17:22, 5F
一樣沒有辦法 ※ 編輯: ks89213 (120.114.140.55), 11/16/2015 20:07:32

11/25 21:05, , 6F
你有enable 三軸嗎?
11/25 21:05, 6F
請問是甚麼意思 ※ 編輯: ks89213 (120.114.140.253), 11/26/2015 10:33:53

12/04 11:23, , 7F
改成(float)((X1<<8)+X0)/256.0看看,我不知道整數除
12/04 11:23, 7F

12/04 11:23, , 8F
以浮點數是不是會自動變浮點數
12/04 11:23, 8F

12/04 11:25, , 9F
如果有示波器的話看一下SDA pin的情況是不是正常溝通
12/04 11:25, 9F

12/04 11:27, , 10F
對了,SCL 跟SDA直接接在A4跟A5不一定能work,最好還是
12/04 11:27, 10F

12/04 11:27, , 11F
外加一個pull high resistor
12/04 11:27, 11F
文章代碼(AID): #1MEW8vTc (ASM)