作者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/cn.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