标题: [求助]单片机如何控制电机转动的角度? [打印本页]

作者: lanyan1340    时间: 2009-4-9 16:48
标题: [求助]单片机如何控制电机转动的角度?
我现在在学这方面的知识,关于控制电机正反转还有速度的资料都能找得到,但是控制它角度还不知道,请哪位大侠指点一下,
不胜感激!
作者: 寒江侵袭    时间: 2009-4-9 17:34
我也对这个问题发愁, 我最近这在研究这个,有高手能帮助一下吗?
作者: 耗子    时间: 2009-4-9 19:05

知道光敏电阻的原理吧 有光照 和没光照在上面 它的电阻值是不一样的
  在码盘上安装个红外对管 
    自己做轮子的时候在上面 打孔 位置调整好 
   这些资料你应该都有吧
 那么  把输出脚 接 单片机的 外部中断
  每个低电平的时候  就触发一次中断
在中断程序里 计数变量 count 加1
 那么 在主程序中 当 碰到障碍要转弯时 给电机设置好 脉冲
然后 设置标志位 为 SETB F0 ; F0 为1
再给 count 给初值比如 20
然后就 JB F0 $  ;为1就等待
那么在中断程序里面 你用个DJNZ COUNT EXIT
判断码盘是位检测到20次中断  检测到20次了
然后 清标志位
然后EXIT
这个值只是个假想值 实际你要根据你的电源 机械部分 等 做调整 就可以 实现小车 90度 180度 360 度 

当然另外还有种方法 也用中断 不过 是用定时器T0 或者T1
T0 定时 50MS 时溢出  也要设置一个 计数值 COUNT
在主程序中 当 碰到障碍要转弯时 给电机设置好 脉冲
然后 设置标志位 为 1   SETB F0 
然后 给count  给初值 20
然后就 JB F0 $  ;为1等待
在T0或者T1的中断程序里面 你用个DJNZ COUNT EXIT
 这就是说是否转了1秒了  转完了 清标志位 EXIT
  但是这个方法有个缺点 由于机械部分 和电源 的影响 并不能保证每次转的角度是精确的
 比如你刚冲满电 他1秒能转180度  但是当用了没有多少电了 它1秒只给你转90度
推荐还是用第一种
  都是些很基础的知识 资料网上肯定有
我用通俗的解释了
如果实在还是不懂 去看下书上的 中断 定时 指令这些  
 


作者: 270576081    时间: 2009-4-11 11:45
好人真多




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1