有几台关键机器或昂贵的设备会因振动而损坏。在这种情况下,需要振动传感器来确定机器或设备是否正在产生振动。如果使用适当的传感器检测振动,则识别连续振动的物体并不是一件容易的事。有几种类型的振动传感器可以在市场上买到,可以通过感测加速度或速度来检测振动,并且可以提供出色的结果。然而,在使用加速度计的情况下,这种传感器太昂贵。加速度计非常敏感,可用于制作地震检测器电路。但是,很少有专用且便宜的传感器可用于仅检测振动,其中一种振动传感器是SW-420,我们将与Arduino Uno进行交互。
因此,在此项目中,基本的振动传感器模块与流行的Arduino UNO相连,并且每当振动传感器检测到任何振动或冲击时,LED就会开始闪烁。
振动传感器模块SW-420
这是一个SW-420振动模块,其工作电压范围为3.3V至5V。该传感器使用LM393比较器检测阈值点以上的振动,并提供数字数据,逻辑低或逻辑高,0或1。在正常操作中,传感器提供逻辑低,当检测到振动时,传感器提供逻辑高。模块中有三个外围设备,两个LED,一个用于电源状态,另一个用于传感器的输出。此外,还有一个电位计,可以进一步用来控制振动的阈值点。在此项目中,我们将使用5V为模块供电。
我们在使用ATmega8微控制器的防盗警报系统中使用了相同的传感器。倾斜传感器也可用于检测突发事故。
所需组件
- Arduino UNO
- SW-420振动传感器模块
- 5mm LED(任何颜色)
- 跳线(连接线)
- USB电缆上传程序
Arduino振动传感器电路图
下面给出了将振动传感器与Arduino uno接口的示意图 。
LED连接在D13引脚上。该模块使用Arduino中可用的5V引脚供电。地线和5V引脚用于为Arduino供电,而A5引脚用于从振动传感器获取数据。
该电路的构造是将SW-420模块和LED与Arduino Uno连接。
Arduino Uno振动传感器编程
对Arduino UNO编程以连接振动传感器不需要太多的工作,因为只需监视输入引脚即可得出结论。最后附有完整的代码和工作视频。
最初包含头文件。由于本教程是使用Arduino扩展的Eclipse IDE编写的,因此包含了arduino标头。该草图也适用于Arduino IDE,并且在Arduino IDE中使用此草图时,无需包含标头。
#包括
此处定义了两个用于ON和OFF的宏。
#define ON 1 #define OFF 0
以下语句用于集成LED和振动传感器。振动传感器连接到引脚A5。还使用内置LED,该LED直接在电路板上连接到引脚13。5mmLED也连接到引脚13。
/ * *引脚说明 * / int shock_Sensor = A5; 内置LED = 13;
声明了两个整数,传感器将在其中存储当前输出和以前的输出,这些整数将进一步用于检测振动是否正在发生。
/ * *程序流说明 * / int present_condition = 0; int previous_condition = 0;
声明为外围连接的同一引脚,配置了引脚的方向。传感器引脚作为输入,LED引脚作为输出。
/ * *引脚模式设置 * / void setup(){ pinMode(vibration_Sensor,INPUT); pinMode(LED,输出); }
编写了一项功能来使指示灯闪烁两次。可以通过调整延迟值来配置延迟。
void led_blink(void){ digitalWrite(LED,ON); 延迟(250); digitalWrite(LED,OFF); 延迟(250); digitalWrite(LED,ON); 延迟(250); digitalWrite(LED,OFF); 延迟(250); }
在循环功能中,比较当前条件和先前条件。如果这两个不相同,则指示灯开始闪烁,直到两个都相同为止。在启动时,两个变量保持为0,并且在程序启动期间LED保持关闭状态。当有一些virbraion, present_condition 变量变为1,LED指示灯开始闪烁。再次,当振动停止时,两个变量都变为0,LED停止闪烁。
void loop(){ previous_condition = present_condition; present_condition = digitalRead(A5); //从Arduino的A5引脚读取数字数据。 如果(previous_condition!= present_condition ){ led_blink(); } else { digitalWrite(LED,OFF); } }
这样就完成了带有振动传感器的arduino UNO的编程。最后一步将是测试整个设置。
测试Arduino振动传感器电路
该电路不需要额外的面包板。可以使用Arduino UNO板简单地对其进行测试。当振动传感器被碰或其状态改变时,将监视LED。有振动时,led将闪烁并连接到Arduino UNO的13针。如果振动传感器不起作用,请检查连接和电源。避免传感器和微控制器之间的连接松动。
因此,这就是将振动传感器与Arduino UNO接口的方式。如果您有任何疑问或建议,可以通过论坛与我们联系,也可以在下面发表评论。