找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 221|回复: 1
打印 上一主题 下一主题
收起左侧

直线插补 电机移动位置怎么处理

[复制链接]
跳转到指定楼层
楼主
ID:104712 发表于 2024-8-18 18:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码抄自帖子 http://www.51hei.com/bbs/dpj-127428-1.html
请大牛帮忙一下我的电机是42步进电机 1.8度 16细分
这是直线插补算法 比如a=countx;b=county; a=6 b=4
一u共循环10次  每次计算得到x轴加6次 y轴加4次  每次分别调用stepx();stepy();发送1个脉冲,
一共才发送10个脉冲 也走不到x=6 Y=4 我的步进电机驱动设置16细分


希望好心解答 给出16细分的代码 本人谢谢  解决了我可以发给红包 本人学生经济有限给不了太多发个红包意思意思







  • if(Fm[k]>=0)
  •                 {
  •                         x++;
  •                         m--;
  •                         stepx();
  •                         k++;
  •                         Fm[k]=Fm[k-1]-b;
  •                 }
  •                 if(Fm[k]<0)
  •                 {
  •                         y++;
  •                         m--;
  •                         stepy();
  •                         k++;
  •                         Fm[k]=Fm[k-1]+a;
  •                 }

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

  • uint countx=0;
  • uint county=0;
  • uint count,flag=0;
  • uint x=0;
  • uint y=0;
  • uint a=0,b=0,k=0,m=0;
  • uint st=0;
  • char Fm[20];

  • uchar code bux[]={0xf0,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
  • uchar code buy[]={0x00,0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90};

  • void star()
  • {
  •         a=countx;
  •         b=county;
  •         m=a+b;
  •         Fm[k]=0;
  •         while(m>0)
  •         {
  •                 if(Fm[k]>=0)
  •                 {
  •                         x++;
  •                         m--;
  •                         stepx();
  •                         k++;
  •                         Fm[k]=Fm[k-1]-b;
  •                 }
  •                 if(Fm[k]<0)
  •                 {
  •                         y++;
  •                         m--;
  •                         stepy();
  •                         k++;
  •                         Fm[k]=Fm[k-1]+a;
  •                 }
  •         }
  • }
  • void stepx()
  • {
  •         P3=bux[x];
  •         delayms(1000);
  • }
  • void stepy()
  • {
  •         P1=bux[y];
  •         delayms(1000);
  • }



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1128898 发表于 2024-8-19 05:07 | 只看该作者
电机抖动机械系数考虑一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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