51单片机玩转物联网基础篇05
前言
本节我们开始学习如何使用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; // 定义控制继电器IOsbit 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时候,控制P2^0为低电平,驱动继电器工作,绿色LED灯点亮,当按下按键2时候,控制P2^0为高电平,LED灯熄灭。
三、运行
将上述程序生成的hex文件烧录到板子中,然后按下Key1按键,效果如下图:
至此,我们完成了通过51单片机控制继电器工作的任务,注意继电器输出端可接220V电路控制家用电器,本文使用5V LED灯电路模拟。
一叶孤沙出品:一沙一世界,一叶一菩提
硬件获取:扩展链接中了解更多