_SKU_SEN0289__数字晃动传感器 - jimaobian/DFRobotWikiCn GitHub Wiki
概述
想要摇一摇切换彩灯,但又不想使用编程复杂,成本又高的三轴加速度传感器?这款数字晃动传感器一定能满足你的需要。
数字晃动传感器是一款仅对单方向手摇运动敏感的数字传感器。采用弹簧式震动开关,静止时输出高电平,当用户沿指定方向用力晃动一次,模块输出一个低电平脉冲,板载指示灯同时闪亮。得益于震动开关的单方向敏感特性和相应的滤波电路,中等强度的碰撞或震动(如:跌落、撞击)也不会误触发产生中断信号,具有较强的抗冲击干扰能力。只要摇一摇,挥一挥,各类开关控制尽在手中。
特性
- 单方向敏感,抗冲击干扰强,防止误触发
- 兼容3.3V/5V控制器
- 精致小巧,方便安�
应用场景
- 摇摇棒
- 摇一摇开关控制
技术规格
- 输入电压:3.3V~5.0V
- 开关寿命:20万次以上
- 接口类型:Gravity 3P数字接口
- 产品尺寸:30.0mm×22.0mm
接口说明
| | | | -------------------------------------------------- | | | : | |
标号 | 名称 | 功能描述 |
+ | VCC | 电源正极(3.3~5.0V) |
- | GND | 电源负极 |
D | Digital | 数字输出(静止高电平,晃动低电平脉冲) |
PWR | Power | 电源指示灯(红色),上电点亮 |
ON | ON | 晃动触发指示灯(蓝色) |
引脚说明
特性说明
传感器所使用的震动开关具有单方向敏感特性。如上图,用户按照模块图示logo握住模块,沿箭头方向(自+Y向Y-)方向用力一甩,即可在“D”引脚产生一次有效的低电平中断脉冲,同时ON产生较明亮的闪烁。对X或Z方向的摇晃、撞击或者震动无法产生有效的中断脉冲。
Arduino使用教程
准备
- 硬件
- Arduino UNO控制板 x 1
- Gravity:晃动传感器 x 1
- Gravity 3P数字传感器线(或若干杜邦线) x 1
- 软件
- Arduino IDE (1.0.x或1.8.x), 点击下载Arduino IDE
连线图
样例代码
#define LED_PIN 13
#define DIGITAL_INPUT_PIN 3 //Connect the sensor to digital Pin 3 which is Interrupts 1.
int stateFlag = 0;
unsigned long timepoint = 0;
void setup()
{
pinMode(LED_PIN, OUTPUT);
// Set to input mode with internal pull-up.
// This can ensure generating intterupts under 3.3V power supply.
pinMode(DIGITAL_INPUT_PIN, INPUT_PULLUP);
attachInterrupt(1, toggleLED, FALLING); // Trigger LED toggle function when the falling edge is detected
timepoint = millis();
}
void loop()
{
// toggle onboard LED
if (stateFlag != 0){
digitalWrite(LED_PIN, HIGH);
}
else {
digitalWrite(LED_PIN, LOW);
}
}
//Interrupt serivce routinue
void toggleLED()
{
// The hardware has done some filter.
// To further improve stability, here add a 50ms for debouncing.
// This will not block the main function.
if (millis() - timepoint > 50U){
timepoint = millis();
stateFlag = (stateFlag + 1) % 2;
}
}
结果
- 按照模块箭头所示方向,每用力晃动模块一次,传感器上的ON指示灯闪烁一次,Arduino UNO上的指示灯L点亮状态翻转一次。
Micro:bit使用教程
准备
- 硬件
- Micro:bit 编程入门开发板 x 1
- Micro:mate 多功能I/O扩展板 x 1
- Gravity:晃动传感器 x 1
- 数字传感器线(或若干杜邦线) x 1
- 软件
- Microsoft Makecode在线版, 点击进入
连线图
样例代码
结果
- 按照模块箭头所示方向,用力多次晃动模块,点阵LED显示心跳图案。
常见问题
| '''Q1. '''为什么ON出现闪烁,但是UNO上的指示灯不翻转? |
- '''A. '''轻微甩动、手指轻弹、撞击传感器时,ON会微微闪烁,但UNO上指示灯L不翻转属正常现象。只有用力往箭头方向甩动,ON出现较明亮闪烁,L点亮状态才会翻转。
| '''Q2. '''这个传感器不灵敏啊,灵敏度可以调节吗? |
- '''A. '''不能。为了排除其它震动与冲击的干扰,误触发主控,传感器的灵敏度设置相对较低,仅对特定方向适当用力的摇晃(甩动)有效。经过测试,该灵敏度较好地平衡了抗冲击性能与(手)摇晃检测的有效性。
| '''Q3. '''通过“analogRead() == 0”这类检测低电平的方法检测摇晃不太好用。 |
- '''A. '''当有摇晃时,传感器产生窄的低电平脉冲,主控未必能正确检测出来。建议按照样例代码,使用沿跳变外部中断方式检测是否产生摇晃。
| 更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。 |