求教如何用单片机对伺服电机位置控制 点击:1975 | 回复:3



lc7125

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2006年3月29日
发表于:2006-03-29 16:00:00
楼主
  请高手帮帮忙!谢谢!
  我做的实验是用单片机发脉冲控制伺服电机位置控制。我用的的单片机是intel80c51bh,伺服电机的富士伺服系统,对脉冲控制有三种方式,命令脉冲/命令符号;正转脉冲/反转脉冲;90度相位差2路信号。富士伺服系统电机旋转一周分辨率是17位:131072脉冲/转。可以设置命令脉冲补偿来设置每转脉冲数,公式:
(伺服电机旋转1周时的机械系统移动量)        命令脉冲补偿α  
  [u]                            [/u]  × [u]              [/u]  ﹦(单位量)
       131072脉冲/转                         命令脉冲补偿β
我的思路是:伺服放大器α=8192,β=625,即10000个脉冲转一圈,设定电机一圈机械位移量为10mm,单位量为0.001。单片机用6MHZ晶振,用单片机的30管角 ALE恒定输出1MHZ,与P2.6管角经与非门再由而分频器分为500khz输出到伺服放大器上,这样一秒可以转50圈,即是位移0.5米,位置和时间形成关系s=2t,这样就可以控制我所要达到的位置了。P2.6是用来控制时间的,我在电脑里用VB搭建界面经232将要达到的位置输入到单片机,单片机接受到,经过读取数据发送脉冲此时P2.6置1,到时间后P2.6置0,这样脉冲就输不进去伺服放大器了,电机就可以停了,接着就可以重新输入数据。

我的问题是:
  1.富士系统要求脉冲输入端CA、*CA之间的电压振幅是2.8v-3.7v之间,我的单片机都是接的+5v电源,这样脉冲可以被接受吗?
  2.我的这个思路可行吗?如果不行,请问哪儿有问题
  3.如果可行请问伺服放大器应该用那种位置控制方式?(命令脉冲/命令符号;正转脉冲/反转脉冲;90度相位差2路信号)

 我的想法是用命令脉冲/命令符号,但是富士伺服电机有4根脉冲输入端CA、*CA、CB、*CB,采用这种方式,从单片机发出的脉冲可以直接接到CA,是不是直接接一个反相器就可以接到*CA了,另外CB、*CB是不是用单片机的其他口如P2.5等发出信号来控制? 


刘岩利老师一定帮帮忙解决一下



刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2006-03-30 08:39:00
1楼
1、我不知道,应该可以,只要这样标的,应该就可以接收RS422信号
2、可行,但是最好考虑一下加减速的过程。
3、前两种程序比较简单。

最好使用专门的驱动芯片,比如26LS31 之类。

lc7125

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2006年3月29日
发表于:2006-03-30 20:14:00
2楼
非常感谢刘老师!
  看了您的指导,我发现我的设计存在漏洞,脉冲输出没有加AM26LS31差分输出,所以脉冲不能输进伺服放大器,最后请问采用命令脉冲和命令符号,那命令符号怎么设置的,也是由一个管角如P2.5引出然后经AM26LS31输出是吗?
最后祝刘老师身体安康,这样我们这些新手才能听您的指导
谢谢!

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2006-03-31 19:18:00
3楼
我没有用过富士的电机(这东西沈阳老宋比较词熟,他就是卖富士的),如果脉冲信号必须要差分信号,那么方向信号必然也是如此。

热门招聘
相关主题

官方公众号

智造工程师