为什么上位机通过单片机控制控制步进电机只能单步的控制

我采用的是delphi做上位机控制步进电机。如果我用单片机直接控制电机,电机可以连续的转动,但是当我用上位机控制电机时,我只能点一下按钮电机才转一个步然后停止,我再在上位机程序加上延时让它自动转起来,但是转起来没有直接用单片机控制时转动的顺畅?请问这是什么原因?是单片机程序,上位机程序还是他们本来就是这样子的?

    你是不是 上位机 发指令给单片机,单片机再去控制步进电机啊?

    首先上位机如果是WINDOWS操作系统,那它不是实时操作系统

    你应该用上位机发脉冲数指令给单片机,单片机收到脉冲数指令后,再去控制脉冲的发送过程。

    例如:上位机要求步进电机走2000步,那你就让上位机发2000给单片机。

    单片机收到2000后,再去控制连续发送2000个脉冲给步进电机驱动器

    这样做就比较流畅了。

追问

对啊,如何一次发送指令给单片机,让它可以一次性完成特定的脉冲。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-09
电脑通信口按时间间隔向外发信息,如果用它发脉冲给电机驱动器,肯定比专门的单片机慢,造成驱动器收到的每个脉冲的间隔变大,转动不连续。追问

那有没有方法可以解决这样的误差呢?

追答

用嵌入式工控机,只做发脉冲和控制功能,就可以。

第2个回答  2013-10-09
上位机与下位机配合的问题,我用vb做串口通信没有什么问题
相似回答