37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验四:震动传感器模块SW-420/520D SW-18010P灵敏常开常闭报警感应振动
四、SW-18010p滚珠震动传感器模块
1、模块特色:
(1)工作电压 3.3V-5V
(2)使用宽电压 LM393 比较器
(3)设有固定螺栓孔,方便安装
(4)小板 PCB 尺寸:3.2cm x 1.4cm
(5)输出形式 :数字开关量输出(0 和 1)
(6)比较器输出,信号干净,波形好,驱动能力强,超过 15mA
(7)高灵敏度震动开关,采用SW-18010P或者SW-18015P 震动传感器。
2、模块电原理图
3、SW-18010p滚珠震动传感器模块使用滚珠开关,也叫钢珠开关,珠子开关,其实都是震动开关的一种只是叫法不一样是通过珠子滚动接触导针的原理来控制电路的接通或者断开的。简单来说,就如同打开或关掉电灯一样,开关触碰里头的金属板电灯就亮,离开就关,滚珠开关也是利用类似的原理。利用开关中的小珠的滚动,制造与金属端子的触碰或改变光线行进的路线,就能产生导通或不导通的效果。滚珠开关目前已有许多不同类型的产品,包括角度感应开关、震动感应开关、离心力感应开关、光电式滚珠开关。以往此类型开关以水银开关为主,把水银(汞)当作触击的元件,但自从各国政府陆续禁用水银后,触击元件就为滚珠所取代。滚珠开关运用层面极广,例如:如胎压监控系统(TPMS)、脚踏车灯、数位相框旋转、 萤幕旋转、视讯镜头翻转、防盗系统等,举凡想侦测物体角度变化、倾倒、移动、震动、旋转的场合,滚珠开关皆适用。
请注意这个模块在感应到小的震动时触发时间会很短,不够驱动继电器,有些人的资料显示可以直接和继电器模块相连,实际运用效果不佳。
4、模块接线(3 线制)
(1)VCC 外接 3.3V-5V 电压(可以直接与 5v 单片机和 3.3v 单片机相连)
(2)GND 外接 GND
(3)DO 小板数字量输出接口(0 和 1)
5、模块实验说明:
(1)不震动时,震动开关呈断开状态,输出端(2脚)输出高电平,红色指示灯(13脚)不亮;
(2)震动时,震动开关瞬间导通,输出端(2脚)输出低电平,红色指示灯(13脚)亮,并延时1秒;
(3)DO输出端与Arduino uno直接相连(指定输入到2脚),通过Arduino uno来检测高低电平,由此来检测环境是否有震动,起到报警作用。
接好 VCC 和 GND,模块电源指示灯会亮,将模块轻放桌面上,调节板上蓝色电位器,直到板上开关指示灯亮,然后稍微回调电位器,让开关指示灯灭,再用手敲打桌面,使震动传感器有震感,此时,开关指示灯再会到亮状态。震动停止,开关指示灯也会灭。这个现象就是说明,震动可以触发模块,从而使开关指示灯点亮。
6、实验程序六:通过串口查看SW-520D倾斜模块的状态
(1)实验开源图形编程(Mind+、Mixly、编玩边学)
(2)实验场景图
五、KY-017水银开关震动传感器模块
1、模块特色:
(1)采用高灵敏度水银开关
(2)比较器输出,信号干净,波形好,驱动能力强,超过15mA
(3)工作电压3.3V-5V
(4)输出形式 :数字开关量输出(0和1)
(5)设有固定螺栓孔,方便安装
(6)小板PCB尺寸:3.2cm x 1.4cm
(7)使用宽电压LM393比较器
2、模块接线:
(1)VCC:接电源正
(2)GND:接电源负
(3)DO:数字量信号输出
3、实验程序七:测试KY-017水银开关震动传感器模块
(1)参考开源代码(Arduino):
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验程序七:测试KY-017水银开关震动传感器模块
*/
// 设置引脚号:
const int buttonPin = 2; // 水银开关输入引脚的编号
const int ledPin = 13; // LED 引脚的编号
// 变量会改变:
int buttonState = 0; // 用于读取水银开关状态的变量
void setup() {
// 将 LED 引脚初始化为输出
pinMode(ledPin, OUTPUT);
// 将水银开关引脚初始化为输入
pinMode(buttonPin, INPUT);
}
void loop() {
// 读取水银开关的状态
buttonState = digitalRead(buttonPin);
// 检查水银开关输入值是否为0
// 如果是,则 buttonState 为 高电平
if (buttonState == HIGH) {
// 打开 LED
digitalWrite(ledPin, HIGH);
}
else {
// 否则关闭LED:
digitalWrite(ledPin, LOW);
}
}
4、实验场景图
5、实验注意事项:
水银对人体及环境均有毒害,故使用水银开关时,请务必小心谨慎,以免破出;在不再使用时,也应该妥善处理。防止水银开关从高处跌落,避免其与硬物接触,或被挤压,导致玻璃泡破裂。
六、ANT-801S 震动开关传感器模块
1、模块特色:
(1)具有TTL电平信号输出指示;
(2)单路信号输出;
(3)输出有效信号为高电平,指示灯熄灭;
(4)灵敏度可调(精调);
(5)震动侦测范围宽,无方向性;
(6)带安装孔,固件安装灵活、方便。
应用范围:可应用于防盗器、电子锁、机械设备振动探测、靶场靶心计数检测等测试振动的场合。
2、模块实验接线示意图
3、实验程序八:使用外部中断功能测试ANT-801S 震动开关传感器模块
参考开源代码(Arduino):
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验程序八:使用外部中断功能测试ANT-801S 震动开关传感器模块
*/
#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++;
}
4、实验场景图