“SKU:RB-02S096 ADXL335 三轴加速度模块”的版本间的差异
(→使用方法) |
(→资料下载) |
||
(未显示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)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() | ||
{ | { | ||
− | + | //analogReference(EXTERNAL); | |
+ | //默认使用5V的基准电压则注释此语句,如果使用自己设置的基准电压,例如使用3.3V基准电压,只需要将UNO的AREF引脚连接到3.3V,并取消对本句话的注释 | ||
+ | Serial.begin(9600); | ||
} | } | ||
− | void loop() | + | |
+ | 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; | ||
+ | } | ||
</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/ | + | float vx = x * 5.0/1024.0; |
− | float vy = y * 5.0/ | + | float vy = y * 5.0/1024.0; |
− | float vz = z * 5.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|无框|右]] | ||
− | + | * 产品资料 | |
− | * | + | 下载链接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA |
− | * | + | 提取码:ziea |
+ | * 产品购买链接:http://www.alsrobot.cn/goods-775.html | ||
+ | * 奥松机器人技术论坛:http://www.makerspace.cn |
2021年10月8日 (五) 11:42的最后版本
目录 |
产品概述
在加速度传感器中有一种是三轴加速度传感器,同样的它是基于加速度的基本原理去实现工作的,加速度是个空间矢量,一方面,要准确了解物体的运动状态,必须测得其三个坐标轴上的分量;另一方面,在预先不知道物体运动方向的场合下,只有应用三轴加速度传感器来检测加速度信号。由于三轴加速度传感器也是基于重力原理的,因此用三轴加速度传感器可以实现双轴正负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
- 产品尺寸图:
使用方法
- 实验环境
- 硬件环境:
(1)Arduino UNO 控制器 * 1个
(2)三轴加速度传感器 * 1个
(3)USB 数据线 * 1条
- 软件环境:Arduino 1.7.10
- 硬件连接
如图所示,将三轴加速度传感器连接到 Starduino UNO R3 的模拟接口上
简单读取输出值
- 实验目的:读取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 轴输出的模拟量值。
检测角度值
- 例子程序
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 两个参数初始值来调节。
资料下载
- 产品资料
下载链接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA 提取码:ziea
- 产品购买链接:http://www.alsrobot.cn/goods-775.html
- 奥松机器人技术论坛:http://www.makerspace.cn