步进电机精确驱动
- 格式:docx
- 大小:15.61 KB
- 文档页数:5
步进电机的驱动原理
步进电机的驱动原理可以通过以下几点来解释:
1. 电磁驱动:步进电机内部通常包含多个线圈,每个线圈都有一对电极。
通过交替通电来激励这些线圈,可以产生磁场。
这个磁场与固定磁铁或其他线圈的磁场相互作用,从而使电机转动。
2. 步进角度:步进电机的转动一般是围绕其轴心以一定的步进角度进行的。
这个步进角度是由电机的结构和驱动信号决定的。
常见的步进角度有1.8度、0.9度、0.72度等。
通过适当的电
流驱动和控制信号,可以实现电机按照这些角度进行准确的转动。
3. 控制信号:步进电机一般需要外部的电流驱动器或控制器来提供适当的电流和控制信号。
这些控制信号通常是脉冲信号,通过改变脉冲的频率、宽度和方向,可以控制电机的转动速度和方向。
4. 开环控制:步进电机的控制通常是开环控制,即没有反馈回路来监测电机的实际位置和速度。
控制信号是基于预先设定的脉冲数目和频率来驱动电机的。
因此,步进电机在运行过程中可能存在累积误差,特别是在高速运动或长时间运行的情况下。
总而言之,步进电机的驱动原理是通过控制电流、改变磁场以及控制信号的脉冲,实现电机按照设定的步进角度进行准确转动的过程。
步进电机的驱动参数设置1.设置步进驱动器的细分数,通常细分数越高,控制分辨率越高。
但细分数太高则影响到最大进给速度。
一般来说,对于模具机用户可考虑脉冲当量为0.001mm/P(此时最大进给速度为9600mm/min)或者0.0005mm/P(此时最大进给速度为4800mm/min);对于精度要求不高的用户,脉冲当量可设置的大一些,如0.002mm/P(此时最大进给速度为19200mm/min)或0.005mm/P(此时最大进给速度为48000mm/min)。
对于两相步进电机,脉冲当量计算方法如下:脉冲当量=丝杠螺距÷细分数÷200。
2.起跳速度:该参数对应步进电机的起跳频率。
所谓起跳频率是步进电机不经过加速,能够直接启动工作的最高频率。
合理地选取该参数能够提高加工效率,并且能避开步进电机运动特性不好的低速段;但是如果该参数选取大了,就会造成闷车,所以一定要留有余量。
在电机的出厂参数中,一般包含起跳频率参数。
但是在机床装配好后,该值可能发生变化,一般要下降,特别是在做带负载运动时。
所以,该设定参数最好是在参考电机出厂参数后,再实际测量决定。
.单轴加速度:用以描述单个进给轴的加减速能力,单位是毫米/秒平方。
这个指标由机床的物理特性决定,如运动部分的质量、进给电机的扭矩、阻力、切削负载等。
这个值越大,在运动过程中花在加减速过程中的时间越小,效率越高。
通常,对于步进电机,该值在100 ~ 500之间,对于伺服电机系统,可以设置在400 ~ 1200之间。
在设置过程中,开始设置小一点,运行一段时间,重复做各种典型运动,注意观察,如果没有异常情况,然后逐步增加。
如果发现异常情况,则降低该值,并留50%~100%的保险余量。
4.弯道加速度:用以描述多个进给轴联动时的加减速能力,单位是毫米/秒平方。
它决定了机床在做圆弧运动时的最高速度。
这个值越大,机床在做圆弧运动时的最大允许速度越大。
通常,对于步进电机系统组成的机床,该值在400~1000之间,对于伺服电机系统,可以设置在1000 ~ 5000之间。
步进驱动器细分原理步进驱动器是一种常用的电机驱动器,它通过控制电流的方向和大小来驱动步进电机实现精确的定位和运动控制。
而步进驱动器的细分原理则是指在每个步进脉冲周期内,步进电机所转动的角度,也就是步进角的大小。
在实际应用中,通过对步进驱动器进行细分,可以提高步进电机的分辨率和精度,从而实现更加精准的运动控制。
本文将对步进驱动器的细分原理进行详细介绍,希望能够帮助大家更好地理解和应用步进驱动器。
首先,我们需要了解步进电机的基本原理。
步进电机是一种将电脉冲信号转换为机械运动的电机,它通过控制电流的方向和大小来驱动电机的转动。
在正常情况下,步进电机每接收一个脉冲信号就会转动一个固定的步进角,这个步进角的大小取决于电机的结构和设计。
而步进驱动器的细分原理则是通过控制每个步进脉冲周期内的细分步数,从而实现对步进电机转动角度的精细控制。
细分原理的核心在于将一个步进脉冲周期分为若干个细分步数,通过控制每个细分步数的电流大小和方向来控制步进电机的转动角度。
通常情况下,步进驱动器会将一个步进脉冲周期分为2、4、8、16甚至更多的细分步数,从而实现对步进电机转动角度的更加精细的控制。
例如,当步进驱动器将一个步进脉冲周期细分为8个步数时,步进电机每接收一个脉冲信号就会转动1/8个步进角,从而实现更加精细的运动控制。
在实际应用中,步进驱动器的细分原理可以帮助我们实现更加精准的定位和运动控制。
通过细分步数的控制,可以提高步进电机的分辨率和精度,从而实现更加精细的运动控制。
例如在一些需要高精度定位的设备中,可以通过增加步进驱动器的细分步数来提高定位精度,从而满足设备对于精准控制的要求。
总的来说,步进驱动器的细分原理是通过控制每个步进脉冲周期内的细分步数,从而实现对步进电机转动角度的精细控制。
通过对步进驱动器进行细分,可以提高步进电机的分辨率和精度,从而实现更加精准的运动控制。
希望本文对大家理解和应用步进驱动器的细分原理有所帮助。
步进电机常见的三种驱动方式包括全步进驱动、半步进驱动和微步进驱动。
全步进驱动简单易实现,适用于对转矩要求不高的场合;半步进驱动具有更高的分辨率和更平滑的运动,适用于对定位要求较高的场合;微步进驱动则是最精细的驱动方式,通过控制电流的大小和方向实现步进电机的转动,适用于对定位精度要求极高的场合。
选择适当的驱动方式需要根据具体应用需求来决定。
全步进驱动简单、成本低,适用于一些普通的工业自动化应用;半步进驱动在精确性和平稳性方面提供了更好的性能,适用于精密定位的应用;而微步进驱动则可以提供最高的分辨率和最平滑的运动,适用于高精密仪器和光学设备等领域。
全步进驱动是最常见的步进电机驱动方式之一。
它通过改变电流的方向和大小来实现步进电机的转动。
具体工作原理如下:1.单相全步进驱动:在单相全步进驱动中,通过向两个相邻线圈施加电流,使得步进电机转动一个步进角度。
该驱动方式简单易实现,但转矩较小。
2.双相全步进驱动:双相全步进驱动是一种更为常见的驱动方式。
它通过按照特定的顺序向两个线圈施加电流来实现步进电机的转动。
该驱动方式相比单相全步进驱动具有更高的转矩和更稳定的运行。
全步进驱动方式简单直观,适用于对转矩要求不高的场合。
2.半步进驱动半步进驱动是介于全步进驱动和微步进驱动之间的一种驱动方式。
在半步进驱动中,通过改变电流的方向和大小来实现步进电机的转动。
具体工作原理如下:1.与全步进驱动类似,半步进驱动也可以采用单相和双相两种驱动方式。
其中,双相半步进驱动是最常见的。
2.在双相半步进驱动中,首先向一个线圈施加电流,使得步进电机转动半个步进角度。
然后再向另一个线圈施加电流,使得步进电机再次转动半个步进角度。
通过交替改变电流的方向和大小,可以实现精确的定位。
半步进驱动方式相比全步进驱动方式,具有更高的分辨率和更平滑的运动。
适用于对定位要求较高的场合。
3.微步进驱动微步进驱动是步进电机中最精细的驱动方式,通过分段控制电流的大小和方向来实现步进电机的转动。
步进电机调试驱动器设置与步进角度调整步进电机是一种常用的电机类型,广泛应用于各种自动化设备和机械系统中。
在使用步进电机时,我们需要进行步进电机的调试、驱动器设置以及步进角度的调整。
本文将详细介绍这些方面的内容以及相应的操作步骤。
一、步进电机调试步进电机调试是为了确保电机正常工作,并且能够按照要求准确地运动。
步进电机调试的主要步骤如下:1. 连接电机和驱动器:根据电机和驱动器的接线图,将步进电机与驱动器正确连接。
2. 设置驱动器参数:根据步进电机和驱动器的规格参数,对驱动器的一些参数进行设置。
如电流、细分、加速度等。
3. 调试控制信号:连接控制器和驱动器,通过控制信号来控制步进电机的运动。
4. 运动测试:通过控制器发送指令,检查步进电机是否按照预期进行旋转或运动。
5. 调整参数:根据测试结果,逐步调整驱动器的参数,直至步进电机能够稳定工作。
二、驱动器设置驱动器是控制步进电机运动的关键设备,正确的驱动器设置可以确保步进电机的正常运行。
下面是一些常见的驱动器设置内容:1. 电流设置:根据步进电机的额定电流和电机负载的情况,设置驱动器的电流。
过大的电流会导致电机发热,过小的电流则会导致电机无法正常运转。
2. 细分设置:细分是指将电机的旋转角度分为若干小份,使电机的运动更加平滑。
根据应用的要求,设置驱动器的细分参数,一般细分设置越大,电机的分辨率越高,但是会增加驱动器的计算和处理压力。
3. 加速度设置:根据步进电机的工作环境和应用要求,设置驱动器的加速度参数。
加速度设置的好坏直接影响到电机的运动质量,合理的加速度能够提高步进电机的定位精度和运动速度。
4. 步进角度设置:步进电机的步进角度是电机一次运动所转过的角度。
根据步进电机的型号和应用需求,设置驱动器的步进角度参数。
步进角度设置不当会导致电机无法准确运动或者定位失效。
三、步进角度调整步进电机的步进角度是其最基本的特性之一,一旦步进角度设置不准确,将会影响到电机的运动和定位。
步进电机驱动器数据手册引言:步进电机驱动器是一种广泛应用于自动化领域的关键设备。
本手册旨在提供关于步进电机驱动器的详细信息,包括工作原理、技术规格和使用指南,以帮助用户更好地了解和应用步进电机驱动器。
一、概述步进电机驱动器是一种电子设备,用于控制和驱动步进电机的运动。
它将电流和电压转换为步进电机能够理解和执行的命令信号,从而实现精确的位置控制和运动控制。
二、工作原理步进电机驱动器通过控制电流的大小和频率来控制步进电机的运动。
它接收来自控制器的指令信号,并将其转换为适合步进电机的驱动信号。
步进电机驱动器通过逐步激励步进电机的不同相位,从而实现步进电机的旋转。
三、技术规格1. 输入电压范围:步进电机驱动器通常支持多种输入电压范围,根据实际需要进行选择。
2. 输出电流范围:步进电机驱动器的输出电流决定了步进电机的扭矩和运动能力。
用户需要根据步进电机的额定电流选择合适的驱动器。
3. 步进分辨率:步进电机驱动器的步进分辨率决定了步进电机每个步进的精确度。
更高的步进分辨率可以实现更精确的位置和运动控制。
4. 脉冲频率:步进电机驱动器的脉冲频率决定了步进电机的最大速度和加速度。
更高的脉冲频率可以实现更快的运动速度。
5. 保护功能:步进电机驱动器通常具有过流保护、过热保护和过压保护等功能,以保护驱动器和步进电机的安全运行。
四、使用指南1. 安装步进电机驱动器:在安装步进电机驱动器之前,请确保将电源关闭,并遵循驱动器制造商提供的安装指南。
2. 连接步进电机和驱动器:首先,将步进电机的细线(通常是4根或8根)连接到驱动器的输出端口。
然后,将驱动器的输入端口连接到控制器或步进电机控制系统。
3. 配置驱动器参数:根据实际应用需求,使用驱动器提供的配置工具或按键面板,配置驱动器的参数,如输入电压范围、输出电流范围、步进分辨率等。
4. 编写控制程序:使用编程语言或控制软件,编写控制程序来控制步进电机的运动。
在编写控制程序时,需要了解控制器和驱动器的通信协议和命令格式。
步进驱动器工作原理步进驱动器是一种常见的电机驱动器,它通过控制电流来实现精确的位置控制,适用于需要精准定位的场合。
步进驱动器的工作原理主要包括步进电机、控制器和电源三个部分。
首先,我们来看步进电机的工作原理。
步进电机是一种特殊的电机,它通过将电流按照特定的顺序施加到电机的线圈上,来实现转子的精确旋转。
步进电机的转子是由多个磁极组成的,而定子上的线圈则可以通过控制电流的方向和大小来吸引或者排斥转子上的磁极,从而驱动转子旋转。
步进电机的转子可以根据电流的改变而精确地旋转到预定的位置,因此非常适合需要精准控制的场合。
其次,控制器是步进驱动器的核心部分,它负责控制步进电机的运动。
控制器可以根据外部输入的指令,通过改变电流的方向和大小来驱动步进电机。
控制器通常会根据步进电机的特性和外部指令的要求,生成相应的控制信号,以实现步进电机的精准控制。
通过控制器,我们可以实现步进电机的正转、反转、定位、加减速等功能,从而满足不同场合的需求。
最后,电源是步进驱动器的能量来源,它为步进电机和控制器提供所需的电能。
电源通常会将交流电或直流电转换为步进电机和控制器所需的电流和电压,以确保它们正常工作。
电源的稳定性和电流输出的准确性对步进驱动器的性能有着重要的影响,因此在选择和设计电源时需要特别注意。
综上所述,步进驱动器的工作原理主要包括步进电机、控制器和电源三个部分。
通过控制电流的方向和大小,步进驱动器可以实现精准的位置控制,适用于需要精准定位的场合。
步进驱动器在各种自动化设备和精密仪器中有着广泛的应用,它的工作原理和性能对于设备的稳定性和精度有着重要的影响。
希望通过本文的介绍,读者能对步进驱动器的工作原理有一个更加清晰的认识。
步进电机驱动细分原理
步进电机驱动细分原理是通过改变电流波形来实现对步进电机精细控制的一种方法。
在传统的双极性驱动方式中,每一相都只有两种状态:激活和不激活。
而细分驱动则将每一相的激活状态进行进一步细分,使得电流具有更多个离散的状态。
细分驱动的基本原理是通过改变驱动器输出的电流波形来实现对步进电机转子位置的微调。
具体来说,细分驱动使用一种特殊的电流控制技术,将总电流周期性地细分成多个小的电流脉冲。
通过改变电流脉冲的大小和时序,可以在每一个基本步进角度上进行更细致的位置控制。
通常,在步进电机驱动器中使用的细分驱动方式有全步进和半步进两种。
全步进是最基本的细分方式,在一个完整的电流周期内将电流波形分为两个相等的部分,每个部分激活的时间持续一个基本步进角度。
而半步进则是在全步进的基础上,对激活时间进行了进一步细分,使得每个部分激活的时间只有全步进时间的一半,从而实现了更精细的位置控制。
细分驱动的实现离不开现代步进电机驱动器中的电流控制电路。
这些电路通常包括高性能的电流感应器、精确的分流器和多级放大器等。
通过这些电路的协同作用,细分驱动器可以在每个细分步进角度上产生相应大小和时序的电流脉冲,实现对步进电机位置的微调控制。
总而言之,步进电机驱动细分原理是通过改变电流波形来实现
对步进电机位置的微调。
通过细分驱动方式,可以获得更精细的步进角度控制,提高步进电机的定位精度和运动平滑性。
步进电机驱动细分原理嘿,朋友们!今天咱来聊聊步进电机驱动细分原理。
这玩意儿啊,就像是一个神奇的魔法盒子,打开之后能让电机变得超级厉害!你看啊,步进电机就像是个勤劳的小毛驴,一步一步地往前走。
但如果就这么让它走,那可有点太粗糙啦。
这时候,驱动细分就闪亮登场啦!它就像是给小毛驴穿上了一双精致的小鞋子,让它每一步都走得更稳、更精确。
想象一下,没有细分的时候,电机就像个急性子,大步流星地往前冲,可能会跌跌撞撞的。
但有了细分,它就变得温柔细腻了,一小步一小步地走,多稳当呀!细分的原理其实不难理解。
就好像把一条大路分成很多很多的小段,这样走起来是不是就更轻松、更准确啦?通过细分,我们可以让电机的转动更加平滑,就像丝绸一样顺滑。
这在很多需要高精度的场合可太重要啦,比如那些精细的仪器设备,要是电机转得粗糙,那可不行哦!而且啊,细分还能让电机更省电呢!这就好比你跑步,大步跑肯定比小步跑累呀,电机也一样。
细分让它工作得更轻松,自然就不需要那么多电啦。
咱再打个比方,步进电机就像是个乐团里的鼓手,一下一下地敲着鼓。
细分呢,就是让这个鼓手敲得更有节奏、更有韵律,让整个乐团的演奏更加和谐动听。
那细分是怎么做到这些的呢?其实就是通过对电流的精细控制呀。
就像给电机喂饭一样,一点一点地喂,让它吃得饱饱的,有力气好好工作。
在实际应用中,我们可以根据不同的需求来选择细分的程度。
要是要求特别高,那就把细分调得高高的,让电机像个优雅的舞者一样精准地转动。
要是要求没那么高,那就适当降低细分,也能满足需求嘛。
总之啊,步进电机驱动细分原理真的是个很了不起的东西。
它让电机变得更强大、更精确、更节能。
这可不是我瞎吹哦,你去看看那些高科技的设备,很多都离不开细分的功劳呢!所以呀,大家可得好好了解了解这个神奇的原理,说不定哪天你就能用上呢!这就是我对步进电机驱动细分原理的理解,你觉得怎么样呢?是不是挺有意思的呀!原创不易,请尊重原创,谢谢!。
步进电机细分驱动原理
步进电机细分驱动原理是指通过驱动电路将步进电机的每一步细分为更小的步数,从而使步进电机的转动角度更精确。
细分驱动原理的关键在于通过改变驱动电流的大小和方向来实现步进电机每一步的控制。
常见的细分驱动方式有全步细分和微步细分两种。
在全步细分中,驱动电路会根据输入的脉冲信号,按照步进电机的步距角度来控制电流大小和方向。
比如在单相全步细分驱动中,每个脉冲信号对应一个步进角度,驱动电路会根据脉冲信号的频率和方向控制电流的大小和方向,从而实现步进电机的转动。
在微步细分中,驱动电路将每一步细分为更小的步数,从而使步进电机的转动更加平滑和精确。
微步细分驱动通常采用PWM(脉宽调制)技术,通过调节电流的占空比来实现细分
控制。
例如,当需要将每一步细分为10个微步时,驱动电路
会根据输入的脉冲信号和PWM调制信号,以较高的频率控制
电流的开关状态和占空比,从而实现步进电机的微步细分控制。
细分驱动原理的核心是通过改变驱动电流的大小和方向来控制步进电机的转动角度。
通过细分驱动,可以使步进电机的转动更加平滑和精确,从而满足一些对转动精度要求较高的应用场景。
步进电机精确驱动
步进电机的精确控制
步进电机的基本步距角:对F相的步进电机有F个绕组(就是定子中包含的绕组个数),它们被均匀的镶嵌在定子上。
步进电机各相轮流接入整步电流后所产生的步距角叫做该步进电机的基本步距角。
也就是说相序产生一轮后步进电机并不会转1转。
那么转子转一圈的步数(也就是需要几组时序)是多少呢?
公式A=360/M(A为基本步距角,M为步数)。
根据公式,基本步距角是不能随意取值的。
我们往往希望步进电机转一圈为100 步或其倍数,这在2/4 相和 5 相步进电机容易做到,但对于三相步进电机其基本步距角不可能做到转一圈为100 步或200 步,但可以是300 步。
有些厂家所标的三相步进电机的步距角为1.2 度或 3 度,相当每圈300 步或120 步,是 3 的整数倍,这种标注很正常。
什么是细分呢?所谓细分,就是驱动器在接到控制发来的每一个脉冲时,只给电机发几分之一个脉冲(用“脉冲”这个词不准确,实际是正弦波一个周期的几分之一)。
我们用297芯片写过步进电机的驱动,其中CW/CWW引脚还记得吗?这个引脚有什么作用呢,当我将他设置为1时,我每输入一个脉冲,其输出产生一组相序,也就是1个步距。
同理,当其设置为0时,它只产生一半的相序。
如何找出步进电机的基本步距呢,当然我是看说明书的(哈哈)。
如果没有说明书的话可以试试如下的方法:
①用数字万用表找到公共线。
其他引线与公共线之间的电阻测量值都相同。
将此线连接到电池的V+。
5V或6V就足够测试用了。
②胶带粘贴到步进电机的输出铀上,并使它垂直于轴端伸出成为一个标志。
此标志的作用在于判断电机是否转动。
③任意挑出一条引线称之为相1。
若将此线接地,则电机输出轴将做轻微的转动。
现在步进电机被锁定在相1的位置上。
④取另一根引线并将其接地,仔细观察输出轴上的胶带。
如果输出轴向右轻微地旋转,那么此根引线是相2。
⑤取另一根线并将其接地,仔细观察输出轴上的胶带。
如果输出轴向左轻微地旋转,那么此根引线是相4。
如图4所示。
⑥再取另一根线并将其接地,仔细观察输出轴上胶带的运动状态。
如果输出轴不旋转,那么此根引线就是相3。
确定相位之后,找一个参照相,然后挨个给一个脉冲,看看走了多少度。
四相六根和八根线的,如何使用两相四线驱动器?问题解决:1 和2为一相,分别接A和/A;3和4为一相,分别接B和/B。
不过在你有了一个步进电机驱动芯片后完全不用考虑这些小问题,只需一个命令搞定。
HF=0;
IN1=0;
IN2=1;
为何要给步进
电机设计一个恼人的加速减速程序呢,根据步进电机的原理来看,当其某一相进行运转时,不是及时就停住了吗,那我要加速函数有何意义?我可以直接设置终值,尽管可能因为惯性是的我的电机最终到达稳定时的时间长一些,可是我确确实实可以这样做啊。
事实上,由于步进电机是要悬挂负载的,因此我不能单单只是考虑步进电机自身的问题,我还要考虑在这个高低点平上的突变问题(有兴趣的小伙伴可以画一画波形图)。
在这个突变的间隔内是不是会猛然加重步进电机的负担。
那么什么样的变化过程是最好的呢当然是正弦函数,可惜我们只能用线性变化来代替正弦变化。
(谁叫我们用的是数电呢)
了解了步进电机的一些工作原理,下面我们来分装步进电机的函数:
/****************
函数名称: forward()
函数功能:使步进电机正转一定的圈数
传入参数:正转的圈数和频率
返回值:无
说明:每过一定的周期给一次脉冲
*****************/
void forward(uchar sum;uchar T){
while(sum!=0){
if(time >= T){
clk = 1;
delay (延时一定的时间,根据实际测量得出)
clk = 0;
sum--;
time = 0;
}
}
}
在上述函数中,time是一个通过Timer0_isr interrupt 1进行计数的变量这个脉冲的频率与T有关,行进的圈数与sum有关,频率与T有关。
这个函数存在以下的问题:
1 sum是一个步数,而不是圈数,这对于人机交互来说并不理想
2 T是时间量,而非频率量,电机的快慢和其成反比
3 对于一个从中断器获得的变量time来说,我并不信任它,因为他完全可能超过我执行这个函数时的设定值
首先我来解决3的问题,因为这个问题十分严重:
现在我提出一个方案:将这个函数整个放到Timer0_isr()里面,那么我就需要时刻对这个中断进行改变,已完成不同的命令,甚至是终止。
经过框图的推演:将条件加载time判断的里面比较
void Timer0_isr() interrupt 1 {
static unsigned char time;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
if(time==circle){
if(num!=0){
num--;
clk = ~clk;
if (num%M==0) r--;
}
time = 0;
}
}
该函数初步具备了控制步进电机的步数和速度的要求。
然后我们返回自己的要求:
1 控制电机的正反转
2 实现电机的加速减速
现在我越来越觉得自己做了一个超级英明的决定,我将clk放入中断中,而这个中断可以改变的参数真是超级的多。
下面我们返回到main中实现我们的第一个要求:
unsigned int num = 0;
en = 1;
hf = 1;
cw = 1;
num = r*M; //M是我们测得的步进电机的步数/圈
circle = f;
通过这些改变我将获得一个可以转r圈的num,当然我把它打包成函数
/****************
函数名称: forward()
函数功能:使步进电机正转一定的圈数
传入参数:正转的圈数和频率
返回值:无
说明:
*****************/
void forward(uint r;uint f){
hf = 1;
cw = 1;
num = r*M;
circle = f;
}
/****************
函数名称: backward()
函数功能:使步进电机正转一定的圈数
传入参数:正转的圈数和频率
返回值:无
说明:
*****************/
void backward(uint r;uint f){
en = 1;
hf = 1;
cw = 0;
num = r*M;
circle = f;
}
之后我们来实现加速和减速的功能,刚刚我们利用了num参数,可是我的中断可是很神奇的,我还有一个circle,哈哈,体会到这样做的好处了吧
首先我给电机提供一个num,使电机转动。
en = 1;
hf = 1;
cw = 1;
num = r*M;
circle = f0;
下面是对circle的的控制,在这里,我想让circle和num联系起来,于是在我的中断里多了这样一句if (num%M==0) r--;
while(r!=0){
if (circle!=f)
circle --;
}
//f是我要变到的速度,现在我把它打包一下
/****************
函数名称: speedup()
函数功能:使步进电机在一定的圈数内加速到某频率
传入参数:正转的圈数,初频率和末频率
返回值:无
说明:
*****************/
void speedup(uint r;uint f0;uint f){
en = 1;
hf = 1;
cw = 1;
num = r*M;
circle = f0;
while(r!=0){
if (circle!=f) circle --;
}
}
/****************
函数名称: speeddowm()
函数功能:使步进电机在一定的圈数内减速到某频率传入参数:正转的圈数,初频率和末频率
返回值:无
说明:
*****************/
void speeddown(uint r;uint f0;uint f){
en = 1;
hf = 1;
cw = 1;
num = r*M;
circle = f0;
while(r!=0){
if (circle!=f) circle ++;
}
}
好了,打包程序到此结束了,主程序就交给你们了。