作者ks89213 (LIEO)
看板ASM
標題[問題] Arduino 三軸加速度計
時間Wed Nov 4 21:03:51 2015
小弟新手想學學看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://webptt.com/m.aspx?n=bbs/ASM/M.1446642233.A.766.html
※ 編輯: ks89213 (120.114.140.253), 11/04/2015 21:05:05
1F:推 chuegou: 一個軸-1.另外兩軸0? 11/05 00:55
三個軸都是-1
※ 編輯: ks89213 (120.114.140.253), 11/05/2015 11:06:11
2F:→ BallLee15: 會不會是電壓關係 arduino的i2c是5v 11/06 17:18
3F:→ BallLee15: 三軸3.3v 11/06 17:18
4F:→ BallLee15: 我也是初學者int I2C_Address = 0x1D >> 1;改int I2C_A 11/06 17:22
5F:→ BallLee15: ddress = 0x1D; 看看能不能 11/06 17:22
一樣沒有辦法
※ 編輯: ks89213 (120.114.140.55), 11/16/2015 20:07:32
6F:→ easypro: 你有enable 三軸嗎? 11/25 21:05
請問是甚麼意思
※ 編輯: ks89213 (120.114.140.253), 11/26/2015 10:33:53
7F:推 escorpion: 改成(float)((X1<<8)+X0)/256.0看看,我不知道整數除 12/04 11:23
8F:→ escorpion: 以浮點數是不是會自動變浮點數 12/04 11:23
9F:推 escorpion: 如果有示波器的話看一下SDA pin的情況是不是正常溝通 12/04 11:25
10F:推 escorpion: 對了,SCL 跟SDA直接接在A4跟A5不一定能work,最好還是 12/04 11:27
11F:→ escorpion: 外加一個pull high resistor 12/04 11:27