通过以下几个示例来具体展开学习,了解常用的集成温度传感器基本原理、性能与应用,学习开关式霍尔传感器测转速的应用:
示例四、 开关式霍尔传感器测转速
一、基本原理:速度测量是日常生活经常需要的工作,如汽车的行驶速度,电机的转动速度等。测量速度的方法多种多样,本设计以出租车为例,讨论用开关型霍尔传感器测量速度的原理和方法。
1、霍尔测速仪的系统结构
霍尔测速仪系统以单片机AT89C2051为控制核心,用开关型霍尔集成传感器以计数方式测量汽车车轮的转动次数,单片机将计数结果换算成汽车运行速度值,送到液晶显示模块LCD1602上显示。系统硬件原理如图所示
2、霍尔测速仪的硬件设计
1)计数脉冲产生电路
如图547所示。在汽车的车轮上固定一块磁铁,汽车行走,车轮转动,磁铁一起转在汽车车体的某个固定位置安装霍尔传感器,汽车车轮每转一周,霍尔传感器与磁有一次磁接触,产生并输出一个开关信号。
2)光电隔离
霍尔传感器产生的开关信号可能并不适合单片机直接使用。因此,通过光电耦合器将其转换为单片机可采集的脉冲信号。单片机计算在固定时间内产生的脉冲数,即可得到速度值,如图所示。
霍尔传感器输出脉冲信号连到NT0引脚,车轮转动一圈,产生一次中断。单片机通过记录中断次数,完成对电机转动脉冲的计数。为简化设计,系统选用AT89C2051。若用逻辑信号代替霍尔传感器,系统仿真电路如图所示。
图系统仿真电路
3、霍尔测速仪的软件设计
系统启动后,首先进行初始化。单片机对霍尔传感器产生的脉冲进行读操作,作为速度的计数脉冲值。根据计数脉冲值,计算速度值,并在LCD上显示。工作流程如图所示。
系统采用AT89C2051的INT0中断,对转速脉冲进行计数。定时器T0工作于定时方式1,用于定时。每隔1s读一次由外部中断INT0产生的计数值,此值即为脉冲信号的频率,据此可计算出出租车的运行速度当车轮传动,磁铁转动时,霍尔传感器便在与磁铁相对时获得一个脉冲信号。这个脉冲信号经过光电耦合后接到单片机的外部中断INT0引脚,一个脉冲引起一次中断,让计数器加1。设车轮的周长为N(m),在T(s)内,测得的计数脉冲数为M,则出租车的速度为
U=N·M/T
二、软件设计:
霍尔测速仪的源程序:
#include "d:\c51\reg51.h" #include "d:\c51\intrins.h" sbit LCM_RS=P3^0; sbit LCM_RW=P3^1; sbit LCM_EN=P3^7; #define BUSY 0x80 //常量定义 #define DATAPORT P1 #define uchar unsigned char #define uint unsigned int #define L 50 //定义车轮周长 ……………….. ………………… void main(void) { TMOD=0x01; /*TMOD T0选用方式1(16位定时) */ IP|=0x01; /*INT0 中断优先*/ TCON|=0x11; /*TCON EX0下降沿触发,启动T0*/ IE|=0x83; TH0=0x3c; TL0=0xaf; initLCM(); WriteCommandLCM(0x01,1); //清显示屏 for(;;) { account(); display(); } } void account() { unsigned long a; if (time!=0) { a=L*360000000/time; //速度的计算公式 } speed=a; } void STR() { str0[0]='S'; str0[1]='p'; str0[2]='e'; str0[3]='e'; str0[4]='d'; str0[5]=' '; str0[6]=(speed%100000)/10000+0x30; str0[7]=(speed%10000)/1000+0x30; str0[8]=(speed%1000)/100+0x30; str0[9]='.'; str0[10]=(speed%100)/10+0x30; str0[11]=speed%10+0x30; str0[12]='k'; str0[13]='m'; str0[14]='/'; str0[15]='h'; }
三、数据记录:
1、霍尔传感器实验数据记录1
2、霍尔传感器的频率/速度曲线图
六、思考题:
利用开关式霍尔传感器测转速时如何判断转子的旋转方向?
1.测量转速的霍尔传感器用上升沿触发,当转速传感器触发中断时,查看转向传感器的电位,如果转向传感器处于低电位,那么就判断为顺时针方向(根据实际情况确定);
2.如果转速传感器触发中断时,转向传感器处于高电位,则为逆时针方向。