『壹』 用霍尔元件设计一测量转速的装置
一,24vDC Power supply,Hall IC(eg.A3144EU),Hall IC has three wires,gruond,supply and output.The wire of supply is connected to 24VDC.The wire of output is connected to a PLC output point.We can get pulse count.The number is multiplied by diameter.
『贰』 基于51单片机的转速测量设计,程序编写!电路仿真图
测量转速,使用光电传感器,被测电机带动纸片旋转,我们在纸片上开了10小孔,电机每旋转一周就会产生10个脉冲,产生12个脉冲,要求将转速值(转/分)显示在数码管上。
实验程序如下:
#include<REG52.H>
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
#defineLED_DATP1
sbitLED_SEG0=P0^3;
sbitLED_SEG1=P0^2;
sbitLED_SEG2=P0^1;
sbitLED_SEG3=P0^0;
//sbitpin_SpeedSenser=P3^5;//光电传感器信号接在T1上
#defineTIME_CYLC100//12M晶振,定时器10ms中断一次我们1秒计算一次转速//1000ms/10ms=100
#definePLUS_PER10//码盘的齿数,这里假定码盘上有10个齿,即传感器检测到10个脉冲,认为1圈
#defineK100.0//校准系数
unsignedcharcodetable[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchardataDisbuf[4];//显示缓冲区
uintTcounter=0;//时间计数器
bitFlag_Fresh=0;//刷新标志
bitFlag_clac=0;//计算转速标志
bitFlag_Err=0;//超量程标志
//在数码管上显示一个四位数
voidDisplayFresh();
//计算转速,并把结果放入数码管缓冲区
voidClacSpeed();
//初始化定时器T0
voidinit_timer0();
//初始化定时器T1
voidinit_timer1();
//延时函数
voidDelay(uintms);
voidit_timer0()interrupt1/*interruptaddressis0x000b*/
{
TF0=0;//d定时器T0用于数码管的动态刷新
//
TH0=0xC0;/*initvalues*/
TL0=0x00;
Flag_Fresh=1;
Tcounter++;
if(Tcounter>TIME_CYLC)
{Flag_clac=1;//周期到,该重新计算转速了
}
}
voidit_timer1()interrupt3/*interruptaddressis0x001b*/
{
TF1=0;//定时器T1用于单位时间内收到的脉冲数
//要速度不是很快,T1永远不会益处
Flag_Err=1;//如果速度很高,我们应考虑另外一种测速方法,:脉冲宽度算转速
}
voidmain(void)
{
Disbuf[0]=0;//开机时,初始化为0000
Disbuf[1]=0;
Disbuf[2]=0;
Disbuf[3]=0;
init_timer0();
init_timer1();
while(1)
{
if(Flag_Fresh)
{Flag_Fresh=0;
DisplayFresh();//定时刷新数码管显示
}
if(Flag_clac)
{Flag_clac=0;
ClacSpeed();//计算转速,并把结果放入数码管缓冲区
Tcounter=0;//周期定时清零
TH1=TL1=0x00;//脉冲计数清零
}
if(Flag_Err)//超量程处理
{
//数码管显示字母'EEEE'
Disbuf[0]=0x9e;//开机时,初始化为0000
Disbuf[1]=0x9e;
Disbuf[2]=0x9e;
Disbuf[3]=0x9e;
while(1)
{DisplayFresh();//不再测速等待复位i
}
}
}
}
//在数码管上显示一个四位数
voidDisplayFresh()
{
P2|=0xF0;
LED_SEG0=0;
LED_DAT=table[Disbuf[0]];
Delay(1);
P2|=0xF0;
LED_SEG1=0;
LED_DAT=table[Disbuf[1]];
Delay(1);
P2|=0xF0;
LED_SEG2=0;
LED_DAT=table[Disbuf[2]];
Delay(1);
P2|=0xF0;
LED_SEG3=0;
LED_DAT=table[Disbuf[3]];
Delay(1);
P2|=0xF0;
}
//计算转速,并把结果放入数码管缓冲区
voidClacSpeed()
{
uintspeed;
uintPlusCounter;
PlusCounter=TH1*256+TL1;
speed=K*(PlusCounter/PLUS_PER)/60;//K是校准系数,如速度不准,调节K的大小
Disbuf[0]=(speed/1000)%10;
Disbuf[1]=(speed/100)%10;
Disbuf[2]=(speed/10)%10;
Disbuf[3]=speed%10;
}
//初始化定时器T0
voidinit_timer0()
{
TMOD&=0xf0;//定时10毫秒/*Timer0mode1withsoftwaregate*/
TMOD|=0x01;/*GATE0=0;C/T0#=0;M10=0;M00=1;*/
TH0=0xC0;/*initvalues*/
TL0=0x00;
ET0=1;/*enabletimer0interrupt*/
EA=1;/*enableinterrupts*/
TR0=1;/*timer0run*/
}
//延时函数
voidDelay(uintms)
{
uchari;
while(ms--)
for(i=0;i<100;i++);
}
//初始化定时器T1
voidinit_timer1()
{
TMOD&=0x0F;/*Counter1mode1withsoftwaregate*/
TMOD|=0x50;/*GATE0=0;C/T0#=1;M10=0;M00=1;*/
TH1=0x00;/*initvalues*/
TL1=0x00;
ET1=1;/*enabletimer1interrupt*/
EA=1;/*enableinterrupts*/
TR1=1;/*timer1run*/
}
『叁』 转速测量及显示逻辑电路设计
请直接联系我。留言或者Q:气死而八九要五六另。
我上班有时候Q不上线,可以将相关资料发至我邮箱[email protected]
『肆』 急需《智能转速测量装置的设计与制作》毕业设计一份
你好
专业代做毕业论文
多年经验
团队合作`
质量保证
诚信可靠
需要的话加团队名字沟通
『伍』 分别用光电元件和霍尔元件设计测量转速装置,并说明其原理,高分跪求
这是我之前写的一篇文章供您参考
谈谈霍尔元件在里程表、速度表中专的应用
霍尔元件与磁场封属装在一起可以感应转动的齿轮个数,输出相应的电压脉冲信号,根据处理这些电压脉冲信号,可以得到电机的速度和总里程,制成霍尔式里程表和速度表。霍尔式里程表或速度表有非接触式测量、工作频率高、可靠性高等优点,被广泛的应用在电动车、摩托车和其他仪器设备上。
霍尔式里程表通常有两种实现方案,下面来介绍此两种方案的优缺点
方案1:采用单极型开关霍尔。单极型霍尔只需要感应一个磁极即输出一个方波。此种方案理论上只需要一个磁钢,可以使传感器的体积作到很小,同时节约成本;但由于单极型霍尔在一些特殊情况下(比如不在预料中的抖动或者位移)会出现误动作,导致检测结果有些偏差。所以单极型霍尔式里程表或速度表常被应用于一些对精度要求不高的测距和测速,例如电动自行车或者电摩、跑步机等。
方案2:采用双极型开关霍尔。双极型霍尔需要感应两个磁极完成一个周期的方波输出,避免了方案一中的误动作几率,可以实现比较高的可靠性;但由于至少需要两个磁极,所以成本较高,体积相应也较大,所以此方案在精度与可靠性要求较高的场合比如汽车中使用。
QQ是我id
『陆』 单片机课程设计转速测量仪设计
这个你使用单片机P3.5脚的T1计数器功能就可以实现了,
不过注意一点,你所采集的信号要通过施密特反相器,否则有可能误判;
『柒』 直流电机转速测量的课程设计怎么做
我可以给你一套详细的资料 把邮箱给我 并采纳我的答案!
『捌』 采用单片机设计一个控制直流电机并测量转速的装置
关于单片机的问题你可以咨询河北石家庄久华正德科技有限公司的 王工,他是C语言和C++的高手,VB或者JAVA都很擅长,你可以免费咨询的。希望可以帮到你!