找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7324|回复: 3
收起左侧

[求助]单片机如何控制电机转动的角度?

[复制链接]
ID:10918 发表于 2009-4-9 16:48 | 显示全部楼层 |阅读模式
我现在在学这方面的知识,关于控制电机正反转还有速度的资料都能找得到,但是控制它角度还不知道,请哪位大侠指点一下,
不胜感激!
回复

使用道具 举报

ID:10920 发表于 2009-4-9 17:34 | 显示全部楼层
我也对这个问题发愁, 我最近这在研究这个,有高手能帮助一下吗?
回复

使用道具 举报

ID:6481 发表于 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度
推荐还是用第一种
  都是些很基础的知识 资料网上肯定有
我用通俗的解释了
如果实在还是不懂 去看下书上的 中断 定时 指令这些  
 

回复

使用道具 举报

ID:606 发表于 2009-4-11 11:45 | 显示全部楼层
好人真多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表