5.2 综合案例- 继电器控制

最新案例教程点击下方链接跳转,优快云已停止更新

点击跳转HaaS506官方最新案例







1.继电器控制

(1)案例说明

  • 案例通过4个触摸按键分别控制4个继电器通断(线路麻烦,并联电路比较多)。

  • 触摸按键原理类似于按钮开关。
    在这里插入图片描述

  • 继电器是利用电磁原理工作的一种开关元件。利用电磁原理使衔铁吸合或断开,以实现其触点控制电气线路中的通或断。

在这里插入图片描述

(2)接线(M320 GPIO19引脚不受控 需要更换其他引脚)

 本案例使用了一块两路高电平触发的继电器模块,其触发引脚分别接到了GPIO31和GPIO32。使用了两块一路的低电平触发的继电器模块,其触发引脚分别接到了GPIO19和GPIO20上。使用了4个触摸按键,按键引脚分别接入到了GPIO18、GPIO17、GPIO16、GPIO15上,来实现继电器开和闭。


注意:由于开发板上的io口的驱动能力不同,以5V光耦继电器模块为例,当前案例中的由高电平触发的继电器模块的触发引脚接入到了排母中的IO口上了,低电平触发的继电器模块的触发引脚接入到了 非排母处的IO口上了。

在这里插入图片描述
在这里插入图片描述

(3)代码

  • main.py

import utime as time
from driver import GPIO
#中断回调函数
def key1_callback(args):
    global flag1
    if flag1==1:
        led1.write(1)
        relay_1.write(1)
        flag1=2
    elif flag1==2:
        led1.write(0)
        relay_1.write(0)
        flag1=1 
    print("level of led1:{},relay_1:{}".format(led1.read(),relay_1.read()))    
    key1.disableIrq()
    key1.clearIrq()

def key2_callback(args):
    global flag2
    if flag2==1:
        led2.write(1)
        relay_2.write(1)
        flag2=2
    elif flag2==2:
        led2.write(0)
        relay_2.write(0)
        flag2=1 
    print("level of led2:{},relay_2:{}".format(led2.read(),relay_2.read()))        
    key2.disableIrq()
    key2.clearIrq()

def key3_callback(args):
    global flag3
    if flag3==1:
        led3.write(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值