霍尔元件测速原理说明及应用Word文档格式.docx
《霍尔元件测速原理说明及应用Word文档格式.docx》由会员分享,可在线阅读,更多相关《霍尔元件测速原理说明及应用Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。
在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。
这种传感器不怕灰尘、油污,在工业现场应用广泛。
2硬件电路设计
测速的方法决定了测速信号的硬件连接,测速实际上就是测频,因此,频率测量的一些原则同样适用于测速。
通常可以用计数法、测脉宽法和等精度法来进行测试。
所谓计数法,就是给定一个闸门时间,在闸门时间内计数输入的脉冲个数;
测脉宽法是利用待测信号的脉宽来控制计数门,对一个高精度的高频计数信号进行计数。
由于闸门与被测信号不能同步,因此,这两种方法都存在±
1误差的问题,第一种方法适用于信号频率高时使用,第二种方法则在信号频率低时使用。
等精度法则对高、低频信号都有很好的适应性。
图2是测速电路的信号获取部分,在电源输入端并联电容G用来滤去电源尖啸,使霍尔元件稳定工作。
HG表示霍尔元件,采用CS3020,在霍尔元件输出端(引脚3)与地并联电容G滤去波形尖峰,再接一个上拉电阻尼,然后将其接入LM324的引脚3o用LM324构成一个电压比较器,将霍尔元件输出电压与电位器金比较得出高低电平信号给单片机读取。
G用于波形整形,以保证获得良好数字信号。
LED便于观察,当比较器输出高电平时不亮,低电平时亮。
微型电机M可采用型,通过电位器屆分压,实现提高或降低电机转速的
目的。
G电容使电机的速度不会产生突变,因为电容能存储电荷。
电压比较器的功能:
比较两个电压的人小(用输出电压的高或低电平,表示两个输入电压的大小关系):
当“+”输入端电压高于“一”输入端时,电压比较器输出为高电平;
当“+”输入端电压低于“一”输入端时,电压比较器输出为低电平;
比较器还有整形的作用,利用这一特点可使单片机获得良好稳定的输出信号,不至于丢失信号,能提高测速的精确性和稳定性。
3测速程序
测量转速,使用霍尔传感器,被测轴安装有1只磁钢,即转轴每转一周,产生1个脉冲,要求将转速值(转/分)显示在数码管上。
用C语言编制的程序如下:
//硬件:
老版STC实验版
//P3-5丨I接转速脉冲
^include<
STC12C5410AD.H>
//单片机内部专用寄存器定义
#defineucharunsignedchar
#defineuintunsignedint//数据类型的宏定义
ucharcodeLK[10]={0xC0,0xF9,0xA4,OxBO,0x99,0x92,0x82,0xF8,0x80,0x90,};
〃数码管0、9的字型码
ucharLK1[4]={0xfe,Oxfd,Oxfb,0xf7};
//位
选码
uintdataz,counter;
//定义无符号整型全局变量lk
H=======================voidinit(void)//定义名为init的初始化子函数
//init子函数开始,分别赋值
THOD二0X51;
//GATEC/TMlM0
GATE
C/T
Ml
M0
计数器T1
定时
器TO
//0101
1
TH1二0;
//计数器初始值
TL1二0;
TH0=~(50000/256);
//定时器to定时50ms
TL0=~(50000%256);
EA=1;
//IE二0X00;
//EA
—
ET1
ES
EXI
ETO
EXO
ETO=1;
//1
TR1=1;
TRO二1;
TF0二1;
}
//
voiddelay(uintk)//延时程序
(
uintdatai,j;
for(i=0;
i<
k;
i++)
{
for(:
j<
121;
j++){;
//====================voiddisplay(void)//数码管显示
Pl=LK[z/1000];
P2=LK1[O];
delay(10);
Pl=LK[(z/100)%10];
P2=LK1[1];
Pl=LK[(z%100)/10];
P2=LKl[2];
Pl=LK[z%10];
P2=LK1[3];
voidmain(void)//主程序开始
uinttempi,temp2;
〃调用init初始化子函数
initO;
for(;
;
)
templ=TLl;
temp2=THl;
counter^(temp2«
8)+templ;
//读出计数器值并转化为十进制
//z二counter;
display();
}〃无限循坏语句结束
}//主程序结束
//================================================
//uintchushi=60;
voidtimerO(void)interrupt1using1
THO=-(50000/256);
//定时器tO定时50ms
TLO二-(50000^256);
//chushi--;
//if(chushi<
=0){z=counter/0・5//}
THO二0;
TL1=O;
//读出速度
//每50MS清一次定时器
微型电机M可采用型,通过电位器岛分压,实现提高或降低电机转速的
图.2测速电路原理图
用c语言编制的程序如下:
//硬件:
老版STC实验版//P3-5II接转速脉冲
#include<
〃定义无符号整型全局变量lk
□=========