【雕爷学编程】Arduino动手做(04)---震动传感器模块5

news2024/12/22 16:49:26

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、实验场景图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/856785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows和Linux系统上的矢量运算:指令级并行计算SIMD(SSE/VAX)

注:本文的SIMD,指的是CPU指令架构中的相关概念。不涉及GPU端的算力机制。 基本概念 SIMD,Single Instruction/Multiple Data, 即单指流令多数据流,例如一个乘法指令,可以并行的计算8个浮点数的乘法。 SIM…

【Minecraft】Fabric Mod开发完整流程1 - 环境配置与第一个物品

前言 Fabric 是 Minecraft 一款非官方的模组 API,与 Forge mod 不同。它以轻量级和高性能为设计目标,专注于支持新版本的 Minecraft。 Fabric 和 Forge 在各自的加载编译流程上差别很大,所以你很难看见有同时支持二者的 mod,除非做了兼容性处理 Fabri…

新型高速 JavaScript 运行时 Bun 0.7 发布

导读近日,新型 JavaScript 运行时 Bun 正式发布了 0.7 版本,带来了重大的升级。据悉,Bun 是一个配套齐全的 JavaScript 解决方案,集运行时、打包器、转译器和包管理器于一体,追求极致的运行速度。此次更新主要集中在与…

命令提示符之操作基础(Windows)

打开命令提示符 方法一 打开指定文件的文件夹,在路径栏里输入“cmd”,回车,就进入控制台了。默认路径就是指定文件夹的路径。 方法二 打开指定的文件夹,按住shift键,在空白处右击,在菜单栏中选择“在此处打…

基于nodejs+vue+uniapp微信小程序的短视频分享系统

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 3.1小程序端 用户注册页面,输入用户的个人信息点击注册即可。 注册完成后会返回到登录页面,用户输入自己注…

液态金属——究竟是个美丽的概念还是大有可为

液态金属是一种新型的合金材料,在低温熔炼制备工艺下,将不同的金属材料按照一定的配比,通过温度控制使其充分融合,从而形成新的金属材料(也可以理解为表面工艺处理手法)。 液态金属可看作由正离子流体和自由…

electron+vue3全家桶+vite项目搭建【13.1】ipc通信的使用,主进程与渲染进程之间的交互

文章目录 引入IPC通信[主/渲染]进程对应渲染进程>主进程代码测试测试效果 主进程>渲染进程代码测试测试效果 双向通信代码测试测试效果 引入 electron项目常常由一个主进程和多个渲染进程构成,渲染进程之间是隔离的,而所有渲染进程都和主进程共享…

优雅的使用 Dockerfile 定制镜像

一、使用 Dockerfile 定制镜像 1.1、Dockerfile 定制镜像 1.2、FROM 指定基础镜像 1.3、RUN 执行命令 1.4、构建镜像 1.5、镜像构建上下文(Context) 1.6、其他 docker build 的用法 二、Dockerfile 指令 2.1、COPY 2.2、ADD 2.3、CMD 2.4、EN…

IDEWA项目实践——mybatis的一些基本原理以及案例

系列文章目录 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍_intellij 创建scala IDEA项目实践——动态SQL、关系映射、注解开发 文章目录 系列文章目录 1.MyBatis …

基于Tars高并发IM系统的设计与实现-实战篇5

基于Tars高并发IM系统的设计与实现-实战篇5 群聊服务 GroupChatServer 群聊服务既可以接受来自BrokerServer的用户请求,也需要接收来自其他服务的RPC请求;所以本服务提供两套RPC接口:通用RPC接口和专用RPC接口。 通用RPC接口 通用RPC接口主要处理如下…

Jenkins自动化打包脚本

一、背景 jenkins可以设置定时任务打包,也已手动点按钮打包,还可以通过执行http请求打包,今天我们就通过shell脚本,通过curl命令进行jenkins打包。 二、步骤 2.1 在jenkins上构建项目 设置触发器 2.2 通过shell脚本触发远程构…

【RabbitMQ上手——单实例安装5种简单模式实现通讯过程】

【RabbitMQ入门-单实例安装&5种简单模式实现通讯过程】 一、环境说明二、安装RabbitMQ三、用户权限及Virtual Host设置四、5种简单模式实现通讯过程的实现五、小结 一、环境说明 安装环境:虚拟机VMWare Centos7.6 Maven3.6.3 JDK1.8RabbitMQ版本:…

并发——线程的生命周期和状态

文章目录 Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态(图源《Java 并发编程艺术》4.1.4 节)。 线程在生命周期中并不是固定处于某一个状态而是随着代码的执行在不同状态之间切换。Java 线程状态变迁如下图所示&am…

点对点协议PPP

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。PPP协议是因特网的正确标准。 基本格式: PPP协议是数据链路格式。格式如下: 标志(Flag)字段: PPP的定界符,取值为0x7E 地址(Address)字段: 取值为0xFF&…

多语言自动翻译海外跨境电商独立站源码开发

要搭建一个多语言自动翻译的海外跨境电商独立站,需要进行以下步骤: 1. 选择合适的开发语言和框架:根据自己的技术实力和需求,选择适合的开发语言和框架。 2. 设计数据库结构:根据电商的业务需求,设计数据…

【CHI】架构介绍

Learn the architecture - Introducing AMBA CHI AMBA CHI协议导论--言身寸 1. AMBA CHI简介 一致性集线器接口(CHI)是AXI一致性扩展(ACE)协议的演进。它是Arm提供的高级微控制器总线架构(AMBA)的一部分。…

电源控制--对数与db分贝

在控制理论中,"db"通常表示分贝(decibel)的缩写。分贝是一种用于度量信号强度、增益或衰减的单位。 在控制系统中,分贝常用于描述信号的增益或衰减。通常,增益以正数的分贝值表示,而衰减以负数的…

C语言——九九乘法表

//九九乘法表 //用程序做一个九九乘法表 #include<stdio.h> int main() {int i,j,result;printf("\n");for(i1;i<10;i){for(j1;j<i;j){resulti*j;printf(" %d*%d%-d",i,j,result);}printf(" \n");}}

成集云 | 畅捷通采购单同步至钉钉 | 解决方案

源系统成集云目标系统 介绍 畅捷通是一家专业的金融科技公司&#xff0c;致力于为投资者提供便捷、高效的金融服务。通过畅捷通T的交易方式&#xff0c;投资者可以更加灵活地进行买卖交易&#xff0c;并且在交易完成后即可获得结算款项&#xff0c;无需等待T1的结算周期。 钉…

利用multiprocessing实现多线程,并实现多个参数传递函数的多并行

前言 利用多线程一般来说都是有 一定的大数据需求。 比如一个函数可能被不断的调用很多次 一般来说我们会使用for循环&#xff0c;但是为了节省时间&#xff0c;我们采用多线程的方式来解决这个问题 show you code 单参数输入 举了两个例子&#xff0c;一看便知 func为我们的函…