新浪博客

Arduino 震动传感器的制作与测试

2011-01-24 17:44阅读:
淘宝店铺:http://dsrobot.taobao.com 群号: 259189548

实验器材:Arduino 168P 基础套件 互动媒体
1.Arduino 168P 开发板一个
2.USB下载线一条
3. SW-18010P 震动传感器一个
4.LED一个
5.200欧姆电阻一个
6.面包板一块
7.面包板跳线若干条

实验目的:学习SW-18010P 震动传感器的工作原理,以及如何使用Arduino 控制SW-18010P 震动传感器。

实验电路:实验电路如下图所示


Arduino <wbr>震动传感器的制作与测试
实验原理:SW-18010P 震动传感器这是一款基于弹簧摆动原理设计的震动传感器,震动势能传到弹簧末端引起共振,左右摆动碰触到金属外壁形成通路。在静止时任何角度都为开路OFF状态,当受到外力碰撞或者大力晃动时,弹簧变形和中心电极接触导通使两个引脚瞬间导通为ON状态,当外力消失时,电路恢复为开路OFF状态。由于导通时间和弹簧的刚性有关,所以该震动传感器的输出带宽很窄,在使用Arduino读取时,建议使用外部中断功能。

Arduino <wbr>震动传感器的制作与测试 Arduino <wbr>震动传感器的制作与测试

实验步骤
一. 按照以上电路正确搭建实验电路。
二. 将我提供的调试程序下载到Arduino开发板中。
三. 晃动SW-18010P 震动传感器看LED的工作情况。

实验程序:
Arduino外部中断代码:
#define SensorLED 13
#define SensorINPUT 2
unsigned char state = 0;
void setup()
{
pinMode(SensorLED, OUTPUT);
pinMode(SensorINPUT, INPUT);
attachInterrupt(0, blink, FALLING);//D2口为外部中断0,当有下降沿触发的时候调用blink函数
}
void loop()
{
if(state!=0)
{
state = 0;
digitalWrite(SensorLED,HIGH);
delay(500);
}
else
digitalWrite(SensorLED,LOW);
}
void blink()//数字输入传感器下降沿触发中断服务函数
{
state++;
}
最后结果可观察数字口13脚上的L指示灯,震动后可以看见L灯亮500ms。

我的更多文章

下载客户端阅读体验更佳

APP专享