【雕爷学编程】Arduino动手做(54)---大按键微动按钮模块3

在这里插入图片描述

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验五十四:按键模块 电子积木轻触开关 大按键微动按钮 兼容arduino 树莓派

在这里插入图片描述
程序四:开源仿真编程(Linkboy V4.2)

在这里插入图片描述
程序五开源图形编程(Mind+、编玩边学)

在这里插入图片描述

程序六开源图形编程(Mind+、编玩边学)

在这里插入图片描述
实验结果
未按下开关时,板载13脚输出低电平,板载LED熄灭;按下开关时,板载13脚输出高电平,板载LED点亮,实现了按键开关模块最基本的点动开关功能。

知识点:点动开关(Jog switch)
点动是相对于自锁而言。点动开关的特点就是,按下去后负载工作,松手后开关弹回(开关能自动复位),负载停止。通俗点讲就是按下开关动,松开就停点动是电动机控制方式中的一种。点动,由于在这一控制回路中没有自保,也没有并接其它的自动装置,只是按下控制回路的启动按钮,主回路才通电,松开启动按钮,主回路就没电了。

LED灯(LED lights)
LED灯是一块电致发光的半导体材料芯片,用银胶或白胶固化到支架上,然后用银线或金线连接芯片和电路板,四周用环氧树脂密封,起到保护内部芯线的作用,最后安装外壳,所以 LED 灯的抗震性能好。LED(Light Emitting Diode),发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED灯发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。LED可以直接发出红、黄、蓝、绿、青、橙、紫、白色的光。

程序七:利用按键开关模块自锁控制板载LED(开发板D13脚)
实验原理:不使用Arduino内置的上拉电阻,而是用电子器件构造一个外置下拉电阻环境(使用下拉电阻按键开关模块),实现双稳态的自锁开关功能。通过2号引脚判断按钮释放按下,按钮没按下时,2号引脚始终接受低电平信号,按钮按下时,接受到高电平信号。每当按钮按下时,反转板载LED的状态。

实验参考开源代码(Arduino):

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)程序七:通过按键开关模块,自锁(双稳态)控制板载LED灯的亮灭使用:下拉电阻按键开关模块接线:按键开关接D2
*/void setup() {pinMode(LED_BUILTIN , OUTPUT);    //使用板载LED作为控制对象.
}void loop() {if (HIGH == digitalRead(2))  //如果按钮2按下
{    digitalWrite(LED_BUILTIN , LOW == digitalRead(LED_BUILTIN)   ?  HIGH  : LOW );//则反转 LED的状态delay(600);}
}

程序八开源仿真编程(Linkboy V4.2)
注:这里需使用上拉电阻按键开关模块

在这里插入图片描述

程序九开源图形编程(Mind+、编玩边学)
注:这里需使用上拉电阻按键开关模块,并接入A0脚。

在这里插入图片描述

知识点:自锁开关(Self-locking switch)
分机械自锁和电路自锁,机械自锁时,按钮按下去后即使松开,它也不弹回,这时负载一直工作。再按一下按钮,它就弹出,负载停止工作。电路自锁,按钮按下后,负载工作,松手后,按钮虽然弹出,但负载仍然工作,只有再按一下按钮,负载才停止工作。本实验实现了电子自锁开关的功能。

程序十:按键消抖控制LED亮灭(开发板D13脚)
实验说明:当你按下按钮的时候,可能期待的结果就是从1到0(从上拉电阻到按钮按下)的变化。但是实际操作起来可能会跟你想象的不太一样。若没有消除抖动的话,LED的开关就取决于抖动的次数是奇数还是偶数,存在偶然性。若使用延时消抖动,加了延时之后,200ms之内不会发生任何事,这么长的时间,无论抖动多少次都足够。使用按键开关切换LED的亮暗。也就是:按下按钮时,LED被点亮并保持长亮,若再按一次按钮,则关闭LED。还有一个有趣的副作用:如果按钮按住不松的话,LED会闪烁。

实验参考开源代码(Arduino):

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)程序十:按键消抖,自锁控制LED亮灭(开发板D13脚)使用:上拉电阻按键开关模块接线:按键开关接D2
*/int buttonPin = 2;  // 定义按键的针脚号为2
int ledPin = 13;  //定义LED输入针脚号为13号针脚
int ledValue = LOW;void setup() {pinMode(buttonPin, INPUT_PULLUP);pinMode(ledPin, OUTPUT);
}void loop() {if (digitalRead(buttonPin) == LOW){ledValue = !ledValue;  //判断当前按键是否为按下状态digitalWrite(ledPin, ledValue);delay(200);  //延时消抖}
}

程序十一开源仿真编程(Linkboy V4.2)
注:这里需使用上拉电阻按键开关模块

在这里插入图片描述
知识点:按键消抖(removing jo ggle for push button)
通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。

在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片机处理的速度在“微秒”级,而按键抖动的时间至少在“毫秒”级。单片机如果在触点抖动期间检测按键的通断状态,则可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,从而引起误处理。因此,为了确保单片机对一次按键动作只作—次响应,就必须考虑如何消除按键抖动的影响。

在这里插入图片描述

抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。按键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。

常用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。软件消抖的基本原理是:在检测到有按键按下时,不是立即认定此键已被按下,而是执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍然保持闭合状态电平,若仍然保持,则确认该键真正被按下。

在这里插入图片描述

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

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

相关文章

华为手机相册怎么镜像翻转_手机视频剪辑软件怎么制作电子相册_

2020年11月09日 10:25 作者:黄页 编辑:黄页 生活中我们经常会利用手机把身边的美好事物拍摄下来,用以记录生活中的点点滴滴。然而你是否想过将这些照片以动态的形式展示给身边的亲朋好友,让图片“动”起来呢?下面就教你手机视频剪…

华为堡垒机_浪潮无线分析,华为云堡垒机

预期结果步骤2在第6次输入错误用户名/密码时,页面无法正常打开,且被测设备有相关日志记录。测试结果口通过口部分通过口未通过口未测试备注4.2.16敏感数据泄密防护项目:Web攻击防护分项目:敏感数据泄密防护用例编号:版…

华为手机设置页面黑色_华为手机微信猫和老鼠主题皮肤怎么设置 ?超个性主题等你来设置!...

阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享,完全是免费订阅,请放心关注。 …

华为手机大小尺寸一览_超实用!3招教你用华为手机玩转类型学摄影!

怎么样把照片发朋友圈最吸睛? 每个人都有展示图片的喜好和想法 但往往按照系列发一整组照片,容易收获更多点赞 ▼ 像这样我们常看到的系列图,有一个学名 叫做 “摄影类型学” 名字听起来有没有觉得很高级 但是操作起来却并不难 今天我们就来讲…

学以致用:python面向对象和PyEcharts的完美混合技

文章目录 学习目标数据案例分析数据内容需求分析参考代码data_define.pyfile_define.pymain.py 学习目标 使用面向对象思想完成数据读取和处理基于面向对象思想重新认知第三方库使用(PyEcharts) 数据案例分析 数据内容 1月份数据是普通文本,使用逗号分割数据记录&…

【力扣每日一题】2023.8.12 合并K个升序链表

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个链表数组,数组里的链表都是升序的,让我们合并这些链表,要求合并之后还是升序的。 最简…

【华为】IS-IS协议及配置

概念 中间系统到中间系统IS-IS(Intermediate System to Intermediate System)属于内部网关协议IGP (Interior Gateway Protocol),用于自治系统内部。为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分…

华为机试_HJ27 查找兄弟单词【中等】

目录 描述 输入描述: 输出描述: 解题过程 提交代码 学习代码 代码一 收藏点 描述 定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字…

NR700 —基础知识

01 中国5G频段分布及700M频谱 中国运营商频段分布: 不同频段的无线电波的特征: 700M网络因其低频特性,有着极佳的覆盖能力和穿透能力,但同时相对运营商已有的高频网络有着明显的性能差距。因此700M网络更适合用于底层网络深度覆盖…

大数据Flink(六十一):Flink流处理程序流程和项目准备

文章目录 Flink流处理程序流程和项目准备 一、Flink流处理程序的一般流程

又一款 IDEA 全家桶 神器 ja-netfilter-all 插件

又一款 IDEA 全家桶 神器 ja-netfilter-all 文章目录 许可证代码:许可证服务器:新的:idea vmoptions 配置验证 ja-netfilter 是否配置成功出现如下 日志信息 为 配置成功 提示 临时码总结 C站下载地址: https://download.csdn.net…

global::System.Runtime.Versioning.TargetFrameworkAttribute 特性重复

visual studio code 反编译 报错 global::System.Runtime.Versioning.TargetFrameworkAttribute”特性重复 在 .csproj文件内添加 <PropertyGroup><GenerateAssemblyInfo>false</GenerateAssemblyInfo><GenerateTargetFrameworkAttribute>false</G…

Load balancer does not have available server for client

com.netflix.client.ClientException: Load balancer does not have available server for client: ***** 在使用openfeign作为负载客户端调用时&#xff0c;抛出异常: 解决办法&#xff1a; 在application.yml配置文件中添加 ribbon:eureka:enabled: true

无法安装程序包“xx”。你正在尝试将此程序包安装到目标为“.NETFramework,Version=v4.0”的项目中,但该程序包不包含任何与该框架兼容的程序集引用或内容文件。

打开一个之前的项目并重新启动时&#xff0c;无法正确生成&#xff0c;提示CefSharp没有安装&#xff1a; error CS0246: The type or namespace name CefSharp could not be found (are you missing a using directive or an assembly reference?) 于是乎卸载之前的版本重新…

系列二、idea启动springboot工程报错

一、报错信息 二、解决方法 2.1、打开工程.idea目录的workspace.xml文件 2.2、找到PropertiesComponent标签 2.3、添加一行 2.4、添加的内容 <property name"dynamic.classpath" value"true" />

关于SpringCloud-zuul 报错:Caused by: com.netflix.client.ClientException: Load balancer does not have ava

描述 最近在学习SpringCloud微服务&#xff0c;使用路由网关zuul;在使用过程中遇到问题报错了&#xff1b; Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: api1at com.netflix.loadbalancer.LoadBalancerContex…

Spring Cloud Eureka注册不成功

下面我介绍我总结的&#xff08;主要2点&#xff09; 1.启动类未加注解 服务注册中心 EnableEurekaServer 服务提供 EnableEurekaClient 2.检查自己pom依赖是否导入错误 <!--容易倒错依赖--> spring-cloud-netflix-eureka-server <!--正确依赖--> spring-cloud…

win10怎么安装 .net framework 3.5

复制链接&#xff1a;http://download.windowsupdate.com/d/msdownload/update/software/updt/2015/11/microsoft-windows-netfx3-ondemand-package_421a25bf409692045d1cbfab0d99f8def8d95d3f.cab 将下载的文件复制到复制到 C 盘的 Windows 文件夹 后请在“命令提示符&#x…

如何安装.net framework?Win11安装net framework的方法

net framework是一个系统组件&#xff0c;给部分应用软件提供功能上的支持&#xff0c;因此如果没有安装该组件&#xff0c;那么将会出现无法正常运行的情况。那么应该如何安装.net framework呢&#xff1f;下面我们一起来看看小编带来的Win11安装net framework的方法吧。 ​还…

Error creating the Web Proxy specified in the ‘ system.net/defaultProxy‘ configuration section.

出现这种问题会有很多中原因。比较常见的有3中情况&#xff1a; 1. 权限问题。把用户名加入到管理员组试试。 2. 网络问题。重置网络连接&#xff1a;用管理员帐户登录CMD&#xff0c;然后输入netsh winsock reset重启试试看。 3. 系统问题。重装系统试下 可以试试下…