基于红外反射的光电传感器测速机
引言
在工程实践中,经常会遇到各种需要测量速度的场合。速度是电机极其重要的状态参数。在许多运动系统的测量和控制中,需要测量电机的速度。无论是直流调速系统还是交流调速系统,只有高精度检测才能获得高精度控制系统。到目前为止,速度测量可分为两类:模拟电路速度测量和数字电路速度测量。随着微电子技术的发展,计算机技术的广泛应用,以计算机为核心的数字速度测量装置应运而生。该速度测量装置具有广泛的测量范围、灵活的工作模式和广泛的适应性,具有普通数字速度测量装置无法比拟的快速性、准确性和优势。
一、设计思路
一套光电管由一个红外发光二极管和一个接收红外发光二极管组成。当检测到的物体表面为黑色时,反射光非常弱,接收端检测到的光可以忽略,使接收端呈现一种状态,如开关管的截止日期;当检测到的物体表面为白色时,反射光强,发射端发射的所有红外线都被接收端接收,使接收端呈现另一种相反的状态,如开关管的开启。这两种相反的状态表现在电路中,即由高低电平组成的脉冲信号。因此,我想用一个比较器来比较两个接收到的信号,从而输出0和1两个高低电平,并将两个信号传输给单片机进行统计,然后使用设置算法进行计算,最后通过数字显示管显示计算结果。
二、所需模块
该测速系统由两个模块组成,一个是光电传感器部分,用于接收光信号并转换为电信号,即高低电平信号;另一个是单片机部分,用于接收高低电平信号并通过内部计算,然后通过数字显示管显示测量结果。光电传感器部分
(1)LM339工作原理及管脚图:
LM339类似于增益不可调的操作放大器。每个比较器有两个输入端和一个输出端。
两个输入端中的一个称为相同的输入端,用 表示,另一个称为相反的输入端,用-表示。当用于比较两个电压时,任何输入端都会添加一个固定电压作为参考电压(也称为门限电平)LM当 端电压高于-端电压时,输出管的截止日期相当于输出端的开路。当-端电压高于 端电压时,输出管饱和,相当于输出端的高电位。两个输入端的电压差大于10mV因此,输出可以从一种状态可靠地转换为另一种状态LM在弱信号检测等场合使用339是理想的。
LM339的输出端相当于一个晶体三极管,不接收电极电阻。当输出端到正电源时,通常需要连接一个电阻(称为上拉电阻,选择3-15K)。选择不同电阻值的上拉电阻会影响输出端的高电位值。因为当输出晶体三极管截止时,其集电极电压基本上取决于上拉电阻和负载值。
下图(1a)给出了一个LM399基本单限比较器。输入信号Uin为了比较电压,将其添加到同相输入端,并在反相输入端连接参考电压(门限电平)Ur。当输入电压Uin>Ur输出为高电平UOH。图(1b)图(1)c)为LM339的管脚图。
(c)
图(1)LM339工作原理图及管脚图
(2)整体连线图:如下图(2)所示:
图(2) 比较光电传感器整体电路图
在上图中,LED灯相当于红外发射管,JP一是红外接收管,接收光强转化为电流R它成为一个电压信号。当光照射在白色表面时,光反射强烈,光照射在黑色表面时,光反射较弱。因此,当光照在不同的颜色表面时,电阻值会发生显著的变化。电阻值的变化值和RA比较1的标准值,可以从LM单片机输出339逻辑电平。
单片机部分
(1)单片机外部连线图如下图(3)所示
单片机连线图(3)
在上接线图中,可在数码管与单片机之间接上一个分压电阻,起到保护作用。单片机型号选89C51或89C52都可以。将图(1)中的2管脚(逻辑电平输出管脚)与图(2)中的12管脚(中断输入管脚)连接在试验板上,形成整个测速系统。
(2)单片机内部主程序流程图
主程序是控制单片机系统按照预定的操作模式运行,完成人机对话和各种控制功能,是单片机系统程序的框架。主程序的主要任务是完成系统自检、初始化、键盘命令处理等功能。键盘命令不涉及本实验。
主程序流程如下图(4)所示。
(4)主程序流程图 外部中断0 中断程序图
在速度测量系统的程序中,主程序执行了3个中断程序,即外部中断0 中断、外部脉冲计数0 中断和定时器1 中断。图(5)显示了外部中断0 中断程序流程图。外部中断0 中断程序主要用于速度测量开始。当速度测量开始时,外部中断0 中断,外部脉冲计数加1,并判断T0、T1 是否打开,如果不打开,则打开,然后判断1S 定时到了吗?S 定时计算转速并关闭转速INT0、T0、T1 软件清零。
图(6)为T0 中断程序流程图。T0 计数内部时钟脉冲,T0 为8 位定时器,1S 定时内部时钟脉冲超过T0 上限,因此采用软件延时计数。图(7)为T1 中断程序流程图,T1 定时1S,定时到达一秒时,位置标志位。
图(6)T0 中断程序流程图 图(7)T1 中断程序流程图
三、测速原理
首先,选择一个小型直流电机,在其轴上固定一张圆形纸,以取代被测物体。其次,将圆形纸平均分为6等分,并涂黑三块(见实物)。第三,用光电管面对圆形纸。最后,启动整个系统以测量速度。
因为当红外线照射到黑色表面时,反射光很弱,接收器检测到的光可以忽略不计。当照射到白色表面时,反射光很强,发射器发射的红外线几乎被接收器接收。因此,在比较电路输出后,检测到的信号将向单片机输入两个电平。因此,在编程中,假设是1S时间内共检测到n如果是低电平信号,电机的转速是
。
四:整体电路图和实物图
见附一图所示。
五、所需设备名称、型号、价格
51单片机STC89C51RC1件9元
光电管1套5元
四电压比较器LM3391件1.5元
四位数字显示管12管脚5元
1/4电阻0.47K,1K,3.3K,10K,10个(备用)0.8元
电位器103(10K)2个1元
瓷片电容22PF,104(100nF)各10个(备用)2元
万用版1块3元
电池盒1个1元
PIC座位20,40脚(2 1)1元
排针40PIN2排1元
晶振12M1个1元
复位开关1个0.1元
LED灯5个0.5元
共计:31.9元
六:总结
本设计的光电传感器速度测量器可以快速检测到电机横截面上的黑白表面,并通过单片机编写速度测量程序,用数字管显示。然而,本设计的速度测量系统的整体性能只能满足一般小型电机和一些要求较低的速度测量,在测量速度时,还需要在测量对象上安装一个黑白圆盘,这对一些测量对象不容易实现,即其是存在一定的局限性的。除此之外,其精确度也不尽完美。
但整体来说,此测速系统还是具有可行性的。当我们需要知道某电机的转速而又缺少测速装置时,就可以用此套系统来进行测速。它的简单性,方便性和快捷性也是某些测速装置不可比拟的。至于其缺点,由于设计者水平目前有限,暂不能完美解决,只待以后对此方面有较多理解后在解决,同时也希望对此精通的师生给予指点,从而进行改进测速方法,提高整个系统的测速性能。
附一:整体电路图
附二:程序源代码
#include
#define uint unsigned int
uint temp,qian,bai,shi,ge,aa,n;
sbit dula=P0;
sbit wela=P1;
sbit zd=P3^2;
uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void display(uint qian,uint bai,uint shi,uint ge);
void delay (uint z);
void init();
void main()
{
EA=1;//开总中断
EX0=1;//开外部中断0
init();//初始化子程序
while(1)
{
display(qian,bai,shi,ge);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uint qian,uint bai,uint shi,uint ge)
{
P0=table[qian];
P1=0xf7;
delay(1);
P0=table[bai];
P1=0xfb;
delay(1);
P0=table[shi];
P1=0xfd;
delay(1);
P0=table[ge];
P1=0xfe;
delay(1);
}
void exter0() interrupt 0
{
n++;
while(zd==0);
}
void init()
{
wela=0;
dula=0;
temp=0;
TMOD=0x01;
TCON|=0X04;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==20)
{
aa=0;
temp=20*n;
n = 0;
…………限于本文篇幅 余下代码请从51黑下载附件…………复制代码完整论文下载(word格式 可编辑):
2017-7-1 21:14 上传
点击文件名下载附件