c语言控制步进电机,c语言控制步进电机正反转

dfnjsfkhak 14 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言控制步进电机问题,于是小编就整理了2个相关介绍c语言控制步进电机的解答,让我们一起看看吧。

  1. 步进电机基本控制方法?
  2. 89c51单片机最多能控制几个二相四线步进电机?需要同时控制?

步进电机基本控制方法

可以单片机+全集成步进电机驱动芯片来整全应用,这样比较简单,控制上很方便。

用普通的51单片机像AT89C2051或STC12C1052 + THB7128或THB6064这类芯片来组合就可以了 单片机根据输入来决定输出的脉冲数量,让步进电机驱动芯片转化成功率信号驱动步进电机。

c语言控制步进电机,c语言控制步进电机正反转-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

因为是一个脉冲走一步的,所以输出的脉冲数还要考虑到细分数的问题,固定转动步数、角度的程序还是比较容易编。

像1.8度的步进电机,2细分时,转一圈就需要400个脉冲,转半圈只需要200个脉冲,转90度只需要100个脉冲,如此类推。

程序的话,固定一个适当的频率,按键触发启动定时器,然后在定时中断里取反一个IO端口做脉冲输出,再放入一个累加变量计算,算脉冲数量,是取反两次输出一个完整的脉冲,在主程序中设定一个需要的脉冲数量来作为条件控制定时器的开启和关闭,然后循环等待条件满足如果想把控制、驱动、和步进电机都整合在一起,比较麻烦,小电机还好,大电机的干扰是个问题

c语言控制步进电机,c语言控制步进电机正反转-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

89c51单片机最多能控制几个二相四线步进电机?需要同时控制?

上不添加外设,可以像楼上说的,32个IO口接8个电机,如果接外设,可以和2楼说的一样,接满地球,因为有专用的控制步进电机的芯片,单片机控制电机就非常方便了,不过这样可能就没体会到提问者的意思。我们仅就不添加外设进行讨论。

但是除了IO口的限制,还有单片机的限制,由于单片机运行指令是一条一条执行的,没有并发机制,所以如果对多个步进电机进行同时操作,如果操作频率并不高,可以做到几乎同时(不是严格意义上的完全同时,因为指令一次只执行一条,当然两个电机同步操作同步运转不在讨论范围之内)。但如果接上比较精密的高速度高频率操作的步进电机时,可能就会有问题。

通俗的说,你给步进电机发一个指令,电机会运动一个步距,在电机运动到下一个步距之后,单片机再发送下一个指令,在这两个指令之间单片机可以去做别的事情,比如去控制另一个电机。如果电机操控精细,在最极端的情况下,两个指令之间的间隔,还不足以执行额外的一条指令,那么单片机就只能控制一个电机了。即使用中断也是没用的,第一个电机的运转会受到影响。

c语言控制步进电机,c语言控制步进电机正反转-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

所以可以控制多少个电机,要参考你单片机的晶振,和你电机到底需要什么样的控制,如果需要的操作并不太精细,在第一个电机的两条指令间隔能够有时间发送多条指令,那么就能够增加控制电机的数量,这个数量需要根据实际情况来看。

到此,以上就是小编对于c语言控制步进电机的问题就介绍到这了,希望介绍关于c语言控制步进电机的2点解答对大家有用

标签: 步进电机 控制 单片机