【arduino】arduino uno + A4988控制42步进电机

http://blog.csdn.net/ling3ye/article/details/47001251


MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)

分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。

步进电机走一步是1.8度,一圈就是200步。例如使用1/16步进,则需要走3200步才等于一圈。

ms1   ms2    ms3
L       L        L       整步(没有细分)
H      L         L      1/2(2细分)
L      H        L       1/4(4细分)
H      H        L       1/8(8细分)
H      H        H      1/16(16细分)

 

测试程序程序

int x;

 

void setup()

{

  pinMode(6,OUTPUT); // Enable: EN可以使用单片机端口控制,也可以直接连接GND使能

  pinMode(5,OUTPUT); // steps:脉冲个数

  pinMode(4,OUTPUT); // dir:为方向控制

  digitalWrite(6,LOW); // Set Enable low

}

 

void loop()

{

    digitalWrite(4,HIGH); // Set Dir high

    for(x = 0; x < 200; x++) // Loop 200 times

  {

      digitalWrite(5,HIGH); // Output high

      delayMicroseconds(800); // Wait 1/2 a ms

      digitalWrite(5,LOW); // Output low

      delayMicroseconds(800); // Wait 1/2 a ms

    }

  delay(1000); // pause one second

  

  digitalWrite(4,LOW); // Set Dir low

  

  for(x = 0; x < 200; x++) // Loop 2000 times

  {

      digitalWrite(5,HIGH); // Output high

      delayMicroseconds(800); // Wait 1/2 a ms

      digitalWrite(5,LOW); // Output low

      delayMicroseconds(800); // Wait 1/2 a ms

    }

    delay(1000); // pause one second

}

ps后记学习:

*6(-en) 低电平为启动电机(enable),貌似也可以不接,试过一样能运行.但如果要控制电机的启动关闭还是要用上

*4(-dir) 用高低电平控制方向.

*5(-step) 用高低电平驱动电机转动.注意中间间隔等待的微秒值,如果太快会导致电机有声响不转动.

 

 

 

http://www.geek-workshop.com/thread-9397-1-1.html

int dirPin = 8;

int stepperPin = 7;

void setup() {

 pinMode(dirPin, OUTPUT);

 pinMode(stepperPin, OUTPUT);

}

 void step(boolean dir,int steps){

 digitalWrite(dirPin,dir);

 delay(50);

 for(int i=0;i

   digitalWrite(stepperPin, HIGH);

   delayMicroseconds(800);

   digitalWrite(stepperPin, LOW);

   delayMicroseconds(800);

 }

}

void loop(){

 step(true,1600);

 delay(500);

 step(false,1600*5);

 delay(500);

}

 

 

 

 

 

 

void setup() {               

  pinMode(8, OUTPUT);    

  pinMode(9, OUTPUT);

  digitalWrite(8, LOW);

  digitalWrite(9, LOW);

}


void loop() {

  digitalWrite(9, HIGH);

  delay(1);         

  digitalWrite(9, LOW);

  delay(1);         

}

 

 

问题1.
什么叫做42步进电机,其中数字“42”是什么意思?  命名有没有国际标准?
答:
42是电机的基座型号,边长42mm。就是电机靠近出轴的那个四方的座子的尺寸。

问题2.
经常看到 25相, 还有复杂的26lead  8lead, 这里的lead 是什么意思?附图

答:我自己的理解lead 是指 实际的输出线有多少根!

答:这个是正确的。可以通过外部接线实现电机绕组的并联和串联。通过相应的程序还能实现更多的功能。



问题3.
步进电机有哪些关键的参数。
答:我有看到一个实物上写明  1.8/step     1.8度是否就是 一个通电周期,机械旋转1.8度?

又问:那是否能在标称 1.8度的/step 下,通过 灵巧的程序,达到0.9  0.45  0.225度?   

答:
1.8度是指一个正步脉冲,你的电机转过的角度。比如说两相的,那你开始给A相通电,那下一次你给B通电后,转过的角度就是18度。



问题4.
何为细分,如何细分?

答:
细分就是按照一定的方法,使本来转1.8度的情况变成两步转1.8度或者更多步转1.8度。
一般是正方形细分或者正弦波细分。正方形一般用于2细分,正弦波可以有更多的细分,力矩也更平滑。


//以上问题我大学里都有学习过,可惜现在全部还给了老师,希望各位在 畅所欲言,也希望提出更多的问题,来帮助我等小白!谢谢各位电机驱动专家!


100莫元,犒劳各位大侠,请耐心教导我等小白,科普小白,我想论坛还有很多人愿意看到这个帖子的精华!




问题5. 步进电机如何防止失步,   (我故意卡死 步进电机,让他不能转)
自己回答:   抱歉没有反馈机构,无法防止。   唯一的办法就是选择合适转矩的步进电机防止失步。   我的理解对吗?

答:尽量选更大力矩的电机。选择合适的加减速曲线。


问题6. 我有幸,有一次拆了一个工厂 30kg的 超级大 步进电机。 220v驱动。只有3根线输出(这里我有记错吗?)。  这个应该是伺服电机吧?  加上驱动器,我实在无法卡死转轴。   那么 伺服电机 是否也会失步。   这个伺服电机 老师傅是用在机床上,移动切铁用的

答:伺服电机是有编码器的,有位置信息给到驱动器,一旦位置发生偏差,驱动器就会给电机加力,直到驱动器的最大输出力为止。

不过单单就步进电机来说,低速的时候力还是很大的,42的步进电机,如果来个3A驱动的话,抓也是不好抓的。

 

 

步距角,即在没有减速齿轮的情况下,对于一个脉冲信号,转子所转过的机械角度。
  也可以这样描述:定子控制绕组每改变一次通电方式,称为一拍。每一拍转子转过的机械角度称之为步距角,通常用θs表示。
  常见的有3°/1.5°1.5°/0.75°,3.6°/1.8°。如,对于步距角为1.8度的步进电机(小电机),转一圈所用的脉冲数为 n=360/1.8=200个脉冲。 
  步距角的误差不会长期积累,只与输入脉冲信号数相对应,可以组成结构较为简单而又具有一定精度的开环控制系统,也可以在要求更高精度时组成闭环系统。

 

 

 

步距角θ可用下式计算: θ360°/(Zr×m)   式中Zr是转子齿数;m是运行拍数。

步进电机特性及步距角计算方法20090505日 星期二 22:13步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。 步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。 现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。 永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度; 反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。 混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,也是本次细分驱动方案所选用的步进电机。 步进电机的一些基本参数: 电机固有步距角: 它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,如SL86S2114A型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这个步距角可以称之为电机固有步距角,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。 步进电机的相数: 是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72° 。在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角的要求。如果使用细分驱动器,则相数将变得没有意义,用户只需在驱动器上改变细分数,就可以改变步距角。 保持转矩(HOLDING TORQUE): 是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近保持转矩。由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。比如,当人们说2N.m的步进电机,在没有特殊说明的情况下是指保持转矩为2N.m的步进电机。 DETENT TORQUE: 是指步进电机没有通电的情况下,定子锁住转子的力矩。DETENT TORQUE 在国内没有统一的翻译方式,容易使大家产生误解;由于反应式步进电机的转子不是永磁材料,所以它没有DETENT TORQUE。 步进电机的一些特点: 1.一般步进电机的精度为步进角的3-5%,且不累积。 2.步进电机外表允许的最高温度。 步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。 3.步进电机的力矩会随转速的升高而下降。 当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。 4.步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。 步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。 步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途。伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。

 

你可能感兴趣的:(arduino)