“SKU:RB-02S096 ADXL335 三轴加速度模块”的版本间的差异

来自ALSROBOT WiKi
跳转至: 导航搜索
使用方法
资料下载
 
(未显示1个用户的7个中间版本)
第20行: 第20行:
 
8、固定孔尺寸(mm):23 x 18 mm<br/>
 
8、固定孔尺寸(mm):23 x 18 mm<br/>
 
9、重量(g):3g<br/>
 
9、重量(g):3g<br/>
 +
 +
 +
* 产品尺寸图:
 +
[[文件:size023.jpg|500px|缩略图|居中]]
 +
 
==使用方法==
 
==使用方法==
 
* 实验环境
 
* 实验环境
 
:硬件环境:<br/>
 
:硬件环境:<br/>
(1)[http://www.alsrobot.cn/goods-546.html Starduino UNO R3 控制器] * 1个<br/>
+
(1)Arduino UNO 控制器 * 1个<br/>
 
(2)[http://www.alsrobot.cn/goods-775.html 三轴加速度传感器] * 1个<br/>
 
(2)[http://www.alsrobot.cn/goods-775.html 三轴加速度传感器] * 1个<br/>
 
(3)[http://www.alsrobot.cn/goods-90.html USB 数据线] * 1条<br/>
 
(3)[http://www.alsrobot.cn/goods-90.html USB 数据线] * 1条<br/>
第33行: 第38行:
  
 
===简单读取输出值===
 
===简单读取输出值===
 +
* 实验目的:读取ADXL335模块 x、y、z 轴的输出模拟量大小
 +
* 硬件连接:
 +
(1)ADXL335 模块的 X 连接 UNO 控制器的 A0<br/>
 +
(1)ADXL335 模块的 Y 连接 UNO 控制器的 A1<br/>
 +
(1)ADXL335 模块的 Z 连接 UNO 控制器的 A2<br/>
 +
(1)ADXL335 模块的 + 连接 UNO 控制器的 3.3V<br/>
 +
(1)ADXL335 模块的 - 连接 UNO 控制器的 GND<br/>
 
* 例子程序
 
* 例子程序
 
<pre style='color:blue'>
 
<pre style='color:blue'>
void setup()
+
const int xInput = A0;// X axis input use Analog 0 pin
 +
const int yInput = A1;//Y 1 pin
 +
const int zInput = A2;//Z 2 pin
 +
const int sampleSize = 10;
 +
 +
void setup()  
 
{
 
{
    Serial.begin(115200);
+
  //analogReference(EXTERNAL);
 +
//默认使用5V的基准电压则注释此语句,如果使用自己设置的基准电压,例如使用3.3V基准电压,只需要将UNO的AREF引脚连接到3.3V,并取消对本句话的注释
 +
  Serial.begin(9600);
 
}
 
}
void loop()
+
 +
void loop()  
 
{
 
{
      int x,y,z;
+
  int xRaw = ReadAxis(xInput);
      Serial.print("X OUTPUT");
+
  int yRaw = ReadAxis(yInput);
      Serial.println(analogRead(A0));
+
  int zRaw = ReadAxis(zInput);
      Serial.print("Y OUTPUT");
+
 
      Serial.println(analogRead(A1));
+
  Serial.print ("x:");
      Serial.print("Z OUTPUT");
+
  Serial.print (xRaw);
      Serial.println(analogRead(A2));
+
 
}
+
  Serial.print ("y:");
 +
  Serial.print (yRaw);
 +
 
 +
  Serial.print ("z:");
 +
  Serial.print (zRaw);
 +
  Serial.println("");//return
 +
 
 +
  delay(500);
 +
  }
 +
 
 +
 
 +
int ReadAxis(int axisPin)
 +
{
 +
  long reading = 0;
 +
  analogRead(axisPin);
 +
  delay(1);
 +
  for (int i = 0; i < sampleSize; i++)
 +
  {
 +
    reading += analogRead(axisPin);
 +
  }
 +
  return reading/sampleSize;
 +
}
 
</pre>
 
</pre>
 
* 程序效果
 
* 程序效果
 
通过串口监视器可以查看当前 X、Y、Z 轴输出的模拟量值。<br/>
 
通过串口监视器可以查看当前 X、Y、Z 轴输出的模拟量值。<br/>
 +
[[文件:adxl3350001.png|500px|缩略图|居中]]
  
===输出角度值===
+
===检测角度值===
 
* 例子程序
 
* 例子程序
 
<pre style='color:blue'>
 
<pre style='color:blue'>
第69行: 第111行:
 
   int z = analogRead(A2);
 
   int z = analogRead(A2);
 
  //将模拟量转换成电压值
 
  //将模拟量转换成电压值
   float vx = x * 5.0/1023.0;
+
   float vx = x * 5.0/1024.0;
   float vy = y * 5.0/1023.0;
+
   float vy = y * 5.0/1024.0;
   float vz = z * 5.0/1023.0;
+
   float vz = z * 5.0/1024.0;
 
  //将模拟量转换成每个轴向的g值,1.5是三轴加速度计的0g基准电压,单位为V,300是三轴加速度计的灵敏度,单位是mv/g
 
  //将模拟量转换成每个轴向的g值,1.5是三轴加速度计的0g基准电压,单位为V,300是三轴加速度计的灵敏度,单位是mv/g
 
   float Rx = (vx - Vzerog)/(Sensitivity / 1000.0);
 
   float Rx = (vx - Vzerog)/(Sensitivity / 1000.0);
第99行: 第141行:
 
[[文件:02S00000.jpg|600px|缩略图|居中]]
 
[[文件:02S00000.jpg|600px|缩略图|居中]]
  
==产品相关推荐==
+
==资料下载==
 
[[文件:erweima.png|230px|无框|右]]
 
[[文件:erweima.png|230px|无框|右]]
===产品购买地址===
+
* 产品资料
* [http://www.alsrobot.cn/goods-775.html 三轴加速度模块]
+
下载链接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA
* [http://wenku.baidu.com/link?url=XEh-hnMvIK8dILyN76HWp-O5DpVhJHWIzgVzV2hUryHAyAZl0K_cpOD64i_GqInxcvcWz1Nj7yBw4q2AVo4djQFhvnhtWNUoeC0lt5KzH__ ADXL335 芯片手册]
+
提取码:ziea
 +
* 产品购买链接:http://www.alsrobot.cn/goods-775.html
 +
* 奥松机器人技术论坛:http://www.makerspace.cn

2021年10月8日 (五) 11:42的最后版本

02S09601.png

目录

产品概述

在加速度传感器中有一种是三轴加速度传感器,同样的它是基于加速度的基本原理去实现工作的,加速度是个空间矢量,一方面,要准确了解物体的运动状态,必须测得其三个坐标轴上的分量;另一方面,在预先不知道物体运动方向的场合下,只有应用三轴加速度传感器来检测加速度信号。由于三轴加速度传感器也是基于重力原理的,因此用三轴加速度传感器可以实现双轴正负90度或双轴0-360度的倾角,通过校正后期精度要高于双轴加速度传感器大于测量角度为60度的情况。

产品参数

1、产品类型:模拟传感器
2、接口类型:KF2510
3、工作电压:5V
4、引脚定义:

  • X:加速度计 X 轴
  • Y:加速度计 Y 轴
  • Z:加速度计 Z 轴
  • -:电源负极
  • +:电源正极

5、检测范围:

  • X 轴输出值:静止输出偏差:±1,输出范围:275 - 425
  • Y 轴输出值:静止输出偏差:±1,输出范围:270 - 420
  • Z 轴输出值:静止输出偏差:±1,输出范围:280 - 425

6、工作温度:-25℃~+85℃
7、产品尺寸(mm):30 x 25 mm
8、固定孔尺寸(mm):23 x 18 mm
9、重量(g):3g


  • 产品尺寸图:
Size023.jpg

使用方法

  • 实验环境
硬件环境:

(1)Arduino UNO 控制器 * 1个
(2)三轴加速度传感器 * 1个
(3)USB 数据线 * 1条

软件环境:Arduino 1.7.10
  • 硬件连接

如图所示,将三轴加速度传感器连接到 Starduino UNO R3 的模拟接口上

02S09602.png

简单读取输出值

  • 实验目的:读取ADXL335模块 x、y、z 轴的输出模拟量大小
  • 硬件连接:

(1)ADXL335 模块的 X 连接 UNO 控制器的 A0
(1)ADXL335 模块的 Y 连接 UNO 控制器的 A1
(1)ADXL335 模块的 Z 连接 UNO 控制器的 A2
(1)ADXL335 模块的 + 连接 UNO 控制器的 3.3V
(1)ADXL335 模块的 - 连接 UNO 控制器的 GND

  • 例子程序
const int xInput = A0;// X axis input use Analog 0 pin
const int yInput = A1;//Y 1 pin
const int zInput = A2;//Z 2 pin
const int sampleSize = 10;
 
void setup() 
{
  //analogReference(EXTERNAL);
//默认使用5V的基准电压则注释此语句,如果使用自己设置的基准电压,例如使用3.3V基准电压,只需要将UNO的AREF引脚连接到3.3V,并取消对本句话的注释
  Serial.begin(9600);
}
 
void loop() 
{
  int xRaw = ReadAxis(xInput);
  int yRaw = ReadAxis(yInput);
  int zRaw = ReadAxis(zInput);
  
  Serial.print ("x:");
  Serial.print (xRaw);
  
  Serial.print ("y:");
  Serial.print (yRaw);
  
  Serial.print ("z:");
  Serial.print (zRaw);
   Serial.println("");//return
  
  delay(500);
  }


int ReadAxis(int axisPin)
{
  long reading = 0;
  analogRead(axisPin);
  delay(1);
  for (int i = 0; i < sampleSize; i++)
  {
    reading += analogRead(axisPin);
  }
  return reading/sampleSize;
}
  • 程序效果

通过串口监视器可以查看当前 X、Y、Z 轴输出的模拟量值。

Adxl3350001.png

检测角度值

  • 例子程序
float Vzerog = 1.5;//ADXL335 三轴加速度计 0g 基准电压典型值
int Sensitivity = 300;//ADXL335 三轴加速度计灵敏度参数典型值
void setup()
{
    Serial.begin(115200);
}
void loop()
{
  //获取ADLX335三轴加速度计模拟量
  int x = analogRead(A0);
  int y = analogRead(A1);
  int z = analogRead(A2);
 //将模拟量转换成电压值
  float vx = x * 5.0/1024.0;
  float vy = y * 5.0/1024.0;
  float vz = z * 5.0/1024.0;
 //将模拟量转换成每个轴向的g值,1.5是三轴加速度计的0g基准电压,单位为V,300是三轴加速度计的灵敏度,单位是mv/g
  float Rx = (vx - Vzerog)/(Sensitivity / 1000.0);
  float Ry = (vy - Vzerog)/(Sensitivity / 1000.0);
  float Rz = (vz - Vzerog)/(Sensitivity / 1000.0);
 //得出重力加速度g值大小
  float R = sqrt(pow(Rx,2) + pow(Ry,2) + pow(Rz,2));
 //计算与三轴的夹角对应弧度值
  float Axr = acos(Rx/R);
  float Ayr = acos(Ry/R);
  float Azr = acos(Rz/R);
  Serial.println(Azr);
 //将水平弧度值转换为对应角度,并通过串口打印
  float anglex = 180.0 * Axr / 3.14;
  float angley = 180.0 * Ayr / 3.14;
  float anglez = 180.0 * Azr / 3.14;
  Serial.print("anglex = ");
  Serial.print(anglex);
  Serial.print("  angley = ");
  Serial.print(angley);
  Serial.print("  anglez = ");
  Serial.println(anglez);
  delay(300);  
 }
  • 程序效果

说明:程序中,ADXL335 灵敏度及 0g 偏置电平使用的均为典型值(ADXL335 芯片手册可查),如果测试结果与实际有误差,可通过修改两个值来改变 Vzerog,Sensitivity 两个参数初始值来调节。

02S00000.jpg

资料下载

Erweima.png
  • 产品资料

下载链接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA 提取码:ziea