资料介绍
PCB图如下:
成分
ADXL335BCPZ-RL vwin 设备 |
× 1 |
741C083510JP CTS电阻器产品 |
× 1 |
227CKS035M 伊利诺伊电容器 |
× 1 |
16针公头 | × 1 |
描述
用于 Arduino 的 ADXL335 加速度计
这个加速度计模块基于流行的 ADXL335 三轴模拟加速度计 IC,它将 X、Y 和 Z 加速度读取为模拟电压。通过测量重力引起的加速度,加速度计可以计算出它相对于地球的倾斜角度。通过感测动态加速度的量,加速度计可以了解设备移动的速度和方向。使用这两个属性,您可以制作各种很酷的项目,从乐器(想象演奏并将倾斜连接到失真水平或弯音)到汽车(或您孩子的汽车)上的速度监视器。加速度计是使用 3 个模拟输入引脚连接到 Arduino 微控制器的非常简单的接口,并且可以与大多数其他微控制器一起使用,例如 PIC 或 AVR。
对于大多数加速度计,操作所需的基本连接是电源和通信线路。具有模拟接口的加速度计通过不同的电压水平显示加速度。这些值通常在接地和电源电压电平之间波动。然后可以使用微控制器上的 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。
特征:
3V-6V 直流电源电压
板载 LDO 稳压器
可与 3V3 或 5V 微控制器接口。
所有必要的组件都已填充。
超低功耗:测量模式40uA,待机0.1uA@2.5V
点击/双击检测
自由落体检测
模拟输出
规格:
带调节器的 3 轴加速度计的描述 – ADXL335 如下所示
输入电压范围 (VCC) = 3V3- 6V
如何测试1. 带调节器的 3 轴加速度计 – 使用 Arduino 的 ADXL335
这是说明如何将 Arduino 连接到 ADXL335 三轴加速度计的指南。下图描述了 Arduino 上的哪些引脚应连接到加速度计上的引脚:
使用 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会输出加速度
2. 使用调节器测试 3 轴加速度计——使用 PIC16F877A 的 ADXL335
当将 3 轴加速度计与调节器 - ADXL335 与 PIC16F877A 微控制器连接时,传感器的 X、Y、Z 引脚连接到微控制器的端口 A。这里 X、Y、Z 引脚分别连接到 RA1、RA2、RA3。连接图如下所示
使用调节器测试 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=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 数据并在串行监视器上显示为
. :
将 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
- 使用ADXL335三轴加速度计制作快速简便的设备
- ADXL335三轴加速度计开源分享
- 采用ADXL335加速度计的交互式Pong PC游戏
- 低噪声低功耗3轴MEMS加速度计ADXL354/ADXL355 15次下载
- ADXL212:精度±2 g双轴PWM输出加速度计
- UG-427:评估ADXL377三轴加速度计
- EVAL-ADXL335Z:三轴加速度计评估板
- EVAL-ADXL325Z:三轴加速度计评估板
- ADXL001:高性能宽带宽加速度计
- ADXL701:高精密、低 g 、 数字 Z 轴加速度计
- ADXL330_加速度计 0次下载
- ADXL375_3轴、±200g数字MEMS加速度计 38次下载
- ADXL278_双轴、高g_iMEMS®加速度计 0次下载
- ADXL213_低成本±1.2g双轴加速度计 0次下载
- ADI公司MEMS加速度计ADXL345简介与例程 0次下载
- 状态监测中数字MEMS加速度计的混叠效应 1094次阅读
- MEMS加速度计中的振动校正 2362次阅读
- MEMS加速度计性能成熟 1181次阅读
- 为什么MEMS加速度计正在成为设计人员在CbM应用中的最佳选择 1234次阅读
- ADXL345三轴数字加速度计的驱动设计与实现 7546次阅读
- 如何扩展MEMS加速度计的带宽 3825次阅读
- 加速度计的安装方法分享 5001次阅读
- 基于使用Arduino、加速度计和LED制作时间手套 2802次阅读
- digilent三轴MEMS加速度计传感模块介绍 2591次阅读
- digilentPmodACL三轴加速度计介绍 2097次阅读
- 关于一种带数模混合输出的加速度计系统的设计和验证 4393次阅读
- MEMS加速度计是什么 加速度计工作原理 2.6w次阅读
- 如何用加速度计中断引脚执行唤醒和非运动检测 4607次阅读
- MEMS加速度计的振动校正是如何发生的,并讨论各种测量此参数的技术 7693次阅读
- 新型MEMS加速度计与商用压电(PZT)状态监控加速度计的比较 7791次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多