电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
输出两路pwm波来控制步进电机,同时控制时脉冲数不精确
已解决
73482
个问题
已帮助
5993
位优秀工程师
输出两路pwm波来控制步进电机,同时控制时脉冲数不精确
雪狼
2019-10-10
浏览量:775
我想输出两路pwm波来分别控制两个步进电机画圆,但是在 Locate_Rle(6400500dir1);
Locate_Rle1(128001000dir2);这地方 我单独控制一个步进电机可以精确的运动一圈,单独控制的时候6400是一圈,
但是两个一起的时候却不能精确地运动一圈,希望有大佬出来解释一下,感激不尽。程序源码已贴出
void Draw_Line(float x1float y1float x2float y2)
{
float L1L2;
float sulv;
DIR_Type dir1dir2;
float suduLsuduR;
L1=sqrt((x1)*(x1)+(66-y1)*(66-y1))-sqrt((x2)*(x2)+(66-y2)*(66-y2));
L2=sqrt((56-x1)*(56-x1)+(66-y1)*(66-y1))-sqrt((56-x2)*(56-x2)+(66-y2)*(66-y2));
printf("\r\nL1=%lf\r\n"L1);
printf("\r\nL2=%lf\r\n"L2);
if(L1>0) dir1=CCW;//Äæ×a
else dir1=CW;//Ë3×a
if(L2>0) dir2=CW;
else dir2=CCW;
L1=fabs(L1);
L2=fabs(L2);
suduL=1000;
sulv=(L1*1000/L2);
suduR=sulv;
printf("\r\nsuduR=%lf\r\n"suduR);
printf("\r\nsuduL=%lf\r\n"suduL);
printf("\r\ndir1=%d\r\n"dir1);
printf("\r\ndir2=%d\r\n"dir2);
// Locate_Rle(L1*457suduRdir1);
// Locate_Rle1(L2*457suduLdir2);
Locate_Rle(6400500dir1);
Locate_Rle1(128001000dir2);
}
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答
数量:
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
输出两路pwm波来控制步进电机,同时控制时脉冲数不精确
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: