电子发烧友App

硬声App

扫码添加小助手

加入工程师交流群

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>用于Arduino的ADXL335加速度计

用于Arduino的ADXL335加速度计

2022-07-04 | zip | 0.03 MB | 次下载 | 免费

资料介绍

PCB图如下:
pYYBAGKxrhaABX1QAAAolszwfo4713.png
poYBAGKxrhiADxAoAAAYmban80Q347.png

成分

 

ADXL335BCPZ-RL
模拟设备
× 1
741C083510JP
CTS电阻器产品
× 1
227CKS035M
伊利诺伊电容器
× 1
16针公头 × 1

 

描述

用于 Arduino 的 ADXL335 加速度计

这个加速度计模块基于流行的 ADXL335 三轴模拟加速度计 IC,它将 X、Y 和 Z 加速度读取为模拟电压。通过测量重力引起的加速度,加速度计可以计算出它相对于地球的倾斜角度。通过感测动态加速度的量,加速度计可以了解设备移动的速度和方向。使用这两个属性,您可以制作各种很酷的项目,从乐器(想象演奏并将倾斜连接到失真水平或弯音)到汽车(或您孩子的汽车)上的速度监视器。加速度计是使用 3 个模拟输入引脚连接到 Arduino 微控制器的非常简单的接口,并且可以与大多数其他微控制器一起使用,例如 PIC 或 AVR。

poYBAGKxriGAbiNVAAAkySaNmXc514.jpg

对于大多数加速度计,操作所需的基本连接是电源通信线路。具有模拟接口的加速度计通过不同的电压水平显示加速度。这些值通常在接地和电源电压电平之间波动。然后可以使用微控制器上的 ADC 读取该值。这些通常比数字加速度计便宜。 

ADXL335 是 3 轴加速度计,带有板载稳压器 IC 和信号调理模拟电压输出。该模块由 Analog Devices 的 ADXL335 组成。该产品以 ±3 g 的最小满量程范围测量加速度。它可以测量倾斜感应应用中的静态重力加速度,以及运动、冲击或振动产生的动态加速度。

用户使用 XOUT、YOUT 和 ZOUT 引脚上的 CX、CY 和 CZ 电容器选择加速度计的带宽。可以选择适合应用的带宽,X 轴和 Y 轴的范围为 0.5 Hz 至 1600 Hz,Z 轴的范围为 0.5 Hz 至 550 Hz。这是经过验证的长期系列中的最新产品模拟传感器——加速度计的圣杯。加速度计通常是低功耗设备。所需电流通常在微 (μ) 或毫安范围内 ADXL335 是一款三轴加速度计,具有极低的噪声和功耗——仅 320uA!该传感器具有 +/-3g 的完整感应范围。

有一个板载电压调节器,可让您使用 3V 至 6V DC 为电路板供电。电路板已完全组装并经过安装外部组件的测试。随附的 0.1uF 电容器将每个轴的带宽设置为 50Hz。

pYYBAGKxriOAfTYgAACIGPIi-nQ664.jpg

特征:poYBAGKxriaAa3D5AAA1OqGTUcU140.jpg

3V-6V 直流电源电压

板载 LDO 稳压器

可与 3V3 或 5V 微控制器接口。

所有必要的组件都已填充。

超低功耗:测量模式40uA,待机0.1uA@2.5V

点击/双击检测

自由落体检测

模拟输出

规格:poYBAGKxriaAa3D5AAA1OqGTUcU140.jpg
pYYBAGKxriuAGVJdAAA12MpUc3E177.jpg

带调节器的 3 轴加速度计的描述 – ADXL335 如下所示
poYBAGKxri6Adq2NAABEdQcRsS8589.jpg

poYBAGKxriaAa3D5AAA1OqGTUcU140.jpg

输入电压范围 (VCC) = 3V3- 6V

如何测试poYBAGKxriaAa3D5AAA1OqGTUcU140.jpg1. 带调节器的 3 轴加速度计 – 使用 Arduino 的 ADXL335

这是说明如何将 Arduino 连接到 ADXL335 三轴加速度计的指南。下图描述了 Arduino 上的哪些引脚应连接到加速度计上的引脚:

poYBAGKxrjiAFEaLAACiCRkLSpg702.png

使用 Arduino 板进行测试,示例程序如下所示。使用这个程序,我们在振动期间读取 X、Y 和 Z 轴的输出。

诠释 x; // x 轴变量

整数y; // y轴变量

诠释z; // z 轴变量

/************************************************* *************************************

功能:设置()

描述:用它来初始化变量、引脚模式、开始使用库等。

设置功能只会在每次上电或重启 Arduino 板后运行一次。

****************************************************** *************************************/

无效设置()

{

序列号.开始(9600);// 打开串口,设置数据速率为 9600 bps

}

/************************************************* *************************************

功能:循环()

描述:连续循环,允许您的程序更改和响应。

用它来主动控制 Arduino 板。

****************************************************** *************************************/

无效循环()

{

x = 模拟读取(0);//读取第0个模拟输入引脚

y = 模拟读取(1);//读取第一个模拟输入引脚

z = 模拟读取(2);//读取第二个模拟输入引脚

Serial.print("X = "); // 打印 x adc 值

序列号.println(x);

Serial.print("Y = "); // 打印 y adc 值

序列号.println(y);

Serial.print("Z = "); // 打印 z adc 值

序列号.println(z);

延迟(100);

}

将 ADXL335 模块与 Arduino 连接并上传 Arduino 示例代码。然后打开串口监视器,ADXL335会输出加速度

pYYBAGKxrjuARAIzAABTCC6ZWOw981.jpg

2. 使用调节器测试 3 轴加速度计——使用 PIC16F877A 的 ADXL335 

当将 3 轴加速度计与调节器 - ADXL335 与 PIC16F877A 微控制器连接时,传感器的 X、Y、Z 引脚连接到微控制器的端口 A。这里 X、Y、Z 引脚分别连接到 RA1、RA2、RA3。连接图如下所示pYYBAGKxrj6AXtkiAAF6cy1txHE903.jpg

使用调节器测试 3 轴加速度计 – ADXL335 和 PIC16F877A,示例程序如下所示。使用这个程序,我们

#include

#include“延迟.c”

诠释 X_Value=0;

int Y_Value=0;

int Z_Value=0;

无效 ADC_init() ;

无效发送(字符);

int adc_conv(int);

无效的 SerialPortInit() ;

无效发送数据(字符);

无效显示(整数值);

无效 MSdelay(无符号整数);

静态无效 Send2USART(const char *CPtr1);

无效的主要()

{

TRISC=0X80;

TRISE=0X07;

串行端口初始化();

ADC_init();

而(1)

{

Send2USART("X轴:");

X_Value=adc_conv(1);

显示(X_Value);

发送数据(' ');

Send2USART("Y轴:");

Y_Value=adc_conv(2);

显示(Y_值);

发送数据(' ');

Send2USART("Z轴:");

Z_Value=adc_conv(3);

显示(Z_Value);

发送数据('\n');

发送数据('\r');

}

}

/************************************************* ******************************

* 功能:发送2USART

* 描述:串行发送的一组数据  

****************************************************** ******************************/

静态无效 Send2USART(const char *Cptr1)

{

while(*Cptr1 != '\0')

{

发送数据(*Cptr1);

cptr1++;

}

}

/************************************************* ******************************

* 功能:显示

* 说明:显示adc值功能

****************************************************** ******************************/

无效显示(整数值)

{

字符 k=1;

字符数组[4];

for(k=1;k<=4;k++)

{

数组[k]=值%10;

价值=价值/10;

}

for(k=4;k>=1;k--)

{

发送数据(数组[k]+'0');

}

}

/************************************************* ******************************

* 功能:SerialPortInit

* 描述:Usart 初始化函数 - 波特率 9600

****************************************************** ******************************/

无效的 SerialPortInit()

{

GIE=1;

同步=0;

TXEN=1;

BRGH=1;

SPEN=1;

CREN=1;

PEIE=1;

RCIE=1;

SPBRG=129;

}

/************************************************* ******************************

* 功能:ADC_init

* 说明:Adc 初始化函数

****************************************************** ******************************/

无效 ADC_init()

{

ADFM=1;

PCFG3=0;

PCFG2=0;

PCFG1=0;

PCFG0=0;

}

/************************************************* ******************************

* 功能:adc_conv

* 说明:Adc 转换功能

****************************************************** ******************************/

int adc_conv(int 通道)

{

诠释AB;

ADCON0=0x81|通道<<4; //通道选择

延迟Ms(1);

ADGO=1;//开始AD转换

而(ADGO!= 0);//等待AD转换的竞争

ab=地址;//将2bit值ADRSH寄存器赋给变量ab

ab=ADRESH<<8; //8次移位变量ab值

ab=ab|ADRESL; //结合ADRESL和ab值

返回(ab);

}

/************************************************* ******************************

* 功能:发送数据

* 描述:串行发送数据

****************************************************** ******************************/

无效发送数据(字符数据)

{

TXREG=sdata;

而(TRMT!= 1);

}

/************************************************* ******************************

* 功能:MSdelay

* 描述:产生1ms延迟

****************************************************** ******************************/

无效 MSdelay(无符号整数 val)

{

无符号整数德尔,德尔1;

for(del=1;del<=val;del++)

{

for(del1=0;del1<=331;del1++);

}    

}

当 PIC16F877A 微控制器接收到带调节器的 3 轴加速度计 – ADXL335 数据并在串行监视器上显示为

. poYBAGKxrkKAGqm5AAFb56q7c9s209.jpg

将 ADXL335 输出转换为加速度 (g)

?

下面的代码片段是程序中最重要的部分。它将来自传感器的模拟输出电压映射并转换为重力加速度 (G)。

IDE 的内置 map() 函数执行实际映射。因此,当我们调用 map(xRaw, RawMin, RawMax, -3000, 3000) 时,RawMin 的值将映射到 -3000,RawMax 的值映射到 3000,中间值映射到中间值。

值 -3000 和 3000 不是任意的。它们实际上代表由传感器测量的重力加速度(以毫克为单位,即 1/1000 ag),即 ±3g(-3000 毫克到 3000 毫克)。

例如,

当传感器在 x 轴上输出 0 伏即 xRaw=0 时,map() 函数将返回 -3000 表示 -3g。

当传感器在 x 轴上输出 3.3 伏特时,即 xRaw=1023,map() 函数将返回 3000,表示 +3g。

当传感器在 x 轴上输出 1.65 伏特时,即 xRaw=511,map() 函数将返回 0 表示 0g。

现在,随着输出电压随加速度在该范围内线性增加,比率这个术语现在将更有意义。

// 将原始值转换为“milli-Gs”

long xScaled = map(xRaw, RawMin, RawMax, -3000, 3000);

long yScaled = map(yRaw, RawMin, RawMax, -3000, 3000);

长 zScaled = map(zRaw, RawMin, RawMax, -3000, 3000);

最后,传感器的输出通过将其除以 1000 缩小到小数 Gs 并显示在串行监视器上。

// 重新缩放到小数 Gs

浮动 xAccel = xScaled / 1000.0;

浮动 yAccel = yScaled / 1000.0;

浮动 zAccel = zScaled / 1000.0;

Serial.print("X, Y, Z :: ");

串行打印(xRaw);

序列号.print(", ");

Serial.print(yRaw);

序列号.print(", ");

串行打印(zRaw);

Serial.print(" :: ");

Serial.print(xAccel,0);

Serial.print("G, ");

Serial.print(yAccel,0);

Serial.print("G, ");

Serial.print(zAccel,0);

序列号.println("G");

代码

adxl335 的测试代码

adxl335_test_code.ino

下载

加速度计 Arduino ADXL335
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1矽力杰 Silergy SY7215A 同步升压调节器 规格书 Datasheet 佰祥电子
  2. 1.12 MB  |  5次下载  |  免费
  3. 2HT81696H 内置升压的30W立体声D类音频功放数据手册
  4. 1.21 MB   |  1次下载  |  免费
  5. 3HTA6863 3W超低噪声超低功耗单声道D类音频功率放大器数据手册
  6. 0.87 MB   |  次下载  |  免费
  7. 4南芯 Southchip SC8802C 充电控制器 规格书 Datasheet 佰祥电子
  8. 88.16 KB  |  次下载  |  免费
  9. 5矽力杰 Silergy SY7065 同步升压转换器 规格书 Datasheet 佰祥电子
  10. 910.67 KB  |  次下载  |  免费
  11. 6矽力杰 Silergy SY7066 同步升压转换器 规格书 Datasheet 佰祥电子
  12. 989.14 KB  |  次下载  |  免费
  13. 7WD6208A产品规格书
  14. 631.24 KB  |  次下载  |  免费
  15. 8NB685 26 V,12 A,低静态电流,大电流 同步降压变换器数据手册
  16. 1.64 MB   |  次下载  |  2 积分

本月

  1. 1EMC PCB设计总结
  2. 0.33 MB   |  12次下载  |  免费
  3. 2PD取电芯片 ECP5702规格书
  4. 0.88 MB   |  5次下载  |  免费
  5. 3矽力杰 Silergy SY7215A 同步升压调节器 规格书 Datasheet 佰祥电子
  6. 1.12 MB  |  5次下载  |  免费
  7. 4氮化镓GaN FET/GaN HEMT 功率驱动电路选型表
  8. 0.10 MB   |  3次下载  |  免费
  9. 5PD取电芯片,可取5/9/12/15/20V电压ECP5702数据手册
  10. 0.88 MB   |  3次下载  |  免费
  11. 6SY50655 用于高输入电压应用的伪固定频率SSR反激式稳压器英文资料
  12. 1.01 MB   |  3次下载  |  免费
  13. 7怎么为半导体测试仪选择精密放大器
  14. 0.65 MB   |  2次下载  |  免费
  15. 8SY52341 次级侧同步整流英文手册
  16. 0.94 MB   |  2次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935137次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420064次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233095次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191469次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183360次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81606次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73832次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65991次下载  |  10 积分