开关模块的使用方法讲解,学会5点,让你轻松成专家
全国青少年机器人等级考试三级课程第三课--开关模块的使用方法
1、 目录
开关简介开关模块的原理开关模块的接法开关模块使用实例开关模块进阶一:自锁的实现开关模块进阶二:一键多控开关是我们生活中使用最多的控制原件,生活中所有的用电器都需要开关来控制其状态,今天我们就学习电路中如何使用开关模块。
开关模块实物图
2、 开关简介
开关是一个可以改变电路状态、使电流中断或导通的元器件。开关虽然在生活中非常普遍但却并不简单,不同用途和不同种类的开关特别多,我们这里就不一一介绍,在这里我们只从开关模块中使用的"点按式轻触开关"。
点按式轻触开关内部结构
如图,这就是点按式轻触开关内部结构,首先这个开关是轻触式,只需要很小的力量就可以按动,
轻触:不必用多大力量接触就可以改变开关接点的状态。
其次我们模块所用的"点按式轻触开关"是没有自锁功能的。
自锁:开关能自行锁定开关的状态。
生活中使用的电灯开关就是一个带自锁功能的开关 ,当我们打开灯后,开关就保持闭合状态,灯也会一直亮着;当我们关灯后,开关就保持断开状态,灯也会一直熄灭。
下图是点按式轻触开关尺寸和电原理图:
点按式轻触开关尺寸和电原理图
从电原理图可以看到,开关的4个引脚,1和2是,3和4连通的,所以在使用时,要接在1和3或2和4,如果接在1和2或3和4就起不到作用了。
辨别开关引脚,最好使用万用表电阻档测量,电阻为零的就是1、2或3、4脚,电阻无穷大的就是1、3或2、4脚;还可以用观察的方式,把开关翻过来,看背面有一个凹槽,凹槽两边分别是1、2和3、4脚。
3、 开关模块的原理
在我们的实验中,开关并不是简单的使用开关的通断状态来控制电流,我们其实是将开关作为一个输入元件,通过检测开关的状态,最为程序的判断依据。
在实验电路中我们通常使用上拉电路和下拉电路方式使用开关。
上拉电路
如图,在电路中我们使用一个10千欧的电阻作为上拉电阻,这样在开关闭合时,电路不会短路。
上拉电路
在开关未按下(未闭合状态)时:S端(输入端)的电势和VCC(电源正极)端的电势一致,对地电压为5V,为高电平状态。
在开关按下(闭合状态)时,S端(输入端)的电势和GND(接地)端的电势一致,对地电压为0V,为低电平状态。
下拉电路
图在电路中我们使用一个10千欧的电阻作为下拉电阻,这样在开关闭合时,电路不会短路。
下拉电路
在开关未按下(未闭合状态)时:S端(输入端)的电势和GND(接地)端端的电势一致,对地电压为0V,为低电平状态。
在开关按下(闭合状态)时,S端(输入端)的电势和VCC(电源正极)端的电势一致,对地电压为5V,为高电平状态。
错误电路一
如图,这种接法中,一旦开关闭合后,就会造成短路,从而造成元器件损坏。
错误电路一
错误电路二
错误电路二
在此电路中,当开关状态为非闭合状态时,这时候S端即不和电源正极相连,也不和电源负极相连,S端处于悬空状态,所以它的电平值并不确定,这样就无法通过判断S端的电平来确定开关的状态,所以在上拉电路和下拉电路中,S端的点位都是被钳制成一个确定的值。
目前有些芯片带有内部上拉电阻,可以简化电路,具体使用这些芯片时需要参考具体芯片的使用手册。
注意:因为开关按下时会发生抖动,抖动过程中按键开关会在短时间内通断多次,因此如果检测时间间隔过短,将会检测到多次通断,为防止抖动,需要增加间隔时间。如延时100ms再检测。实际的例子也很多,比方说公交车刷卡,如果不间隔一段时间再检测,有可能你刷一次卡,就被扣掉十几次费。
4、 开关模块的接法
元件实物图
在实验中,需要将S端(输入端)接在arduino板的任意一个数字输入管脚,这块板用黄色标识的0-13管脚都可以(注意0号口和串口通讯公用,尽量不要占用)。V接口直接在板载电源正极即可(红色标识),G端为接地端,接在板载的GND管脚(黑色标识)。
也可以使用套件里的专用连接线,如下图,连接7号管脚。
电路连接实物图
5、 开关模块使用实例
使用开关控制小灯实验:
实验效果:按下按键开关,灯亮;松开按键开关,灯灭。
实物连接图
实物连接图
电原理图
电原理图
代码图
代码图
6、 开关模块进阶使用一:自锁的实现
如果我想实现按一次电键开关,小灯一直亮;再按一次电键开关小灯熄灭,并保持熄灭状态。
这就是所谓的自锁功能。
代码图
代码中加了一个状态变量lock,按一次按键改变一次LOCK的状态,从而实现自锁功能,注意代码中延时200MS就是为了按键防抖。
用24G模块NRF24L01做一个无线遥控开关,远程控制很方便
大家好,我是阿乐,今天教大家做一个无线遥控开关。
如下示意图:
我想要实现的功能是,遥控端输出一个高电平或者低电平,接收端也能同时输出一个高电平或者低电平,这样就能隔空控制很多东西,也不用拉线布线。
手头正好有2.4G模块,型号是NRF24L01,那我们就用它来实现。这个模块也不算贵,如下图:
这种外接胶棒天线带PA放大的也就十块钱左右,号称距离可达1100米,当然实际我也没去试过。
然后更常见更便宜的是板载天线的,体积也更小,价格也就四五块钱,非常值得入手玩玩。实物如下图:
今天我以这个外接胶棒天线带PA放大的NRF24L01作为例子来给大家讲解。先来讲讲它的引脚,把它反过来,令光滑没有元器件的一面对着我们,这面就是背面,它的正面有密密麻麻的小小个的元器件。示意图如下:
将模块翻过来,看到它的背面,它有两排排针,如下图:
最上面两个排针,左边是电源输入引脚,可输入3V-3.6V的直流电,推荐是用3.3V。过来右边是电源地,GND,是电源负极。下来第二排两个排针,左边是CSN,右边是CE。下来第三排两个排针,左边MOSI,右边是SCK。最后一排两个排针,左边是IRQ,右边是MISO。
接下来给大家解释一下这些引脚对应的功能:
CSN,它是Chip Select Not的缩写,是接收端选择引脚, Not代表低电平有效。
CE是Chip Enable的缩写,是发射/接收状态选择引脚。
MOSI是Master Out Slave In的缩写,主出从入,是控制端输出,接收端输入引脚,通常简写成MO。
SCK是Serial Clock的缩写,是时钟信号脚。
IRQ是Interrupt Request的缩写,是中断请求脚,今天我们不会用到这个脚。
MISO是Master In Slave Out的缩写,主入从出,是控制端输入,接收端输出引脚,通常简写成MI。
单独的这个NRF24L01模块自己还不能完成通讯去收发数据,我们需要一个单片机通过编程给它设置,一个当做发射端,另一个当做接收端,这样才能用来一对一通讯收发数据。当然它也可以用来设置一对多通讯。
这样子的话我们就会需要两个NRF24L01模块,两个单片机。单片机我用Arduino pro mini,如下图:
上图中的这个小东西,它相当于一个小开发板,用它来控制设置NRF24L01模块,别人已经写有很多库了,我直接调用就可以,就不用去底层设置寄存器,不用什么都亲历亲为,可以省下很多时间,这对于初学者来说很容易上手,可以快速开发,这个就是用Arduino的好处。一会儿我们直接用别人写好的库,直接修改例程就得了。
好,看硬件连接,我简单画了个接线图,如下图:
Arduino和NRF24L01模块的连线,无论发射端还是接收端都是这样连。
看到下面发射端的接线图:
在发射端我增加了一个按键,当按键没按下时,Arduino的D3号脚检测到的是低电平,因为直接接一个10K电阻到负极了嘛,所以是0。当按键按下时,接通5V的直流电到D3号端口,D3号端口又对地接一个10K电阻,所以在端口这里得到的是高电平,是1。
好,看接收端,如下图:
我在接收端的Arduino D3号脚接了一个4.7K欧姆的电阻和8550三极管,用来驱动蜂鸣器。当我们从D3给一个低电平的时候,蜂鸣器就会响起来,蜂鸣器负极的100Ω的电阻是限流电阻。
接下来讲一下编程思路:当发射端检测到我按下这个按键时,也就是检测到一个高电平时,就把这个高电平的数据发送到接收端,接收端接收到这个高电平的数据后就输出一个低电平,驱动蜂鸣器响起来,否则输出一个高电平,蜂鸣器不响。在这里不详细讲2.4G模块的具体设置方式,我只讲整体程序的实现过程。
在开始编程前我们需要下载一个库,就是别人编好的函数与例程,到时候方便我们直接调用。这个库可以自己到github去下载,也可以私聊我要,库名称是RF24-master,下好后把它丢到我们安装Arduino这个软件的根目录下的libraries文件夹中就可以了。
好,看程序,下图是发射端的程序:
红色方框1中#include是我们要引用的程序库,把它们包含进来。红色横线2是定义Arduino3号引脚把它命名为buttonPin,后面当出现buttonPin的地方说明是要控制3号引脚。往下,红色横线3是定义一个整型变量buttonState,用来存放按键的键值。
看到下面这张图片:
红色横线1的语句是把7脚设置为CE脚, 8脚设置为CSN脚。红色横线2是设置通讯通道地址00001,接下来红色方框中的是初始化函数,先设置3脚为输入引脚,启动nRF24模组,设定通道地址。在这里多说几句,nRF24L01模块在2.4GHz~2.525GHz这个频带上,在这个频带上划分了0-125個频道,我们通过程序可以自由设定使用的频道,只要发射端和接收端所处的频道相同就可以了。然后每个频道内可容纳6个通道(pipe),每个通道可对应一个发射器;一个接收器可接收来自6个发射器的讯号。一个频道内,至少要有一个发射器和一个接收器,才能连线通讯。发射器可以位于0-5任一通道,并且指定一个唯一的地址值。接下来是设定广播功率,设置功率为RF24_PA_MIN,然后停止侦听,就是设定成发射模式。
如上截图,在循环函数中,读取3号脚的状态,使用radio.write()函数将数据发送出去。发射端的完整程序就是这样,内容并不多。验证一下,没问题后选好板子的对应型号,选端口,上传就完成发射端的程序写入。
接下来讲讲接收端的程序,如下图:
前面的设置基本是一样的,不同的是接收端定义3号脚是用来控制蜂鸣器,同样也定义一个整型变量buttonState,用来存放收到的按键的键值。这里设置引脚和通道地址跟前面一样的,发射端和接收端必须处于同一地址。
如上截图,在初始化函数中,将3脚设置为输出引脚,将3脚置为高电平,启动NRF24模组,设定通道地址,设定广播功率。
如上截图,在循环函数中,开始监听无线广播,检查是否有可用的数据传输过来,当有数据可用时,我们将读取它,将其保存到buttonState中去,if函数判断,如果发射端按下按键了,则输出低电平,驱动蜂鸣器响起;否则,如果发射端没有按下按键,则保持高电平,蜂鸣器不响。这就是接收端的整个程序,也验证一下,没问题后选好板子的对应型号,选端口,上传就完成了。
最后看一下演示效果图:
在室内测试,信号传输稳定,通讯效果很好;在室外休闲公园里测试,以发射端为圆心,在大概800米空旷(有一些树和景观石的遮挡)的半径内,信号传输依旧稳定,通讯效果也很好,更远的距离没去测试过。
详细视频教程请移步到我的头条主页观看。
好的,我制作这个无线传输开关的作用可不是为了遥控这个蜂鸣器而已,我是想把语音识别模块和这个结合起来,对家里的家电进行远程无线遥控,这样我们离智能生活岂不是又更近了一步?
好啦,本期教程就讲这么多,我们下期再见,拜拜!
相关问答
开关 控制 模块 接线方法?先用斜口钳将线剥好皮,注意不要留有太长线头,避免触碰到。2.以左端开关的L作为火线输入,两个开关的L1和L2对应接线。3.然后将右边开关L接至照明灯另一端,照...
开关模块 工作原理?开关电源就是用通过电路控制开关管进行高速的导通与截止。将直流电转化为高频率的交流电提供给变压器进行变压,从而产生所需要的一组或多组电压!转为高频...
电源 模块 的作用有哪些_住范儿家装官网电源模块,是可以直接贴装在印刷电路板上的电源供应器。分类有很多,如通信用高频开关电源模块,不间断电源模块等。特点是可为专用集成电路(ASIC)、数...
低压压力 开关 如何加输入 模块 ?要将低压压力开关与输入模块连接,可以按照以下步骤进行:1.确保输入模块与低压压力开关的电气参数匹配,例如电压和电流范围。2.将低压压力开关的输出端子与...
什么是智能照明控制 模块 ,可 应用 在什么地方?智能照明模块,分为智能照明开关控制模块和智能照明调光控制模块,是基于总线型的智能照明控制系统中的执行模块,所有需要受控回路的负载线都集中拉回智能照明配...
电磁炉专用 开关 电源 模块 接法?电磁炉电源模块一般有两路输出,一路5V,一路18V,加上地线一共接三根线。电磁炉板上的元件如果不是出现击穿短路,拆不拆无所谓,出现击穿短路的就要拆除。电源...
电磁炉 开关 电源 模块怎样 接线?1.电磁炉电源模块一般有两路输出,一路5V,一路18V,加上地线一共接三根线。2.接线方法:转换开关输入接电火线,火线输出接交流接触器线圈A1,线圈A2接零线。交流...
开关 量采集 模块 原理?开关量输入输出模块是一种能采集和控制输出开关量信号的装置,又称数字量I/O模块。开关量信号通过RS-485总线采集到计算机或由计算机发送相关指令通过模块控制...
压力 开关 怎么接输入输出 模块 ?四根线的消防用的压力开关怎么接线:用万用表测出一对常开点(即4根线组成两对,常开点和常闭点,两根红线应该是相同的),接入模块的X1,X2常开端子即可。另:...
交流接触器的辅助 开关 作用?交流接触器自身带的辅助触点一组为常开触点,一组是常闭触点,这两组触点的开关作用通常是保证交流接触器基本运行功能用的。常开触点是实现交流接触器启动后的...