新闻资讯
扫码关注我们
振动开关是一种感知振动的传感器元件,内部结构对垂直、水平、全方位微小移动的灵敏感知,进而输出简单的ON/OFF开关信号。振动开关的振动唤醒(Vibration Awake)电路是一种利用振动感应来触发电路工作的技术。它通常被应用于智能防盗、汽车电子、GPS定位触发、胎压监测、RFID、智能穿戴、无线数码、自动化装置等各类智能系统中。振动唤醒电路的特点是微型、高感知、零消耗,能够实现省电唤醒功能。
YTJM-CGQ系列是IntePrecision开发的贴片型、抽真空集成封装工艺振动传感器开关,高灵敏,抽真空,高稳定,全方向振动感应
全方向振动传感器YTJM-CGQ的振动唤醒vibration awake省电方案:
硬件结构整体原理:
硬件简单设计:
电路1为直连最灵敏状态,电路2通过R1C1形成简单的滤波电路,能够有效的过滤部分杂波,提高电路的抗干扰能力,同时降低sensor的灵敏度,这里我们可以选值VDD=3.3V ,R1=3M,C1=100nf R2=10k,(数值仅供参考,可以自行调试) 其中C1值越大,则整体线路的灵敏度会越低,R2起到保护sensor作用,防止通过sensor的瞬间电流过大。如果想采用上升沿触发,可以通过硬件电路使产品在静止状态下处于低电平,如电路三所示:
此时在静止状态下,不论YTJM-CGQ-SENSOR处于何种状态,IC引脚2读取状态一直低电平状态,当发生振动时,才会出现由低到高的变化。此时可以采用读取上升沿的方式进行唤醒。整体功耗低于1uA。当然也可以搭配电路图2,来进行硬件方面的抗干扰,降低灵敏度。
软件简单设计(仅供参考):
#include <reg51.h>
unsigned char data; // 存储传感器数据
unsigned char filter; // 存储滤波后的数据
unsigned char threshold; // 震动阈值
unsigned long timer; // 定时器值
void init() { // 初始化
TMOD = 0x01; // 设置定时器0为模式1
TH0 = 0xF9; // 设置定时器0的初值
TL0 = 0x09; // 设置定时器0的初值
TR0 = 1; // 启动定时器0
EA = 1; // 开总中断
ET0 = 1; // 开定时器0中断
TH1 = 0xFD; // 设置定时器1的初值
TL1 = 0x0B; // 设置定时器1的初值
TR1 = 1; // 启动定时器1
IT1 = 1; // 设置定时器1中断为下降沿触发
P1 = 0x00; // 设置P1口为输入
}
void interrupt() { // 中断服务程序
if (IT1 == 1) { // 如果定时器1中断
data = P1; // 读取传感器数据
filter = data; // 初始化滤波器
timer = 0; // 重置定时器
}
}
void filter_data() { // 滤波算法
timer++; // 定时器递增
if (timer > 100) { // 如果定时器超过100个周期
filter = (filter * 99) + data; // 滤波
timer = 0; // 重置定时器
}
}
void check_vibration() { // 检查震动
filter_data(); // 执行滤波算法
if (filter > threshold) { // 如果滤波后的数据大于阈值
P1 = 0xFF; // 输出高电平
} else { // 否则
P1 = 0x00; // 输出低电平
}
}
void main() {
init(); // 初始化
threshold = 50; // 设置震动阈值为50
while (1) { // 主循环
check_vibration(); // 检查震动
delay(100); // 延迟100毫秒
}
}
YT-JM-CGQ系列经历客户严苛测试,工业级标准,已与国内外顶级生产制造商达成长期合作协议,年出货100KK以上。公司秉承:“安全生产,品质过硬,灵活创新,服务及时”的生产理念,通过ISO9001:2015质量管理体系认证,为客户提供符合REACH/RHOS环保标准的高质量产品。