辜渝傧

13037102709

027-87870986

新闻动态

您当前的位置:首页 > 新闻动态 > 行业动态 >

物联网技术区||传感控制器应用之继电器的控制

发布者:    布时间:2020-09-16 17:02:44    点击量:

       任务描述   
       通过编程实现继电器对风扇的启停控制,点击继电器面板上的黑色按键,当点击次数是偶数次,风扇启动;当是奇数次,风扇停止转动。
       知识引入
      1.继电器的概念
       继电器(relay)是一种电控制器件,用来实现弱电控制强电。单片机IO输出的电压较低,一般是3.3V或者5V,输出电流能力有限,因此不能直接用来控制家电或者其他大功率电气,但是可以通过继电器进行控制。单片机的引脚输出高低电平信号给继电器,并用控制继电器的输出端。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
       汽车领域比较常见的继电器有:启动电动机的启动继电器、嗽叭继电器、电动机或发电机断路继电器、充电电压和电流调节继电器、转变信号闪光继电器、灯光亮度控制继电器以及空调控制继电器、推拉门自动开闭控制继电器;玻璃窗升降控制继电器。家用电器:空调继电器主要用于控制压缩机电动机、风扇电动机和冷却泵电动机,以执行相关的控制功能。工业控制继电器主要的控制功能由通用交流继电器完成。通常由按纽或限位开关驱动继电器。继电器的触点可以控制电磁阀、较大的启动电机以及指示灯。
      2.继电器的配置
       继电器的控制与LED的控制类似,都是将对应的IO口P11设置为强推挽输出。P11寄存器如下表4-2所示:

表4-2 P11寄存器的配置
       P1口设定<P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0口>(P1口地址:90H)
P1M1[7:0]
寄存器P1M1地址为91H
P1M0[7:0]
寄存器P1M1地址为92H
I/0口模式
(P1.x如做A/D使用,需先将其设置成开漏或高阻输入)
0 0 准双向口(传统8051 I/O模式,弱上拉),
灌电流可达20mA,拉电流为270uA,
由于制造误差,实际为270uA~150uA
0 1 推挽输出(强上拉输出,可达20mA,要加限流电阻)
1 0 高阻输入(电流既不能流入也不能流出)
1 1 开漏(Open Drain),内部上拉电阻断开。
开漏模式既可读外部模式也可对外输出(高电平或低电平)
如要正确读外部状态或需要对外输出高电平,需外加上拉电阻,否则读不到外部状态,也对外输不出高电压。
        P1.7为开漏,P1.6为强推挽输出,P1.5为高阻输入,P1.4/P1.3/P1.2/P1.1/P1.0为准双向口/弱上拉。
       按照表格寄存器的内容,对P1口配置成推挽输出P1M1寄存器第1位设置为0,寄存器P1M0第1位设置为1。所以配置如下:
P1M1 &= ~0x02;      //设置bit1为0
P1M0 |= 0x02;       //设置bit1为1
       3.实验电路图
       继电器模块采用触点式,此方式可有效降低由于操作频繁,电流瞬间冲击对继电器造成的影响,原理图如下:
 继电器原理图
图4-13 继电器原理图
 
       本任务实现需要节点板、slink通信模块、继电器模块各一个。
       4.关键代码的分析[按键控制继电器]
       本任务实现的关键是对P11引脚进行控制,实现继电器对链接电器的控制。完整代码如下:
#include "WZ01_SN_A_V1.0.h"
#include "Uart3.h"
/*-源码分析-----------------
以上两个头文件功能描述如下:
WZ01_BR13_A_V1.0.h:设备厂家单片机定义的头文件。
Uart3.h:串口3收发以及端口的映射的头文件。
------------------*/
ulong System1MsCnt = 0;             //系统1ms计数器
ulong SystemSecond = 0;
//定时器0初始化
void Timer0Init()
{
    AUXR |= 0x80;                   //定时器0为1T模式
    TMOD = 0x00;                    //设置定时器为模式0(16位自动重装载)
    TL0 = T1MS;                     //初始化计时值
    TH0 = T1MS >> 8;
    TR0 = 1;                        //定时器0开始计时
    ET0 = 1;                        //使能定时器0中断
    EA = 1;                       //使能总中断
}
 
//*功能描述:    定时器0中断服务函数(启动后每1MS进入一次)
void Timer0_ISR() interrupt 1 using 1
{
    static uint counter0=0;
    counter0++;
    System1MsCnt++;
        if(System1MsCnt%1000==0)
    {          
//      BUZZER = !BUZZER;
    }
}
//主函数
void main(void)
{
    char  *ptrTemp = NULL;
    uint  temp=0;  //定义一个整形变量 用来按键按下计数
    uchar buff[20]={0};  //定义字符数组存储串口发送字符串
    SetBit(P1M0,1);        
    ClrBit(P1M1,1);
    DATA_IO1 = 0;        
/*-源码分析-----------------
1.SetBit(P1M0,1);ClrBit(P1M1,1);:
配置P11为强推挽输出,用于控制继电器
1.  DATA_IO1 = 0:
DATA_IO1在”WZ01_BR13_A_V1.0.h”头文件中对应引脚定义为P11,设置为0表示关闭状态。此处是为防止继电器上次断电没有关闭,所以先关闭一次。
------------------*/
    BUZZER_INIT();
    LED_INIT();     
    KEY_INIT();    //设置P46引脚为输入方式
 
    Timer0Init();     //定时器初始化
    OledInit(); //液晶屏初始化
    OledClear();  //液晶屏清屏
    OledSprintf(1,1,"   继电器控制   ");
    OledSprintf(3,1,"关"); 
    LED2_OFF();
    while(1)
    {      
        if(KEY1==0)
    {
DelayMs(20);  
/*-源码分析-----------------
1.KEY1:
在”WZ01_BR13_A_V1.0.h”头文件中对KEY1宏定义为:#define  KEY1 P46,P46对应电路板按键。
当按键按下状态,KEY1取值为0;松开状态,取值为1。
2.  DelayMs(20):
功能为延时20毫秒,目的是进行按键消抖,防止按键在按下或松开的状态下不稳定。此处延时时长可根据实际情况自行修改进行调试。
------------------*/
            if(KEY1==0)       //按键按下
            {
                temp ++;        //按键按下的次数计数
                OledClearHalf(2);
                if(temp%2==0)  //判断按键按下几次 偶数次关闭  奇数次打开
                {
                    OledSprintf(3,1,"关");
                    LED2_OFF();
                    LED3_ON();
                    DATA_IO1 = 0;           //关闭继电器(风扇) 
    BUZZER_ON();
                    DelayMs(100);
                    BUZZER_OFF();
                    OledSprintf(3,1,"关");
                }
                else
                {
                    OledSprintf(3,1,"开");
                    LED2_ON();
                    LED3_OFF();
                    DATA_IO1 = 1;         //打开继电器(风扇)
                    BUZZER_ON();
                    DelayMs(300);
                    BUZZER_OFF();
                    OledSprintf(3,1,"开");
                }          
            }
        }
}
 
       任务实现
      1. 将无线模块插到节点底板上,注意天线朝左,将继电器模块插到节点底板,有白色丝印的角朝右。如图4-12继电器节点模块所示。
继电器节点模块
                            图4-14继电器节点模块
       2.连接节点模块电源,为节点底板通电,此时led1灯点亮状态。
       3.在Keil软件打开随书资源中“源代码\项目四\任务4\WZ01_CZ_A_V1.0.uvproj”继电器工程文件,工程目录如图4-15所示。
                 继电器工程目录结构
图4-15 继电器工程目录结构
       4.在主程序main.c中编辑前面关键代码分析中的源码,完成后保存。
       5.依据本教材项目二中任务二的操作,进行编译选项的设置。
       6.点击编译按钮,成功编译后,在工程目录下output文件夹中生成了”继电器实验.hex”可执行文件。
       7.打开STC-ISP软件,将USB-TTL下载器插上电脑(需要安装驱动),依据本教材项目二中任务三中的操作,选择下载器端口号和刚刚生成的HEX文件。
       8.查看运行结果
       程序下载完毕,OLED 屏幕将显示继电器控制状态“关”同时Slink模块D2指示灯熄灭。当按下底板上的按键时,继电器的状态将打开,同时D2指示灯点亮。再按一次则关闭。
 
       任务小结
       本任务通过编程实现人体红外传感器数据的读取,本任务中主要知识点是理解继电器的工作原理、在程序中对应引脚I/O工作模式,理解延时函数delay()的应用,体会其在实现按键消抖功能的作用。


唯众物联网工程应用实训装置带你快速掌握物联网关键技术

唯众物联网实训室工程应用装置
一、产品名称:物联网工程应用实训装置
二、产品型号和技术规格
1.  产品型号:WZ-IOT-ATP
2.  外型尺寸:
桌面式操作台1个操作台底座1个
3.  电压/功率:220V
4.  配套设备
实训台:
温湿度传感器1个
人体红外监测器1个
高频RFID阅读器1个
光照强度检测器1个
可燃气体监测器1个
RGB三色灯执行器1个
LED显示屏2个
智能语音播放设备1个
继电器1个
 
       物联网教学实训主要用于对物联网核心课程的知识点学习,能够服务于相关课程的实验和实训需求。
       核心课程主要针对学科基础技术的培养,掌握物联网概论,传感器和RFID 等感知设备认知和开发,ZigBee/Wi-Fi/蓝牙等无线网络的配置、维护和开发,物联网互联接入及存储,物联网应用层软件开发,物联网产品整合等基本知识。
       核心课程采用全模块化的实验箱教学产品进行实验,具备优良的教学实验特性:全模块化的设计、开放式的硬件接口、开源的实验代码、完整的教学资源、贴心的售后服务。
       基于ARM Cortex-M4核心的通信网关,支持无线节点模块的双向连接及组网,与配套“可视化编辑器”和“可视化控制器”进行配置和控制。物联网关可以管理不同协议的无线节点模块,并能将多个无线节点模块视作不同设备,将无线节点模块的数据转换为TCP网络通信进行传输,网关同无线节点模块可以互通互联,轻松构建物联网络,共同构成物联应用开发平台。通过本物联网平台,可以迅速降低物联网应用的开发成本和开发时间,开发者即便不会编程,也可以在一两天之内,就迅速使用本平台开发搭建出自己的物联网应用。
       通过电脑PC端可直接以“可见即可得”的方式在此工具上生成不同的设备操作界面,支持指示灯、按键、图片集合、变量视窗、图文链接等五种可视化控件。所有控件的动作都可以直接反应到实际的物联设备(即无线节点模块)上。界面生成后,可以直接导入App使用,而不需要重新编译或安装App。
       通过物联网关、可视化控制器、可视化界面生成器编辑器、万纳模组、物联网传感器/执行器以及配套物联网连件连接件,师生不仅可以完成出基于物联网、远程访问、设备联动等功能的物联网实训项目,还可以迅速开发物联网商业产品\项目,如空气监测仪、电气设备在线监测器等等,并随时实现不同设备间的联动,而这些开发过程,基于本系统的可视化开发工具,可以做到零编程实现物联网应用系统。
       支持家庭常用的各种无线协议(红外、射频),兼容市面绝大多数品牌的空调、电视机、灯光、安防、窗帘等等家电设备,因此可以直接当做一套完备的智能家居系统进行使用,并集成了摄像头功能,可以直接在App中使用摄像头。
       平台所有设备采用模块化、集散化、工业化的设计模式,每个模块都为独立工作单元;模块均接近实际应用系统,能够容纳2-3个学生同时实训,可完成工程项目应用开发系统中硬件设备的安装、布线与调试,完成设备间的无线组网,既具有展示型又具有实操性。能够组建具有行业特色的物联网智能家居实训项目,确保学生可利用设备搭建真实工程项目。


上一篇:物联网技术区||传感控制器的应用之人体红外的探测

下一篇:物联网技术区||传感控制器应用之 LED点阵显示