AT89C51单片机,步进电机驱动器L298N驱动,实现单片机识别并输出显示键盘输入的数据信息(转角)并产生连续脉冲控制步进电机转动,电机型号是两相步进电动机42BYG121,其步进角为1.8度,通过半步驱动方式进行细分可获得0.9度的步进角;环形分配器和电机驱动器...
控制器接收到上位机的命令后,首先获取需要转动的步数,然后根据相应命令打开相应定时器的计数功能。控制程序中用定时器1控制二路脉冲输出,定时器2控制一路脉冲输出,从而完成3路电机的控制。 定时器2使用CTC模式,匹配中断使能。通过匹配中断,在OCR2端口可以输出脉冲,通过设定寄存器OCR2寄存器的值可以改变输山脉冲频率。定时器1使用相位与频率修正模式...
键则反向转1~9圈;左键固定正转90度,右键固定反转90;Esc 键终止转动。通过这个程序,我们也可以进一步体会到如何用按键来控制程序完成复杂的功能,以及控制和执行模块之间如何协调工作,而你的编程水平也可以在这样的实践练习中得到锻炼和提升。#include <reg52.h>sbit KEY_IN_1 = P2...
步进电机控制程序设计三要素速度、方向、加速度。步进电机控制程序是一个电脑的控制程序,用来控制电机的运行。
很多人都认为步进电机是不能精密分度的,把伺服电机的驱动方法过于的神化。就本人用步进电机做分度盘的经验来看,其实你只要懂得怎么去用步进电机,懂得怎么去写程序,正常情况下的分度精度还是可以保证的。
步进电机不管在什么场所应用,有一点是必须要保证就是有足够的扭矩。步进电机就是一个大马拉小车的东西。
正常情况下的启动时间,一般来说应尽可能的拉长一些。启动的速度也不可以太快。启停过快都可能会引起过冲的现象。在使用过程中,如果分度不完整,也就是正常要走一圈的,但是发现怎么弄都差那么一点点,也就是有一个接缝,这种情况就是有传说中的失步。解决失步的方法不外乎如下几点:
增加电机扭矩,加大驱动器的电流
降低运行的最大转速;
拉长启动时间;
减小启动转速。
如果以上都没有问题,那么就有可能是程序里面带有无法分完的余数脉冲所产生的累计误差了。
众所周知,脉冲是以整数来计算,没有哪里会出现半个脉冲的说法。但是往往就是这半个脉冲出了问题,如果一个圆分10等份,每个等份差半个脉冲不算个什么。20个等份,每个等份差半个脉冲可能也不是特别明显。但是要分到50个,100个,500个,nnn个等份时,这样每个等份差半个脉冲可就不是一个小数目了。在等份数越多时,就算是每个等份差0.1个脉冲,都是一个天文数字。这就是很多人都认为步进电机无法做出精密的分度盘的原因了。这不仅仅是进步电机,就算是伺服电机,同样也存在这个问题----余数。
假设P0口低4位接步进电机4个绕组,高电平绕组通电,程序如下:whille(1)
{P0=1;delayms(5)
P0=2;delayms(5)
P0=4;delayms(5)
P0=8;delayms(5)}
反转 的话, 就按 8 4 2 1 顺序输出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)