如何用51单片机控制4个步进电机同时工作
4个回答
展开全部
用单片机同时是不可能的,当然,时间间隔小到可以接受,跑几个任务,那也可以视为同时。要实现真正意义上的同时,用FPGA/CPLD是可以完成的。
话说回来,也许你的同时并不是说一定严格地同时工作,只是说一个单片机去控制四个步进电机,那就好办多了。
一个步进电机,比如4相5线那种,4个IO口可控制一个,四个步进电机就要16个,驱动芯片用ULN2003即可。
当然,如果你的IO口不允许使用这么多,那也可以通过串转并的方法,扩展IO口,比如用74HC595,三根IO口控制它,它可以级联,三根线可以控制很多片。一片为8位,两片就为16位,3片为24位 …… 只要加些三极管驱动那三根控制线,三个IO口可控制一串级联的74HC595,得到的扩展IO口,那是相当多的。我用三个IO口控制过5片74HC595,三个IO口一下子就扩展成了40个IO口!!!
话说回来,也许你的同时并不是说一定严格地同时工作,只是说一个单片机去控制四个步进电机,那就好办多了。
一个步进电机,比如4相5线那种,4个IO口可控制一个,四个步进电机就要16个,驱动芯片用ULN2003即可。
当然,如果你的IO口不允许使用这么多,那也可以通过串转并的方法,扩展IO口,比如用74HC595,三根IO口控制它,它可以级联,三根线可以控制很多片。一片为8位,两片就为16位,3片为24位 …… 只要加些三极管驱动那三根控制线,三个IO口可控制一串级联的74HC595,得到的扩展IO口,那是相当多的。我用三个IO口控制过5片74HC595,三个IO口一下子就扩展成了40个IO口!!!
展开全部
一般情况下所谓的同时都是不存在的,在嵌入式中实时的定义应该是在主频率比较高(足够高的频率)的情况下,任务一一执行,使得各个任务之间的时间差很小(以上是个人看法,不代表大众意思)。步进电机一般需要外加电机驱动电路,再用单片机的IO控制(大功率的步进电机可以用L297+L298控制,小功率的用ULN2008/ULN2003应该就可以了 。51单片机有32个IO口可以用,驱动4个步进电机没有什么问题的。
追问
奥,是的。最多只给8个io口,其余的要用
追答
L297+L298最少只需要一个使能信号EN和时钟信号CLK就可以控制一个两相的步进电机。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用51单片机加一片专用运动控制芯片,比如hmc8045,51单片机发送四路同步控制的指令给专用芯片,由专用芯片控制电机同步,单片机只要等运动到位以后再发下一个指令就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
51来做,难度大,效果不好,拿来学学单片机编程可以,实际工程应用几乎不可能了。工程应用可以选择串口四轴运动控制器,单片机给控制器发串口指令,实现连续运转,定位运转,回零等等,很轻松。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询