本文详细介绍了步进电机的原理与驱动...
上传时间: 2013-06-03
上传用户:Neal917
本文论述了以电流矢量恒幅均匀旋转原理为基础的步进电机细分技术, 设计了基于单片机的SPWM控 制的电流矢量恒幅均匀旋的细分驱动模式, 并通过对软件数据的设置可以实现多种细分级数驱动控制。并在 此基础上为修正误差引入电流反馈环节, 实现了对混合式步进电机精确运行控制。
上传时间: 2013-06-05
上传用户:cceezzpp
STC单片机控制5线四相24BYJ-48 5V DC 步进电机正反转驱动程序
上传时间: 2013-04-24
上传用户:ruan2570406
本文介绍了在步进电机驱动器中利用IR2110S完成mosfet驱动的设计,并给出试验结果。关键词 步进电机;mosfet 驱动器
上传时间: 2013-08-01
上传用户:lwx1888
LAMOST(Large Sky Area Multi-Obiect Fiber Spectroscopy Telescope,大天区面积多目标光纤光谱天文望远镜)需要对焦而上的4 000个光纤定位单元进行精确定位,一个光纤定位单元需要两个步进电机来驱动,即需要对8 000个电机进行驱动控制。如何对这8 000个电机进行有效的控制,是本文主要的研究内容。 本义引入EDA(Electronic Design Automation),技术,以FPGA和CAN总线为硬件载体来进行设计。FPGA相比较于DSP,单片机而言,具有10管脚多,资源丰富,使用灵活等优点,可以存片内集成多个电机的摔制,这样对于提高系统的集成度,节约成本无疑有着很大的帮助。 在电机的控制当中,其失步和过冲会直接影响到系统的精度,所以需要对电机脉冲频率加以控制,对于在平稳状态下能正常工作的电机,失步往往发生在启动停止等脉冲频率突然发生改变的时刻。具体实现方法是通过实验找出一条理想的加减速曲线,再将曲线离散化,并把离散化后的加减速分频系数存储在FPGA片内ROM里而,当电机运行到对应的步数时,取出分频系数来获取对应的运行频率。 在LAMOST观测中,光纤定位单元的零位是个很重要的基准,在每次观测之前,电机都要回零,理论上电气零位和机械零位在同一点上,如果电气检测到达零位则认为已经到达机械零位位置。但是实际中由于装配等一些原因,可能会出现零位短路和零位断路的情况。零位断路是指电机处于机械零位,但是电气不能检测到;零位短路是指电机不在机械零位,但是电气已经检测到处于零位。这两种情况会造成越界和机械零位一直被挤压的后果,有可能会损坏光纤定位单元,为了防止这些情况出现,软件程序中加入了计数器,从而从有效地保护了光纤定位单元,同时将这些状况向上反馈,以便维护和检修。 在本文完成之时,能够控制驱动336个光纤定位单元的小系统已经在北京天文台兴隆观测站实际投入运行,并于2007年5月28日获得首条光谱,取得了不错的效果。
上传时间: 2013-04-24
上传用户:afeiafei309
·摘 要:本文提出了采用P87LPC764单片机实现步进电机多倍细分控制方法和电路实现的关键技术,完成了步进电机细分驱动电路的设计和硬件电路的制作.同时为保证驱动电路的正常工作设置了过电流保护,实现了一种软硬互补的驱动电路.
上传时间: 2013-04-24
上传用户:李彦东
L298驱动步进电机
上传时间: 2014-12-26
上传用户:sssl
摘要:本文以两相双极式步进电机为例,介绍了一种利用单片机自带的PWM模块实现步进电机细分驱动的方法。该方法充分利用单片机的PWM硬件资源,通过配置硬件PWM模块,产生占空比不同的方波,在电机线圈内产生近似正弦波的阶梯型电流。与常用的恒频脉宽调制方式相比,该方法不需要EI/A转换器和锯齿波发生器,不仅有利于简化电路和节约成本,而且能提高细分精度和电机运行平稳性,适用于需要精密控制的仪器仪表。关键词:PWM;细分驱动;步进电机;单片机
上传时间: 2014-01-21
上传用户:dalidala
AT89C2051驱动步进电机的电路和源码:AT89C2051驱动步进电机的电路和源码 程序:stepper.c stepper.hex/* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */#i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.hregister unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n;unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400/* flag1 mask byte 0x01 run cw() 0x02 run ccw() */main(){ flag1=0; serinit(9600); disable(); /* no need timer interrupt */ cw_n = n; /* initial step number for cw */ flag1 |=0x01; /* initial enable cw() */while(1){ { tick_wait(); /* wait for 10ms elapsed */energize(); /* round-robin execution the following tasks every 10ms */ cw(); ccw(); } }}cw(){ if((flag1&0x01)!=0) { cw_n--; /* decrement cw step number */ if (cw_n !=0) j++; /* if not zero increment index j */ else {flag1&=~0x01; /* disable cw() execution */ ccw_n = n; /* reload step number to ccw counter */ flag1 |=0x02; /* enable cww() execution */ } }
上传时间: 2013-11-21
上传用户:boyaboy
本文介绍了一种PWM模块单片机的步进电机细分驱动方法。
上传时间: 2014-04-11
上传用户:jrsoft