C8051F350的多传感器测控平台设计

2017-05-12 09:41
单片机与嵌入式系统应用 2017年5期
关键词:直流电机风扇温湿度

王 瑜

(西安航空学院 机械工程学院,西安 710077)

C8051F350的多传感器测控平台设计

王 瑜

(西安航空学院 机械工程学院,西安 710077)

以C8051F350单片机为主控芯片,结合Labwindows/CVI 2012开发平台,设计了一种多传感器测控系统。系统主要包含以下4个部分:C8051F350控制器模块、传感器模块、受控模块和上位机。系统主要实现2个功能:通过上位机使C8051F350控制器模块控制传感器模块实现温度、湿度、电压和倾角数据的实时检测和显示功能;通过上位机使C8051F350控制器模块控制受控模块实现风扇、直流电机和4路继电器信号的控制功能。

C8051F350;多传感器;Labwindows/CVI;测控系统

引 言

随着科技的发展,在测控系统中,往往需要使用多数量、多类型的传感器进行数据采集与传输[1],而且需要对多种负载进行控制,嵌入式信号采集处理系统的应用越来越广泛,也更加轻便灵活[2]。本文设计了一种基于C8051F350单片机,并结合Labwindows/CVI 2012开发平台的多传感器测控系统。

由Silicon Labs公司生产的C8051F350单片机是一种低成本、高精度的主控芯片。本文充分利用C8051F350的片上24位具有低噪声和高线性度的Σ-△型ADC,该ADC具有在片校准功能,减少硬件电路的设计,提高了系统的可靠性和稳定性[3];并采用USB转RS232通信接口,实现了和Labwindows/CVI 2012的数据采集和传输。本系统可以实现对温度、湿度、电压、倾角数据等物理量的检测,还可对风扇、直流电机、继电器进行控制,甚至可作为开发板,利用风扇和温湿度传感器实现恒温控制,实现风扇和直流电机的PWM调速控制,利用温湿度传感器和继电器模块控制加湿器实现恒湿度控制,利用倾角传感器和继电器模块实现跌倒检测和报警[4],实现单片机和上位机的通信等功能,为单片机与嵌入式系统、传感器技术和测控技术等课程的教学提供了完整的硬件平台。

1 系统的结构及工作原理

系统的结构框图如图1所示,该测控系统主要由C8051F350控制器模块、稳压电源模块、温湿度传感器模块DHT11、电压传感器模块、倾角传感器模块GY-952、上位机、风扇模块、直流电机模块和4路继电器模块组成。稳压电源模块给整个系统供电,温湿度传感器DHT11采集湿度信号,将其转换为数字信号送入控制器模块C8051F350,电压传感器模块采集DC 0~16.5 V电压信号,将其转换为0~3.3 V模拟量信号送入控制器模块C8051F350的A/D转换接口;倾角传感器模块GY-952采集角度信号,将其转换为0.1~2.9 V模拟量信号送入控制器模块C8051F350的A/D转换接口。控制器模块C8051F350将传感器模块采集的信息送入上位机显示,通过上位机给控制器模块C8051F350发送命令,控制受控模块完成相应的功能,实现风扇、直流电机模块的转速控制和4路继电器模块的开关控制。

图1 系统结构框图

2 系统硬件设计

2.1 温湿度检测电路

图2 温湿度检测电路

本系统采用的温湿度传感器,DHT11是一款数字传感器,包括一个电阻式感湿元件和一个NTC测温元件,其能与一个高性能8位单片机相连接[5-6]。温湿度检测电路如图2所示,温湿度传感器DHT11的Dout引脚与C8051F350的I/O口P01连接,将温湿度信号转换成数字信号送入C8051F350单片机,DHT11的VCC引脚接电源,NC引脚悬空,GND引脚接地。

2.2 电压、倾角检测电路

图3 电压、倾角检测电路

电压、倾角检测电路如图3所示,Vin端连接DC 0~16.5 V电压信号,由于电阻R3和R4的分压作用,使AIN00端产生0~3.3 V电压信号,并送入C8051F350的A/D口,倾角检测采用低成本、低功耗、体积小的GY-952模块,其工作原理是通过陀螺仪与加速度传感器经过数据融合算法最后得到直接的角度数据,本系统采用单轴模拟量输出,GY-952把角度信号转换成模拟量信号,在OUT引脚输出0.1~2.9 V电压信号,并送入C8051F350的A/D口,GY-952的VCC引脚接电源,GND引脚接地,B0、SWC、SWD、RX和TX引脚悬空。

2.3 风扇控制电路

上位机将命令发送到C8051F350以控制风扇,风扇控制电路如图4所示,C8051F350的P10口通过电阻和三极管与风扇连接,实现风扇的低速、高速、智能和停止控制,其中风扇的转速控制采用PWM调速控制,风扇的智能控制需要在上位机设置温度的上下限,从而实现了风扇的转速随着温度的变化达到智能控制,使温度保持在设定的温度的上下限之间。

图4 风扇控制电路

2.4 直流电机控制电路

上位机发送命令控制直流电机,直流电机控制电路如图5所示,选择L298N芯片作为直流电机驱动芯片,L298N是一种双H桥电机驱动芯片,其中每个H桥可以提供2 A的电流,功率部分供电电压范围是2.5~58 V,逻辑部分为5 V供电,接收5 V TTL电平。L298N的OUTPUT1和OUTPUT2引脚通过4个二极管1N4007与直流电机相连,二极管1N4007的作用是保护L298N芯片,L298N的INPUT1、INPUT2和ENABLE A引脚分别连接C8051F350的P11、P12和P13口,可以实现直流电机的启动、停止、转速和转向控制,CURRENT SENSING A、CURRENT SENSING B引脚接地,SUPPLY VOLTAGE Vs和LOGIC SUPPLY VOLTAGE Vss引脚接电源,INPUT3、INPUT4、ENABLE B、OUTPUT3和OUTPUT4引脚悬空。

图5 直流电机控制电路

2.5 继电器控制电路

继电器在实际中的应用非常广泛和普遍,继电器不仅可以有效地减少控制系统元件数量,而且对于线路的设计应用成本也能很好地进行控制节约,并且在实际应用中具有运行可靠、维护方式灵活方便等特征[7]。本系统采用上位机发送命令使继电器控制电路工作,继电器控制电路如图6所示,选用MC1413芯片驱动4路继电器,MC1413的IN1、IN2、IN3和IN4引脚分别和C8051F350的P14、P15、P16和P17口连接,OUT1、OUT2、OUT3和OUT4分别和4路继电器的线圈连接,GND引脚接地,VDD引脚接电源,MC1413的IN5、IN6、IN7、OUT5、OUT6和OUT7引脚悬空。

图6 继电器控制电路

3 系统软件设计

3.1 上位机软件设计

本系统的上位机采用Labwindows/CVI 2012作为软件开发平台,上位机界面如图7所示,上位机界面由3个区域组成,分别是:选择串口区域、检测区域和控制区域。通过“选择串口”控件,用户可以根据需要方便地选择串口;在检测区域中点击“开始检测”按钮,可以显示当前的温度、湿度、电压和倾角数据。

控制区域由3部分组成,分别是:风扇控制区域、电机控制区域和4路继电器控制区域。其中点击风扇控制区域中的“低速”按钮,可以实现风扇的低速运行;点击“高速”按钮,可以实现风扇的高速运行;点击“设置”按钮,弹出风扇智能控制“温度设置”界面。如图8所示,在其中输入温度的上限和下限,可以实现风扇的智能闭环控制,即当前温度低于温度下限时,风扇停止运转;当前温度在温度上限和温度下限之间时,风扇低速运转;当前温度高于温度上限时,风扇高速运转。点击“停止”按钮,风扇停止运转。

电机控制区域可以实现直流电机的启动、转速、转向和停止控制,点击“启动”按钮,电机运转;电机的转速控制包含6种速度,通过直流电机PWM调速实现,点击 “转速+”按钮,电机加速运行;点击“转速-”按钮,电机减速运行;点击“反向”按钮,电机反转,再次点击“反向”按钮,电机正转;点击“停止”按钮,电机停止运转。

在4路继电器控制区域中,分别点击“继电器1”、“继电器2”、“继电器3”和“继电器4”按钮,可实现4路继电器控制电路的接通和断开。

图7 上位机界面

图8 风扇智能控制 “温度设置”界面

3.2 下位机软件设计

下位机以C8051F350单片机作为主控芯片,软件采用C语言设计,DHT11器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。C8051F350单片机与DHT11之间一次传输40位数据,高位先出,数据格式为:8位湿度整数数据+8位湿度小数数据+8位温度整数数据+8位温度小数数据+8位校验位[8],温湿度读取程序代码如下:

sbit DATA = P0^1;

uchar RH(void){

DATA=0;

Delay1(180);

DATA=1;

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

DATA=1;

if(!DATA){

U8FLAG=2;

while((!DATA)&&U8FLAG++);

U8FLAG=2;

while((DATA)&&U8FLAG++);

COM();

U8RH_data_H_temp=U8comdata;

COM();

U8RH_data_L_temp=U8comdata;

COM();

U8T_data_H_temp=U8comdata;

COM();

U8T_data_L_temp=U8comdata;

COM();

U8checkdata_temp=U8comdata;

DATA=1;

U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);

if(U8temp==U8checkdata_temp){

U8RH_data_H=U8RH_data_H_temp;

U8RH_data_L=U8RH_data_L_temp;

U8T_data_H=U8T_data_H_temp;

U8T_data_L=U8T_data_L_temp;

U8checkdata=U8checkdata_temp;

humidity = U8RH_data_H;

temperature = U8T_data_H;

}

return 1;

}

else{

return 0;

}

}

通过电压、倾角检测电路将电压、倾角信号转换成模拟量送入C8051F350的AIN00和AIN01口,利用C8051F350内部高精度A/D,完成电压和倾角数据的采集,GY-952模块数据输出有两种形式,分别为串口输出和模拟输出。串口输出:MCU的RX接到模块的TX,MCU的TX接到模块的RX,然后向模块发送相应指令即可;模拟输出:模块的模拟输出的数据为ROLL,输出范围0.1~2.9 V,对应-180°~180°,直接用A/D采集即可,其中ROLL是欧拉角的计算方法,在GY-952模块输出的一帧数据中,数据1=ROLL=(高8位<<8)|低8位,本系统采用模拟输出形式[9]。电压读取程序代码如下:

void AD_convert(){

unsigned long t=0,m=0;

unsigned char idata d,input;

AD0INT=0;

input=0x08;{

for(d=0;d<6;d++){

ADC0MD=0x80;

ADC0MUX=input;

ADC0MD=0x82;

while(!AD0INT);

ADC0MD=0x00;

AD0INT=0;

t=ADC0M+ADC0H*0x100;

m+=t;

}

voltage=m/6;

}

;

}

图9 下位机控制风扇软件流程图

本系统下位机控制风扇的软件流程如图9所示。首先,C8051F350接收上位机发送的控制命令,收到“高速”命令,风扇高速运行;收到“低速”命令,风扇低速运行;收到“停止”命令,风扇停止运行。收到“智能”命令,读取风扇智能控制设置的温度上下限值以及温湿度传感器DHT11采集的当前温度值,如果当前温度比设定温度下限低,说明当前温度低,不需要利用风扇降温,故风扇停止运行;如果当前温度比设定温度下限高,而且当前温度比设定温度上限低,说明当前温度符合我们的设定要求,故风扇低速运行;如果当前温度比设定温度上限高,说明当前温度高,需要利用风扇快速降温。

本系统下位机控制直流电机软件流程如图10所示,C8051F350接收上位机发送的控制命令,收到“启动”命令,电机运行;收到“反向”命令,电机反向运行;收到“停止”命令,电机停止运行;收到“转速+”命令,判断转速档位是否大于6档,如果大于6档,将转速档位记录变量speedrecord=6,速度最高的档位为第6档;收到“转速-”命令,判断转速档位是否小于1档,如果小于1档,转速档位记录变量speedrecord=1,速度最低的档位为第1档。

图10 下位机控制直流电机软件流程图

结 语

本文以C8051F350单片机为核心,结合Labwindows/CVI 2012软件开发平台,使用温湿度传感器DHT11、电压传感器、倾角传感器GY-952、风扇、直流电机和4路继电器,设计了一种多传感器测控系统,系统运行稳定,上位

[1] 何谐.一种多传感器数据采集与通信实验平台的设计[J].工业控制计算机,2016(6):65-67.

[2] 李正轩,费树岷.基于Zynq-7000FPGA的高速信号采集处理平台[J].单片机与嵌入式系统应用,2016(2):44-47.

[3] 沈金鑫,夏静.基于C8051F350的多路高精度数据采集系统及应用[J].电子设计工程,2014(5):154-156.

[4] 赵旭强,高天星,马忠梅.CC3200与Android的跌倒检测系统上位机设计[J].单片机与嵌入式系统应用,2016(2):32-35.

[5] 汤锴杰,栗灿,王迪,张琴.基于DS18B20的数字式温度采集报警系统设计[J].传感器与微系统,2014(3):99-102.

[6] 王登宏,厉佳男,贺雪辉,等.基于Arduino的手机同步显示温湿度检测系统的设计与实现[J].工业控制计算机,2016(7):42-45.

[7] 刘晓光.控制继电器应用[J].科技传播,2013(2):150-151.

[8] 哈尔滨奥松机器人科技有限公司.温湿度模块DHT11产品手册[EB/OL].[2017-02]. http://www.aosong.com/.

[9] GY-952模块使用手册[EB/OL].[2017-02].https://pan.baidu.com/s/1jIq9XaQ#list/path=%2F.

王瑜(讲师),主要研究方向为机电一体化技术、嵌入式系统应用。

Multi-sensor Measurement and Control Platform Based on C8051F350

Wang Yu

(School of Mechanical Engineering,Xi’an Aeronautical University,Xi’an 710077,China)

In the paper,a multi-sensor measurement and control system is designed,which is based on C8051F350 microcontroller and Labwindows/CVI 2012 development platform.The system consists of four modules:the C8051F350 controller module,the sensor module,the controlled module and the upper computer.The sensor module consists of the temperature and humidity sensor,the voltage sensor and the tilt sensor.The controlled module consists of the fan module,the DC motor module and four channels of relay module.The system has two main functions,which can realize the temperature,the humidity,the voltage and the tilt real-time detecting and displaying by C8051F350 controller module through the upper computer,and it can be used to control the fan,the motor,and the four channels of relay by C8051F350 controller module through the upper computer.

C8051F350;multi-sensor;Labwindows/CVI;measurement and control system

TP273

A

迪娜

2017-02-09)

猜你喜欢
直流电机风扇温湿度
基于模糊PID的无刷直流电机速度控制系统的设计与仿真
温湿度控制器在回收砂冷却系统中的应用
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
基于FPGA的双绕组无刷直流电机软件设计
电风扇
蒸发冷却温湿度独立控制空调系统的应用
基于智能手机控制风扇运行的实现
新蒙迪欧车冷却风扇常高速运转
基于模糊神经网络PID的无刷直流电机控制系统研究