【GPIO】继电器
下载例程代码: 下载代码 如何使用例程【点击查看教程】
使用一个按键控制继电器的吸合、断开。
继电器简介
继电器是一种电气开关,它使用电磁原理来控制开关的通断。
继电器通常由线圈和触点组成。当线圈通电时,会在继电器内部产生磁场,使得触点闭合或断开,从而实现电路的通断控制。
学习板上的继电器型号:松乐SRD-5VDC-SL-C
这款继电器有3个输出端口,分别是常开、公共、常闭(参考学习板背面丝印),属于单刀双掷开关。
- 当继电器断电时(PB5 输出低电平),公共-常闭接通,而公共-常开断开
- 当继电器通电(PB5 输出高电平),公共-常闭断开,而公共-常开接通
继电器线圈 | 公共-常开 | 公共-常闭 |
---|---|---|
断电 (PB5低) | 断开 | 闭合 |
通电 (PB5高) | 闭合 | 断开 |
如何使用例程
编译并下载程序到学习板,即可看到程序效果:
按下KEY1,继电器状态翻转
LED红灯表示继电器断开,绿灯表示接通
为了更好的测试继电器的效果,可以将某个被控回路接入继电器的输出端,这样就可以通过程序控制该回路的通断。例如控制台灯、风扇等。
⚠️ 注意!高电压可能造成危险,请不要尝试超过36V的电压。
例程讲解
下面介绍了如何自己实现该例程的功能
1、工程配置
分配引脚:在Pinout&Configuration页面,配置如下引脚
将 PB5 配置为 GPIO_Output ,并设置 User label 为 RELAY
将 PA7、PB0 分别设置为 GPIO_Output,并分别设置 User label 为 GREEN、RED
将 PB12 配置为 GPIO_Input,并设置 User label 为 KEY1
2、代码
在main.c的while循环中,实现按键控制翻转继电器。
按键检测消抖 50 ms
继电器受 PB5 控制,输出高电平线圈吸合,低电平断开
翻转后需等待按键释放,否则会连续翻转
while (1)
{
// 按键KEY1按下
if (!HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin))
{
// 消抖 50 ms
HAL_Delay(50);
if (!HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin))
{
// 翻转继电器、指示灯
HAL_GPIO_TogglePin(RELAY_GPIO_Port, RELAY_Pin);
HAL_GPIO_TogglePin(RED_GPIO_Port, RED_Pin);
HAL_GPIO_TogglePin(GREEN_GPIO_Port, GREEN_Pin);
// 等待按键释放
while (!HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin))
{
}
}
}
}