sleepinglion 发表于 2016-1-18 09:34:53

wing 发表于 2011-9-27 15:29 static/image/common/back.gif
最近入手ADXL345试了下,用的是LZ程序发现有点小问题,无论什么角度Y==Z重来都没变过.
本来以为芯片Z轴坏了 ...

层主你太有钱啦:lol

ALAN222 发表于 2016-5-7 10:49:48

“通过测量由重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度”,请知道楼主问这一块功能怎么实现啊?我需要显示屏上直接显示角度

松下童子 发表于 2016-9-25 18:31:33

我和97楼的同学一样,液晶屏上显示的全部是xyz=-1.00的问题,而且不会变化,请问一下是什么地方出现了错误吗?新手刚刚学习arduino,不太会。

MrRan 发表于 2016-9-25 23:46:47

支持,赞一个,这个很有用。

z1195224900 发表于 2016-10-16 11:38:12

论坛怎么发图片?

healthtall 发表于 2016-10-18 08:56:42

弘毅,老师,我想问下这个和MPU6050相比,控制方便不?MPU6050读取的数据太复杂了,卡尔曼滤波搞不懂,我就想读取角度变化,例如手指上装传感器,实际的模型可以模拟手指的弯曲动作等,或者从一个点到另一个点的位置变化,不知道这个芯片能不能

桉凉 发表于 2017-7-10 17:56:21

幻生幻灭 发表于 2011-9-10 23:06
支持! 最近入手一个MMA7455L,IIC通讯整得迷糊了,网上也没找到案例。




为什么我输到屏幕上XYZ 的值都是-1.。。:L
用的是8574AT驱动的1602液晶屏
#include <Wire.h>//调用arduino自带的I2C库
#include <LiquidCrystal_I2C.h>
#define Register_ID 0
#define Register_2D 0x2D
#define Register_X0 0x32
#define Register_X1 0x33
#define Register_Y0 0x34
#define Register_Y1 0x35
#define Register_Z0 0x36
#define Register_Z1 0x37

LiquidCrystal_I2C lcd(0x3F,16,2);
int ADXAddress = 0x3F>>1;//转换为7位地址
int reading = 0;
int val = 0;
int X0,X1,X_out;
int Y0,Y1,Y_out;
int Z1,Z0,Z_out;
double Xg,Yg,Zg;

void setup()
{
Serial.begin(9600);
lcd.init();
delay(100);
Wire.begin();//初始化I2C
delay(100);
Wire.beginTransmission(ADXAddress);
Wire.write(Register_2D);
Wire.write(8);
Wire.endTransmission();
}

void loop()
{

    Wire.beginTransmission(ADXAddress);
    Wire.write(Register_X0);
    Wire.write(Register_X1);
    Wire.endTransmission();
    Wire.requestFrom(ADXAddress,2);
    if(Wire.available()<=2);
    {
      X0 = Wire.read();
      X1 = Wire.read();
      X1 = X1<<8;
      X_out = X0+X1;
      Serial.println( X_out);
    }
   
    Wire.beginTransmission(ADXAddress);
    Wire.write(Register_Y0);
    Wire.write(Register_Y1);
    Wire.endTransmission();
    Wire.requestFrom(ADXAddress,2);
    if(Wire.available()<=2);
    {
      Y0 = Wire.read();
      Y1 = Wire.read();
      Y1 = Y1<<8;
      Y_out = Y0+Y1;
       Serial.println( Y_out);
    }
   
    Wire.beginTransmission(ADXAddress);
    Wire.write(Register_Z0);
    Wire.write(Register_Z1);
    Wire.endTransmission();
    Wire.requestFrom(ADXAddress,2);
    if(Wire.available()<=2);
    {
      Z0 = Wire.read();
      Z1 = Wire.read();
      Z1 = Z1<<8;
      Z_out = Z0+Z1;
       Serial.println( Z_out);
    }
   

Xg = X_out/256.00;//把输出结果转换为重力加速度g,精确到小数点后2位。
Yg = Y_out/256.00;
Zg = Z_out/256.00;
lcd.clear();
lcd.backlight();
lcd.print("X="); //使屏幕显示文字X=
lcd.print(Xg);
lcd.setCursor(8, 0);
lcd.print("Y=");
lcd.print(Yg);
lcd.setCursor(0, 1);
lcd.print("Z=");
lcd.print(Zg);
delay(300);//延时0.3秒,刷新频率这里进行调整

}

a461624201 发表于 2018-2-5 13:33:02

从楼主另一个帖子改的。

taoye 发表于 2018-4-8 16:59:47

大佬,为什么我的显示屏上为都-1.00而且怎么动,值都不改变??

taoye 发表于 2018-4-9 15:12:13

taoye 发表于 2018-4-8 16:59
大佬,为什么我的显示屏上为都-1.00而且怎么动,值都不改变??

你这个问题解决了没有
页: 1 2 3 4 5 6 7 [8]
查看完整版本: arduino学习笔记12 - ADXL345加速度传感器实验