✅ 操作成功!

热电阻传感器

发布时间:2023-06-16 作者:admin 来源:文学

热电阻传感器

热电阻传感器

-

2023年3月19日发(作者:汉语拼音音节表)

1工作原理

本系统可以分为五大部分:热电阻温度采集、运行状态显示、继电器控制、键盘输入、

风向步进电机控制。

2.1热电阻温度采集

热电阻传感器以其温度特性稳定、测量精

图1Pt1000热电阻温度测量电路

度高的特点,在大型中央空调得到了广泛的应用。

采用Pt1000热电阻作为温度传感器的测量电路原理图如图1所示。热电阻Rt与三个电阻

接成电桥。当温度变化时,使得运算放大器的同相输入端的电位发生变化,经过运算放大器

放大之后输入到Atmega16单片机进行AD转换。由于单片机采用5V电压作为ADC的参考电

源,而电桥在温度变化为0~100°C时,输出电压范围为0~0.7V,所以确定运算放大电路

的放大倍数为7,以获得最佳的测量结果。运算放大电路的电阻按以下公式确定:

710

4

5

i

u

u

R

R

456

//RRR

860,1,6

645

RkRkR。输出电压变化范围大致是0~5V。

由于ADC的转换精度为10,故当输入电压为5V时,其采样值为1023,根据电桥平衡原理,

可得到以下公式:

)

2

1

(

10237

5

0

••

t

t

RR

R

U

NV

(1)

其中,N——ADC数据寄存器的值,

U——电桥电源电压,

0

R——Pt1000在0°C时的电阻1000。

Pt1000热电阻的阻值按以下公式计算::

)1(2

0

tBtARR

t

(2)

Rt——温度为t时铂热电阻的电阻值,Ω;

t——温度,℃;

0

R——Pt1000在0°C时的电阻1000

A——分度常数,A=0.28

B——分度常数,B=-0.

用根据以上公式(1)、(2)生成用N来查找温度t的程序表格,其代码如

下:

PrivateSubPt1000()

=rsor

()

DimUAsInteger=9'电桥电源电压

'热电阻0度时的电阻值

DimPt1000_R0AsInteger=1000

DimnAsInteger

DimsngTAsSingle

DimsngRtAsSingle

Text("constfloatPt1000Tab[]={"&Chr(13)&Chr(10))

Forn=0To1023

sngRt=(10000*n+*U)/(7161*U-10*n)

sngT=(-const_A+Sqrt(const_A^2-4*const_B*(1-sngRt/Pt1000_R0)))/(2*const_B)

Ifn

"*/")

Text(Format(Abs(sngT),"0.0")&"/*"&n&"*/"&Chr(13)

&Chr(10)&"};")

EndIf

IfnMod5=0Then

Text(Chr(13)&Chr(10))

EndIf

Next

All()

()

=t

EndSub

生成的程序常数表格(1024个值)部分如下:

constfloatPt1000Tab[]={

0.0,/*0*/0.1,/*1*/0.2,/*2*/0.2,

……

63.4,/*696*/63.5,/*697*/

……

99.3,/*1022*/99.4/*1023*/

};

2.2运行状态显示

本系统采用一块16×4的字符型液晶模块,这种类型的LCD应用很广泛,其控制驱动主

芯片为HD44780及其扩展驱动芯片HD44100(或兼容芯片),少量阻、容元件,结构件等装

配在PCB板上而成。字符型液晶显示模块目前在国际上已经规范化,无论显示屏规格如何变

化,其电特性和接口形式都是统一的。因此只要设计出一种型号的接口电路,在指令设置上

稍加改动即可使用各种规格的字符型液晶显示模块。odeVisionAVR集成开发环境集成这种类

型LCD的函数,可方便实现LCD的读写,其部分函数及功能简单介绍如下,更详细的资料可

查阅各种文献。

2.3继电器控制

Atmega16输出缓冲器具有对称的驱动特性,可以输出和吸收大电流,直接驱动LED,

但是仍然不能直接驱动更大电流的器件,如继电器,所以必须接入较大功率的驱动器。常用

的驱动方法有74系列功率集成电路驱动、MOC系列光耦合过零触发双向晶闸管驱动、固态

继电器驱动等。

本系统采用ULN2003芯片来驱动继电器。其内部结构如图2所示。

ULN2003是达林顿阵列,是专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线

图2ULN2003内部结构图

反电动势的二极管。ULN2003的输出端允许通过IC电流200mA,饱和压降VCE约1V左

右,耐压BVCEO约为36V。采用集电极开路输出,输出电流大,故可以直接驱动继电器

或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡,共可以驱动7路,减少了电

路板的连线数量,成本较低,广泛应用于各种工控板,其驱动原理如图3所示。

图3驱动原理

压缩机离合器继电器采用RS触发器和ULN2003一起控制,这样做的好处是:当单片机

受到外界干扰而不断复位或看门狗超时复位时,保证压缩机始终处于开启或关闭状态,有助

于延长压缩机的寿命。

2.4键盘输入

本系统采用3×3矩阵式键盘。通过键盘可以控制系统工作方式(关闭、送风、制冷)、

风向步进电机(水平送风、倾斜送风、扫风)、温度设定等。

键盘的行由PD0、PD1、PD2(使能内部上拉电阻)控制,而列则由PC3、PC4、PC5控

制,如图4所示。采用程序扫描的方式识别键码,其工作过程如下:

(1)判断键盘中有无键按下。通过以下代码实现:

PORTC&=~0x20;

if((PIND&0x07)!=0x07){//……}

首先置PC5为“0”,再判断PD0、PD1、PD2是否都为“1”。如果全为“1”,则表明

第3列无键按下,否则有键按下,进入消除抖动程序;再置PC4为“0”,再判断PD0、

PD1、PD2是否都为“1”。如果全为“1”,则表明第2列无键按下,否则有键按下,进

入消除抖动程序;再置PC3为“0”,再判断PD0、PD1、PD2是否都为“1”。如果全

为“1”,则表明第1列无键按下,否则有键按下,进入消除抖动程序。

图43×3矩阵式键盘

(2),消除抖动。当发现有键按下时,延时一段时间再判断键盘状态,若仍有键保持按下

状态,则可以确定有键按下,否则认为是抖动。通过以下代码实现:

delay();

if((PIND&0x07)!=0x07){//……}

(3)判断键码。以下是识别为“Key2-3”(第2行第3列)的程序代码,其它按健类似。

if((PIND&0x07)==0x05)

{//Key2-3

//ucharkey_num[]="K23";

//等待按键释放

while((PIND&0x07)==0x05);

//判断换气风机是否在运行

if(ventilator_state==1)

{

ventilator_state=0;

//关闭换气风机

stop_ventilator();

//在LCD上的(12,3)显示“OFF”lcd_gotoxy(12,3);

lcd_putsf("OFF");

}

else

{

ventilator_state=1;

//开启换气风机

start_ventilator();

//在LCD上的(12,3)显示“Run”

lcd_gotoxy(12,3);

lcd_putsf("Run");

}

return;//识别完毕,返回主程序

}

2.5风向步进电机控制

Atmega16的定时器能够输出PWM,编程简单,精度高。编程让定时器2工作于相位

可调模式,产生高精度的PWM波形输出,调节占空比,以达到控制步进电机不同转角的目

的。初始化设置如下:

👁️ 阅读量:0