前言
本节我们开始学习如何使用51单片机控制继电器,有了继电器,我们可以使用单片机输出的低电平控制高电平期间工作,比如继电器接到220V用电器上,可通过单片机智能控制用电器。
一、基础知识
1.继电器简介
继电器是具有隔离功能的自动开关元件,实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一,继电器可以分为很多种,本实验使用光耦隔离继电器,实物图如下:
2.继电器控制原理
继电器原理图如下所示:
从上图可知,给继电器模块供电后,红色LED灯就会被点亮,当给IO引脚输入底电平后,单片机IO输出的电流经过S8550放大后,驱动继电器SRD-05V,继电器中5、3常闭开关断开,5、2常开开关关闭,同时绿色LED灯点亮,P1端口引脚2为COM端口,1为NC,3为NO。
3.硬件电路
硬件电路连接原理图如下所示:
事物连接情况如下所示:
其中,VCC GND P2^0 控制继电器输入,继电器输出需要单独提供电源,可以使用220V供电,然后回路通过继电器输出端口,分别接NO和COM端口,如此继电器输出控制相当于一个开关,可以控制输出电路的通断。
二、实例
1.创建工程
将上一节工程复制出来,并修改名字为04-继电器
2.修改程序
#include <reg52.h>
sbit Relay = P2^0; // 定义控制继电器IO
sbit key1 = P2^4;
sbit key2 = P2^5;
void delay_ms(int ms)
{
int i = 0, j = 0;
for (i = ms; i > 0; i--)
{
for (j = 110; j > 0; j--);
}
}
int main(void)
{
Relay = 1;
while(1)
{
if (0 == key1 || 0 == key2)
{
delay_ms(10);
if (0 == key1)
{
Relay = 0;
}
if (0 == key2)
{
Relay = 1;
}
}
delay_ms(5);
}
}
上述程序实现当按下按键1时候,控制P20为低电平,驱动继电器工作,绿色LED灯点亮,当按下按键2时候,控制P20为高电平,LED灯熄灭。
三、运行
将上述程序生成的hex文件烧录到板子中,然后按下Key1按键,效果如下图:
至此,我们完成了通过51单片机控制继电器工作的任务,注意继电器输出端可接220V电路控制家用电器,本文使用5V LED灯电路模拟。
四、结语
如您在使用过程中有任何问题,请加QQ群进一步交流。
QQ交流群:906015840 (备注:物联网项目交流)
源码获取:扫描下方二维码,关注公众号,回复"51单片机"即可
硬件获取:淘宝搜索店铺"小驿物联"。
一叶孤沙出品:一沙一世界,一叶一菩提