历史上的今天
今天是:2024年10月18日(星期五)
2021年10月18日 | 基于51单片机霍尔测速仪表测转速调速系统方案原理图设计
2021-10-18 来源:eefocus
硬件分析
原理框图

原理图:

系统功能分析
本设计由STC89C52单片机电路+液晶LCD1602显示电路+霍尔测速电路+电源电路组成。
1、通过霍尔传感器测速,霍尔传感器检测轮盘上的磁铁进而知道轮盘转了多少周,从而计算出转速。
2、LCD1602液晶实时显示转速。
3、可以通过电位器调节电机的转速。
A3144霍尔传感器模块电路设计
本霍尔传感器模块是基于霍尔元件A3144设计制作的模块,A3144芯片是一种磁传感器,其应用霍尔效应原理,采用半导体集成技术制造的磁敏电路,它是由电压调整器、霍尔电压发生器、差分放大器、史密特触发器,温度补偿电路和集电极开路的输出级组成的磁敏传感电路,其输入为磁感应强度,输出是一个数字电压信号,用它可以检测磁场及其变化,可在各种磁场相关的场合中使用,霍尔器件具有很多优点,它的结构牢固、体积小、重量轻、寿命长、安装方便、功耗低、频率高、耐振动、不怕灰尘、油污、水汽、盐雾等的污染或腐蚀。使用LM393宽电压比较器,通过对霍尔传感器传过来的值和电位器的分压值比较,可以直接输出高低电平,信号干净,波形好,驱动能力强。A3144霍尔传感器模块体积小,灵敏度高,响应速度快,温度性能好,精确度高,可靠性高。
一、传感器参数
(1)工作电压:3.3-5V。
(2)使用3144E开关型霍尔传感器。
(3)当传感器感应到磁场时,数字输出低电平,信号灯亮;如果没有感应到磁场,则数字输出高电平,信号灯不亮。
(4)具有电源指示灯和信号指示灯。
(5)输出形式:数字开关量输出(0和1),模拟量AO口无效。
(6)采用LM393比较器输出,型号干净,波形好,驱动能力强,超过15mA。
(7)可用于电机测速、位置检测等。
二、接口说明
(1) VCC→电源正极。
(2)GND→电源负极。
(3)DO →TTL数字量输出,有磁感应是输出低电平。
(4)AO →模拟量输出(不同距离输出不同电压)。
三、使用说明
A3144霍尔开关元件属于开关型霍尔传感器(集成霍尔开关),它是把霍尔片产生的霍尔电压放大后驱动触发电路,输出电压是能变化的方脉冲。霍尔转速传感器的外形图和与磁场的作用关系如下图所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率就可以得出圆盘的转速。

霍尔传感器模块内部电路图如下图所示,其中R1电阻为分压电阻,将霍尔传感器检测到的磁场信息转化为模拟电压信号即AO,模拟量信号接入LM393比较器后,即可与LM393比较器芯片2号引脚所接的分压电阻分压后的模拟电压进行比较,进而得出DO数字信号(即高低电平信号)。C1、C2为滤波电容,C1电容对电源进行滤波,让电源输出更稳定。C2电容对模拟信号进行滤波,保证模拟信号输出的稳定性。R2、R3均为限流电阻,来保护LED灯,防止LED灯烧坏,LED灯均为低电平有效。R4为上拉电阻,上拉就是将不确定的信号通过一个电阻钳位在高电平,同时起限流作用。保证LM393比较器输出的高低电平信号在与单片机引脚连接时电平信号的读取更加稳定。

系统软件设计

#include #include #include "1602.h" #include "delay.h" unsigned long PluNum=0; //检测速度转化来的脉冲量 unsigned long time_ms; //定时器计数 float Juli=0; //转速计算 char displaytemp[16]; //显示更新暂存 unsigned char DealSudu=0; //处理速度 void Init_Timer0(void); //函数声明 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { Init_Timer0(); //定时器0初始化 EX0=1; //外部中断0开 IT0=1; //边沿触发 EA=1; //全局中断开 LCD_Init(); //初始化液晶 DelayMs(20); //延时有助于稳定 LCD_Clear(); //清屏 LCD_Write_String(0,0,"My Designer! "); //初始化 sprintf(displaytemp,"ZhuanSu:%3.1fr/s",Juli); LCD_Write_String(0,1,displaytemp); while (1) //主循环 { if(DealSudu==1) { DealSudu=0; Juli=(Juli+(float)PluNum/3.0)/2; //m/s 1个脉冲为1圈 3s时间进行检测 PluNum=0; sprintf(displaytemp,"ZhuanSu:%3.1fr/s",Juli); //打印转速 LCD_Write_String(0,1,displaytemp); //显示 PluNum=0; } } } void Init_Timer0(void) { TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TH0=(65536-20000)/256; //重新赋值 20ms TL0=(65536-20000)%256; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } void Timer0_isr(void) interrupt 1 { static unsigned char Count=0; //计数 TH0=(65536-20000)/256; //重新赋值 20ms TL0=(65536-20000)%256; time_ms++; if(time_ms%48==0) //定时处理 { Count++; if(Count>3) //3s进行处理 { DealSudu=1; } } } /*------------------------------------------------ 外部中断程序 ------------------------------------------------*/ void ISR_Key(void) interrupt 0 using 1 { PluNum++; //脉冲计数 } 链接:https://pan.baidu.com/s/1dcQS8Tf_Ym4MBDXn6cIo-g 提取码:idy4
史海拾趣
|
屏蔽就是对两个空间区域之间进行金属的隔离,以控制电场、磁场和电磁波由一个区域对另一个区域的感应和辐射。具体讲,就是用屏蔽体将元部件、电路、组合件、电缆或整个系统的干扰源包围起来,防止干扰电磁场向外扩散;用屏蔽体将接收电路、设备或系 ...… 查看全部问答> |
|
安静的生活不需再起什么波澜,即将进入四十岁不再进入研发黄金时间段,想把自己做过的想过的都留下来,没有什么名利场的事情了,说出来格外轻松。面对目前大部分国内杂志近乎清一色的嵌入系统,单片机和软件的文章,硬件电路尤其是模拟电路设计似乎 ...… 查看全部问答> |
|
有没有谁做嵌入式开发的,大虾给俺指导一下?谁有WIN CE的模拟器? 我现在准备开发WIN CE5.0应用程序,现在按照网上指导的方法VS2005不能与目标机相联(目标机是WIN CE5.0系统),从开发机上拷的那5个文件不能在目标机器上运行,执行后报如下错误提示: \'ConmanClient2\'is not a valid Windows CE application ...… 查看全部问答> |
|
现有一个软件需求如题所述,现在的做法是在TOUCH PANEL驱动层加上一些代码,也就是说把传给GWES的值复制一份保留下来.这样的做法缺陷很大,如果一旦在动作序列里有一个动作没有被有效的执行,那本次模拟的所有操作就会被认为无效.大家有没有其它的办法 ...… 查看全部问答> |
|
猎头职位:赴美国工程师!月薪五万,咨询13381085719 13381085771刘先生 猎头职位:赴美国工程师!月薪五万,咨询13381085719 13381085771刘先生… 查看全部问答> |
|
最近在折腾LINUX 的GPIO中断。用驱程实现了的情形是:1 在驱程里,借用copy_to_user函数,在中断发生时,让一个数值发生变化写回用户态,使得应用程序可以读出这个变化。问题是:这样看起来,好像跟查询没什么区别。以前玩51的时候,情况不是这样的 ...… 查看全部问答> |
|
本帖最后由 nwx8899 于 2014-8-17 13:22 编辑 利用易电源软件工具设计的一个DSP的一个供电系统,,输入电压是直流14-22V,输出3.3V给DSP供电,电源选择3安输出,选择环境温度27摄氏度。轻轻输入几个数据然后点击开始设计了。 不是,还要等待一会 ...… 查看全部问答> |




