继电器
前言
CyberCAM K230开发板GPIO输出的电平是3.3V的,这是不能直接控制一些高电压的设备,比如电灯(220V)。这时候就可以使用我们常用的低压控制高压模块—继电器。
实验目的
使用按键控制继电器通断。
实验讲解
下图01Studio官方的的继电器模块,左侧低压控制接口主要有供电引脚和信号控制引脚(供电电压一般为3.3V,具体以厂家参数为准)。右侧蓝色为高压部分,可连接220V电器。点击购买>>
提示
建议使用3.3V电平控制的继电器,因为CyberCAM K230开发板GPIO输出为3.3V,使用5V控制的继电器操作不当可能会烧坏开发板。
下图为电器连接示意图(这里连接到IO14),左侧为低压控制部分,右侧为高压控制部分 (接线注意用电安全):
继电器跟前面gpio章节LED的操作方式类似,只需要将模块信号引脚连接到CyberCAM K230开发板的GPIO引脚,然后通过编程控制CyberCAM K230开发板GPIO引脚高低电平变化即可控制继电器,从而控制高压开关通断。
digitalio对象
在CircuitPython中可以直接使用 digitalio(数字 IO)模块编程实现IO输入从而实现按键的输入电平检测。具体介绍如下表:
构造函数
relay=digitalio.DigitalInOut(pin)
参数说明:
pin开发板引脚编号。例:board.PB6
使用方法
relay.direction = value
引脚定义输入/输出。value匹配值如下:
digitalio.Direction.INPUT:输入。digitalio.Direction.OUTPUT:输出。
relay.pull = value
设置上下拉电阻。value匹配值如下:
digitalio.Pull.UP:上拉。digitalio.Pull.DOWN:下拉。
relay.value = value
GPIO输出值。value匹配值如下:
True或1:高电平。False或0:低电平。
更多用法请阅读官方文档:
https://docs.circuitpython.org/en/latest/shared-bindings/digitalio/index.html
在本实验中我们通过按键来实现继电器通断,按一下打开,再按一下关闭,如此循环。代码编写流程图如下:
参考代码
'''
实验名称:继电器
实验平台:CyberCAM
'''
#导入相关模块
import board,time
from digitalio import DigitalInOut, Direction, Pull
#构建继电器对象和初始化
relay = DigitalInOut(board.IO14) #定义引脚编号
relay.direction = Direction.OUTPUT #IO为输出
relay.value = 1 #初始化关闭继电器
#构建按键对象和初始化
switch = DigitalInOut(board.KEY) #定义引脚编号
switch.direction = Direction.INPUT #IO为输入
state = 1 #继电器初始状态,高电平关闭
while True:
if switch.value == 0: #按键被按下
time.sleep(0.01) #延时10ms消抖
if switch.value == 0: #按键被按下
state = not state #状态翻转
relay.value = state #改变继电器状态
#等待按键释放
while switch.value ==0:
pass
实验结果
运行代码,当通过按键控制继电器通断(对应蓝色指示灯亮灭)
