式。
(1)分辨率
光电编码器的分辨率是以编码器轴转动一周所产生的输出脉冲数来表示的,即脉冲数/转(PPR)。码盘上的透光缝隙的数目就等于编码器的分辨率,码盘上刻的缝隙越多,编码器的分辨率就越高。本次实验所采用的编码器A、B相的分辨率是1000,Z相的分辨率为1。 (2)精度
增量式光电编码器的精度与分辨率完全无关,这是两个不同的概念。精度是一种度量在所选定的分辨率范围内,确定任一脉冲相对另一脉冲位置的能力。精度通常用角度、角分或角秒来表示。编码器的精度与码盘透光缝隙的加工质量、码盘的机械旋转情况的制造精度因素有关,也与安装技术有关。 (3)输出信号的稳定性
编码器输出信号的稳定性是指在实际运行条件下,保持规定精度的能力。影响编码器输出信号稳定性的主要因素是温度对电子器件造成的漂移、外界加于编码器的变形力以及光源特性的变化。由于受到温度和电源变化的影响,编码器的电子电路不能保持规定的输出特性,在设计和使用中都要给予充分考虑。 (4)响应频率
编码器输出的响应频率取决于光电检测器件、电子处理线路的响应速度。当编码器高速旋转时,如果其分辨率很高,那么编码器输出的信号频率将会很高。如果光电检测器件和电子线路元器件的工作速度与之不能相适应,就有可能使输出波形严重畸变,甚至产生丢失脉冲的现象。这样输出信号就不能准确反映轴的位置信息。所以,每一种编码器在其分辨率一定的情况下,它的最高转速也是一定的,即它的响应频率是受限制的。编码器的最大响应频率、分辨率和最高转速之间的关系如以下公式所示。
(5)信号输出形式
由于光栅的作用,产生脉冲,信号就是以脉冲的形式输出的,产生脉冲的时候,输出是高电平,当光线处于两个光栅之间时,输出低电平。测量风速风相就是基于A、B、Z三相的这种输出特点进行测量的。
2.系统方案设计
2.1风向测量方案
方案一:
图2.1 A、B两相信号相位关系变化
由图3.1列出A、B两相信号由于换向可能出现的所有情况,其计数原则: ①A为上升时沿,B=0,计数器加1; ②B为上升时沿,B=1,计数器加1; ③A为下降时沿,B=1,计数器加1; ④B为下降时沿,A=0,计数器加1; ⑤B为上升时沿,B=0,计数器减1; ⑥A为上升时沿,B=1,计数器减1; ⑦B为下降时沿,B=1,计数器减1; ⑧A为下降时沿,B=0,计数器减1;
优点:这种方法不仅能实现鉴相,而且可以消除抖动干扰。 缺点:对于上升沿、下降沿的判断使用查询编程实现较复杂,A脉冲接到I/O端口P1.0,脉冲接到I/O端口P1.1,相脉冲接到I/O端口P1.2经实验尝试,风向显示不灵敏,查询比较费时。 方案二:编码器输出的A向脉冲接到单片机的外部中断INT1,B向脉冲接到I/O端口P1.0,Z向脉冲接到I/O端口P1.1。当系统工作时,首先要把INT0设置成下降沿触发,并开相应中断。当有有效脉冲触发中断时,进行中断处理程序,判别B脉冲是高电平还是低电平。若是高电平,则编码器正转,加1计数;若是低电平,则编码器反转,减1计数。为了减小由于误差,设定Z相为参考产生脉冲的地方为参考位置,起到校准的作用,每次Z产生脉冲的时候,度数都清零。
优点:如图3.1所示,方案二只应用到A、B两相信号相位关系变化中③和
⑧两种情况,但是使用中断进行判断,反应比较灵敏。Z相为参考产生脉冲的地方为参考位置,起到校准的作用,可以保证精度的实现。
缺点:只应用③和⑧两种情况,检测的精度相对降低,但是能基本满足要求。 综合考虑方案一和方案二,方案二比较容易实现,也能基本达到实验要求,故选择方案二。
2.2风速测量方案
由于光电码盘与电动机同轴, 电动机旋转时, 光栅盘与电动机同速旋转, 经发光二极管等电子器件组成的检测装置检测输出若干个脉冲信号, 通过计算每秒A相光电编码器输出脉冲的个数就能反映当前电动机的转速, 即: n=N/(mT) (1) 式中: n—转速(r/s); N—采样时间内所计脉冲个数;T—采样时间(s); m—每旋转一周所产生的脉冲个数(本次实习采用的编码器A相的分辨率是1000)。 光电编码器输出的A向脉冲接到单片机的外部中断INT0,用于计脉冲数N,再使用单片机里面的定时器T0进行定时T。
3.系统硬件设计方案
3.1 STC89C52单片机主电路
按照功能,STC89C52的引脚可分为主电源、外界晶振或振荡器、多功能I/O口,以及控制、选通和复位四类。
尽管均可作普通I/O口用,但P0~P3口的结构和驱动能力有所不同:P1、P2、P3是内部带上拉电阻的8位准双向口,不必外接上拉电阻,每个端口可带4个TTL;P0口是开漏结构的8位准双向口,作普通I/O口时必须外接上拉电阻,每个端口可带8个TTL负载。所以在外接LCD1602的时候P0口加了1K的上拉电阻。
引脚复用功能P0、P2口为普通I/O口和总线复用口,P1的部分和P3的全部端口具有第二功能。STC89C52的I/O口具有自动识别特性。即P0、P2口的总线复用和P1、P3口的第二功能,都是由单片机内部自动选择的,不需要使用者通过指令去设定。
STC89C52可外接晶振或振荡器,频率范围0~33MHz,外接振荡器时XTAL2浮空,该电路图中,我选择接入了一个12M的晶振,以实现晶体振荡电路。
主电路的PROTEUS仿真图见图3.1,P0接LCD的数据口D0~D7,P2.0、P2.1、P2.2分别接LCD的rs、rw、e。测速光电编码器A 相接P3.2,测向光电编码器A相接P1.0,Z相接P1.1,B相接P3.3。
图3.1 单片机连接原理图
3.2 1602显示屏电路
图3.2 LCD1602连接原理图
1602共16个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号);编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。 以下具体阐述这三个管脚:
RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。 R/W为读写选择,高电平进行读操作,低电平进行写操作。 E端为使能端,后面和时序联系在一起。
除此外,D0~D7分别为8位双向数据线,3号管脚为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
4.系统软件设计
4.1风向模块 程序流程图见图5.3 4.2风速模块
测速程序流程图见图5.2 4.3主程序模块 程序流程图如下图
图4.1主程序流程图 图4.2测量风速程序流程图