找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7247|回复: 4
收起左侧

步进电机正转、反转、角度控制目标达成

[复制链接]
ID:26516 发表于 2010-10-23 17:46 | 显示全部楼层 |阅读模式

   话说试验用的电机和单片机买回来也快两个星期了,到现在才达到这个进度,真的是相当慢了。

        试验过程中程序上倒没遇到什么问题,也就是for、while语句。主要还是在单片机和电机上,几乎是从头开始,以前上课压根就没好好学,又丢了这么长时间。

        试验用的单片机是最简单的51单片机,80C52,一共有4个I/O口,每个口8个针脚,每个I/O口一次传输8位2进制数,每一位对应I/O口的一个针脚。电机是四相步进电机(工作方式有四拍、八拍,四拍可以简单理解为每项通电完成四分之一个工作周期,八拍即八分之一个工作周期),步进角度5.625度(一个工作周期走5.625度)。电机通过一个ULN驱动芯片与单片机的I/O口连接。

        单片机的驱动程序主要是通过一个数组来驱动电机,如果是四拍工作方式,数组里需要4个数,八拍即8个数。我主要就是卡在这里。为什么呢?举例说明,{0x01,0x02,0x04,0x08},这是一个含有四个元素用16进制表示的数组,因为知识的贫乏,我始终闹不明白这个数组是通过怎样的方式来驱动电机。现在闹明白就简单了

{0x01,0x02,0x04,0x08}

写成8位二进制数就是

0000 0001

0000 0010

0000 0100

0000 1000

从右往左,每一位表示I/O口的一个针脚,而这里每一个针脚则对应电机的一相,四拍工作方式只要用到8位2进制数中4位就够了,0x01的2进制数右数第一位为1,就是第一个针脚输出高电平,第二位为0即输出低电平,依次类推,0x01作用在电机上的意思就是电机的第一相通电,电机运行四分之一周期(就是5.625度/4)。当程序读取第二个数组元素0x02时,则是电机的第二项通电,再运行四分之一周期。这样通过读取数组,就完成了对电机的控制,如果是采用八拍控制,可以精确到5.625度/8。

        至此,想要实现其他控制,只要通过程序的变化就可以完成,电机控制的学习就此完结。目前计划,因电液伺服的学习才断续的开了个头,继续跟进学习,单片机学习再继续深入。

回复

使用道具 举报

ID:56948 发表于 2014-2-6 02:26 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:217754 发表于 2017-7-9 21:33 | 显示全部楼层
谢谢分享。虽然我还没搞明白。今天才收到板
回复

使用道具 举报

ID:217754 发表于 2017-7-10 22:34 | 显示全部楼层
厉害知道些了。谢谢分享。正在学怎么写
回复

使用道具 举报

ID:92894 发表于 2017-10-10 19:38 | 显示全部楼层
谢谢分享。正在学
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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