Arduino 步进电机

Arduino 步进电机

注意:测试过程中由于接线错误导致了步进电机只振动不转。

1、步进电机:28BYJ-48
28:步进电机的有效最大外径是28毫米。
B:表示是步进电机。
Y:表示是永磁式。
J:表示是减速型(减速比1:64)。
48:表示四相八拍。

2、Arduino 代码:

#include <Arduino.h>

#define A1 3 //引脚命名
#define B1 4
#define C1 5
#define D1 6


void setup()
{
  pinMode(A1, OUTPUT); //设置引脚为输出引脚
  pinMode(B1, OUTPUT);
  pinMode(C1, OUTPUT);
  pinMode(D1, OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  int i = 0;
  while ( i < 1024 )
  {
    Serial.println(i++);
    Phase_A(); // 设置A相位
    delay(5);	 // 改变延时可改变旋转速度

    Phase_B(); // 设置B相位
    delay(5);

    Phase_C(); // 设置C相位
    delay(5);

    Phase_D(); // 设置D相位
    delay(5);
  }

  while (true);

}

void Phase_A()
{
  digitalWrite(A1, HIGH); // A1引脚高电平
  digitalWrite(B1, LOW);
  digitalWrite(C1, LOW);
  digitalWrite(D1, LOW);
}

void Phase_B()
{
  digitalWrite(A1, LOW);
  digitalWrite(B1, HIGH); // B1引脚高电平
  digitalWrite(C1, LOW);
  digitalWrite(D1, LOW);
}

void Phase_C()
{
  digitalWrite(A1, LOW);
  digitalWrite(B1, LOW);
  digitalWrite(C1, HIGH); // C1引脚高电平
  digitalWrite(D1, LOW);
}

void Phase_D()
{
  digitalWrite(A1, LOW);
  digitalWrite(B1, LOW);
  digitalWrite(C1, LOW);
  digitalWrite(D1, HIGH); // D1引脚高电平
}

 

发表回复

您的电子邮箱地址不会被公开。