您好,欢迎访问三七文档
霍尔传感器测速实拍视频演示一、霍尔传感器测速电路总体设计1、总体硬件设计使用单片机测量电机转速原理框图如下图2-1所示电机霍尔传感器单片机STC89S52液晶显示转速超速报警电源霍尔传感器测速原理图其测量过程大致是:测量转速的霍尔传感器和电机轴同轴相连,并在机轴上安装一个小磁铁,机轴每转一圈,与霍尔传感器就接触一次,霍尔传感器感应磁场的变化通过上拉电阻在输出口会产生一个低电平,并送给单片机,相应的发光二极管就会发亮,单片机IO口检测到下降沿触发中断,通过控制计数的时间,即可实现计数器的计数值对应机轴的转速值。单片机将该值处理后,在液晶显示器显示出来。一旦超速,单片机就会同过蜂鸣器发出报警。总体硬件电路图和PCB图如下图所示:2、系统各部分电路(1)传感器部分霍尔传感器由电压调整电路、反相电源保护电路、霍尔元件、温度补偿电路、微信号放大器、施密特触发器和OC门构成,通过上拉电阻可以将其输出接入CMOS逻辑电路。该传感器具有尺寸小、稳定性好、灵敏度高等特点。其在电路中的作用是利用霍尔传感器将电机转速转化为脉冲信号。其封装和连线如下图所示:HAL3144高灵敏度单极性霍尔开关•HAL3144E是一款采用双极性工艺技术的单极性霍尔效应传感器IC,响应速度快,灵敏度高,具有略高的工作温度范围及可靠性,它由反向电压器、电压调整器、霍尔电压发生器、信号放大器、施密特触发器和集电极开路的输出级组成。HAL3144霍尔开关的接口图液晶显示部分:显示部分有两个功能,在正常情况下,通过液晶显示当前转速值,当电机的转速超过设定值通过蜂鸣器进行报警。其硬件和连线显示图如下图:(3)处理器部分处理器采用的是单片机,对霍尔传感器的脉冲进行处理,并将结果送给显示器。其程序如附录。(4)报警部分报警部分采用蜂鸣器,当电机转速超过设定值时,处理器就会将蜂鸣器驱动发出警报。霍尔测转速的应用•日常生活中,我们可以用在测量自行车、转轮等各种运动的速度大小。利用V=2RN•即可得出结果。其中R为自行车轮子的半径,N为所测转速的大小。附录voiddelay(uintms){uinti,j;//为延时引入i,j两参数for(j=0;jms;j++)//延时第一循环for(i=0;i120;i++);//延时第二循环}/*-------------------------------------------------------*//*--------------------向LCD1602写命令--------------------*/voidwrite_command(ucharcommand){rs=0;//选择写命令rw=0;P0=command;//向LCD写命令lcdcs=1;//信号使能端高电平lcdcs=0;//信号使能端低电平}/*-------------------------------------------------------*//*--------------------向LCD1602写数据--------------------*/voidwrite_data(uchardata0){rs=1;//选着写数据rw=0;P0=data0;//向LCD写数据lcdcs=1;//信号使能端高电平lcdcs=0;//信号使能端低电平}/*-------------------------------------------------------*//*-------------------外部中断0计数程序-------------------*/voidcounter(void)interrupt0{EX1=0;//关外部中断count++;//转圈计数加1z++;//计数+1EX1=1;//开外部中断0return;}/*-------------------------------------------------------*//*------------------------LCD显示------------------------*/voiddisplaytolcd(){write_command(0x80);//向LCD1602写命令80Hfor(i=0;isizeof(display)-1;i++)//循环要传输的字符个数次,每一次传输一个字符{write_data(display[i]);delay(5);}}/*-----------------内部中断0计时计数程序-----------------*/voidTimer_0(void)interrupt1{TH0=(65536-50000)/256;//50ms定时TL0=(65536-50000)%256;msec++;if(msec==20)//50*20=1S{displaytolcd();msec=0;zhuan=z;z=0;}}/*----------------------端口初始化-----------------------*/voidint_all(){warning=0;//关蜂鸣器z=0;//初始化z的值count=0;//初始化count的值zhuan=0;//初始化转的值rw=0;//选择LCD写数据指令delay(15);//延时15mswrite_command(0x38);//向LCD1602写命令38Hdelay(5);//延时5mswrite_command(0x08);//向LCD1602写命令0EHdelay(5);//延时5mswrite_command(0x06);delay(5);write_command(0x0c);TMOD=0x01;//内部中断定时器选择TH0=(65536-50000)/256;//50ms定时TL0=(65536-50000)%256;EA=1;//开中断总开关ET0=1;//开内部中断0TR0=1;//计时器开始工作IT0=1;//外部中断0为下降沿触发EX0=1;//开外部中断0}/*-------------------------------------------------------*//*-----------------------数据处理------------------------*/voiddisp_count(){display[7]=(zhuan/1000+'0');//转换转速的千位display[8]=(zhuan/100%10+'0');//转换转速的百位display[9]=(zhuan/10%10+'0');//转换转速的十位display[10]=(zhuan%10+'0');//转换转速的个位}/*-------------------------------------------------------*//*-------------------转速过高警告程序--------------------*/voidwarning_speed(){if(zhuan120)//高于200转打开警告{warning=0;delay(100);}}/*-------------------------------------------------------*//*------------------------主函数-------------------------*/voidmain(){int_all();//全局初始化while(1){disp_count();//数据处理warning_speed();//速警告displaytolcd();//LCD显示}}/*-------------------------------------------------------*/
本文标题:霍尔传感器-测转速
链接地址:https://www.777doc.com/doc-4699158 .html