Arduino通过L293D驱动28BYJ-48步进电机

  • 内容
  • 评论
  • 相关

Arduino L293D驱动28BYJ-48步进电机

步进电机

步进电机是由多组电磁线圈驱动的马达。步进电机的中心轴转子上安装了磁铁,环绕轴定子上的线圈通电后就会交替产生电流,同时产生磁场,使中心轴上的磁铁被排斥或吸引,使得电机旋转。这样的设计可以让我们对电机进行有效的控制,步进电机又分为单极型步进和双极型步进。通常有4根线的步进电机为双极型电机,而有5根线或6根线的步进电机为单极型电机。

步进电机内部结构原理

本文将向您介绍如何将28BJY-48步进电机与 l293d电机驱动器连接。

28BJY-48步进电动机特性

28byj-48-5v步进电机线序

从上图可以看出,步进电机每组线圈的中心抽头是连接在一起的,因此28BJY-48电机属于单极型电机。

额定电压 :5V DC
相数: 4
变速比:1/64
步进角:5.625° /64
频率:100Hz
DC 阻抗:50Ω±7%(25℃)
力矩: 34.3mN.m(120Hz)
转矩: 34.3mN.m
空载噪音:<35dB(120Hz)
28BJY-48电机步数计算:steps= (360°/5.625°)*64= 64 * 64 =4096  这个值会在后续的程序中用到。

L293D电机驱动板连接28BJY-48

Arduino驱动28BJY-48步进电机需要使用到L293D电机驱动板

l293d motor shield

连接图如下

L293D电机驱动板连接 28byj-48步进电机

Arduino测试代码如下:

/*本例使用IDE自带的Stepper.h库文件*/
#include 

#define motorSteps 4096     // 根据步数设置
#define motorPin1 8
#define motorPin2 9
#define ledPin 13

// initialize of the Stepper library:
Stepper myStepper(motorSteps, motorPin1,motorPin2); 

void setup() {
  // set the motor speed at 60 RPMS:
  myStepper.setSpeed(60);

  // Initialize the Serial port:
  Serial.begin(9600);

  // set up the LED pin:
  pinMode(ledPin, OUTPUT);
  // blink the LED:
  blink(3);
}

void loop() {
  // Step forward 100 steps:
  Serial.println("Forward");
  myStepper.step(100);
  delay(500);

  // Step backward 100 steps:
  Serial.println("Backward");
  myStepper.step(-100);
  delay(500); 

}

// Blink the reset LED:
void blink(int howManyTimes) {
  int i;
  for (i=0; i< howManyTimes; i++) {
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }
}