使用bresenham算法步骤硅镁层旋转电机控制超过制服<br>

   2015-03-26 670
核心提示:西玛电机Bresenham算法的计算机图形绘制一条直线最初是用于绘图机控制两个硅镁层的x轴和y轴电机,最近遇到了一个非常类似的步进电
西玛电机
Bresenham算法的计算机图形绘制一条直线最初是用于绘图机控制两个硅镁层的x轴和y轴电机,最近遇到了一个非常类似的步进电机控制载问题,只是用Bresenham算法可以解决这些问题。

问题描述:有大约相同的两个步骤,西玛电机驱动,采用8051单片机控制芯片l297+l298需要同时旋转(在同一时间开始,停止)同时,但以不同的速度。例如在左边的西玛电机180步,同时右侧的硅镁层汽车倒退97步。就像从画的起源点对点线(180-180)。

接口是抽象和西玛电机四个功能:

空白motorleftshrink();//左侧西方寄居于米甸绷紧的绳索
空白motorleftloose();//左侧西方运动放松绳子
空白motorrightshrink();//右侧的西方寄居于米甸绷紧的绳索
空白motorrightloose();//右侧的硅镁层电动机松开绳子



此外,有两个辅助函数,分别对西玛电机控制:

空白motorleftstepint(直接)
{
if (direct == 1)
MotorLeftLoose();
else if (direct == -1)
MotorLeftShrink();
}

空白motorrightstepint(直接)
{
if (direct == 1)
MotorRightLoose();
else if (direct == -1)
MotorRightShrink();
}

现在的任务是编写一个函数movemotor(),有四个参数,分别两步西玛电机转速和方向,让它控制西玛电机同时运行。我使用整数版本的线性bresenham算法,从计算机图形学算法的书。

//参数:absdl,absdr分别对硅镁层电动机???的步骤
//SDL,特别提款权分别对西玛电机旋转方向
空白movemotor3(int,intabsdrintabsdlSDL,intSDR)
S2},{
El+=2*absdl;

而(er和gt;0){
++cntR;
MotorRightStep(sDR);
eR -= 2*steps;
}
Er+=2*absdr;
Wait_ms(15);//等待
}
断言(CNTL==absdl);
断言(容器==absdr);
}

基尔c51编译修改过程后,西玛电机运行状况良好:)



引用:http://tb.blog.csdn.net/trackback.aspx?Postid=488929
西玛电机

西玛电机    西玛电机    

供应西玛电机重印▼z系列中型直流电机
    

 
举报收藏 0评论 0
更多>相关评论
暂时没有评论,来说点什么吧
更多>同类资讯
  • ydgi7876
    加关注0
  • 没有留下签名~~
推荐图文
推荐资讯
点击排行
网站首页  |  公益慈善栏目 赞助本站可以扫描支付  |  免费推广计划  |  全球资源网顾问团  |  帮助中心  |  企业文化  |  关于我们  |  全球信息中心  |  隐私政策  |  使用协议  |  版权隐私  |  广告服务  |  积分换礼  |  网站留言  |  帮助中心
本站对所有发布的信息不承担任何责任,用户应决定是否采用并承担风险。全息元宇宙联合会