求两相四线步进电机驱动,C语言源码,可以控制步数的。

求两相四线步进电机驱动,C语言源码,可以控制步数的。,第1张

#include <stdio.h>#include <fcntl.h>#include <string.h>#include <sys/ioctl.h>

#define STEPMOTOR_IOCTRL_PHASE 0x13 staticintstep_fd = -1

char *STEP_DEV="/dev/exio/0raw"//定义一个指针指向步进电机的驱动 程序

/********* A, AB, B, BC, C CD, D, DA ***/

char stepdata[]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90}//各 个相位对应的值

void Delay(int t) //延时函数 { int i

for(t>0t--)

for(i=0i<400i++)}

/***************************************************** ***********/

int main(intargc, char **argv) {

int i = 0

if((step_fd=open(STEP_DEV, O_WRONLY))<0){ printf("Error opening /dev/exio/0raw device\n")return 1} /*

打开设备的驱动程序,由于LINUX把所有的设备都模拟成文件。 step_fd=open(STEP_DEV,0_WRONLY)实际调用的函数为:

staticint s3c2410_exio_open(structinode *inode, struct file *filp) //驱动程序中的设备打开程序 */

for () {

for (i=0i<sizeof(stepdata)/sizeof(stepdata[0])i++) { ioctl(step_fd, STEPMOTOR_IOCTRL_PHASE, stepdata[i])}

/*程序进入一个死循环,这样可以使电机在没有人为停止的状况下,一直的 转动下去。

*第二层for语句循环一次即电机转动一周。函数ioctl()对应函 数*s3c2410_exio_ioctl()

*而这个函数最终将调用函数do_stepmotor_run((char)arg)使步进电 机转动起来。 */

printf("Delay(100)\n")Delay(100)}

close(step_fd)//程序结束时关闭设备 printf("Step motor start running!\n")return 0}本文来自百度文库,你可以搜搜,其中答案更详细的!

看下图,就是步进电机的时序及接线图。

2相4拍(按图解释):

第一拍(第一次的脉冲信号):1~3组成的线圈黄线加+电压,兰线加-电压;2~4组成的线圈橙色加+,蓝色加-电压。结果是:电机移动了一个步进角的;

第2,3,4拍类推,结果是:电机向一方向给移动了一个步进角的;如此重复1,2,3,4电机就不停的转。如果反过来执行4,3,2,1,那电机就会反转,第一拍和第二拍(每拍之间的)时间长短就决定了电机的频率从而影响到转速

按照正常接线4个端口依次接A,A\,B,B\。

8拍实际上是这样的:A-AB-B-BA\-A\-A\B\-B\-B\A-A

这里面隐含了一个0的问题,就是比如第一拍A为1,则A\为0.则AA\通电。BB\不通电。

第二拍A,B为1,则A\,B\为0.AA\通电。BB\通电。依次类推,从而实现2细分,比如1.8度的电机就控制成0.9度的了。

扩展资料:

步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。

虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。

步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。

步进电机和驱动器的选择方法:

1 判断需多大力矩:静扭矩是选择步进电机的主要参数之一。负载大时,需采用大力矩电机。力矩指标大时,电机外形也大。

2 判断电机运转速度:转速要求高时,应选相电流较大、电感较小的电机,以增加功率输入。且在选择驱动器时采用较高供电电压。

3 选择电机的安装规格:如57、86、110等,主要与力矩要求有关。

4 确定定位精度和振动方面的要求情况:判断是否需细分,需多少细分。

5 根据电机的电流、细分和供电电压选择驱动器。

步进电机从其结构形式上可分为反应式步进电机(Variable Reluctance,VR)、永磁式步进电机Permanent Magnet,PM)、混合式步进电机(Hybrid Stepping,HS)、单相步进电机、平面步进电机等多种类型,在我国所采用的步进电机中以反应式步进电机为主。

步进电机的运行性能与控制方式有密切的关系,步进电机控制系统从其控制方式来看,可以分为以下三类:开环控制系统、闭环控制系统、半闭环控制系统。半闭环控制系统在实际应用中一般归类于开环或闭环系统中。

1 反应式:定子上有绕组、转子由软磁材料组成。结构简单、成本低、步距角小,可达1.2°、但动态性能差、效率低、发热大,可靠性难保证。

2 永磁式:永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。其特点是动态性能好、输出力矩大,但这种电机精度差,步矩角大(一般为7.5°或15°)。

3 混合式:混合式步进电机综合了反应式和永磁式的优点,其定子上有多相绕组、转子上采用永磁材料,转子和定子上均有多个小齿以提高步矩精度。其特点是输出力矩大、动态性能好,步距角小,但结构复杂、成本相对较高。

按定子上绕组来分,共有二相、三相和五相等系列。最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。

该种电机的基本步距角为1.8°/步,配上半步驱动器后,步距角减少为0.9°,配上细分驱动器后其步距角可细分达256倍(0.007°/微步)。由于摩擦力和制造精度等原因,实际控制精度略低。同一步进电机可配不同细分的驱动器以改变精度和效果。

参考资料:百度百科-步进电机


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11079802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存