小磷光一

ADuC7060进行位置检测

0
阅读(9654)

  在使用ADuC7060微处理器来进行位置检测,与上一代的相比,ADuC7060具有更加强大脉冲检测功能和更高精度的AD/DA转换精度,其可实现对脉冲进行高电平检测、低电平检测、上升沿和下降检测,为了实现对脉冲的快速检测,在我做的这个系统中,采用了上升沿中断检测的方式来实现对码盘脉冲信号进行计数。对于机械臂转向的判别,即可使用硬件来实现,又可通过软件实现,但使用硬件即不经济,且占用大量的空间,造成接线线路的复杂和不可靠,为了减少外部硬件电路脉冲信号检测带来的干扰,所以我采用了软件判断的方式,将A、B项脉冲直接进行比较来判向,但由于码盘输出信号的幅值为4.3V左右,而单片机的I/O端口输入电压不能大于2.5V,为了防止二者直接相连造成单片机的损坏,必须对码盘输出脉冲信号进行分压处理,其信号检测硬件电路连接如图所示:

硬件电路连接图

  我们把码盘输出脉冲A向为计数输入端,B向判向输入端,单片机采用上升沿中断的方式,当单片机检测到A向出现上升沿时,进入中断,此时判断B向脉冲的电平高低,由上图可以看出,若B为高电平则机械臂为正向转动,此时计数器加一,若为低电平则为反转,则计数器减一。若机械臂运动到限位位置,即限位开关闭合则计数器清零,最后将计数结果以D/A输出给PC1711板卡。

码盘冲数检测程序流程如图所示:

脉冲数检测程序流程图

  接下来我们使用单片机对实验对象即机械臂的基座、大臂和小臂的光电码盘输出信号进行了检测,得出了各个关节从初始位置到最大转动范围时光电码盘所对应的脉冲数如下表所示:

光电码盘输出脉冲数与关节角度范围对应关系

 

关节

转动范围(°)

脉冲数

基座

300

12000

大臂

130

5320

小臂

90

3700

 

 

从而实现了位置的检测。