arduino 2560 DRV8825 控制步进电机

即上篇用DM420控制电机尝试后,改用DRV8825控制电机。
目的:尝试使用小型电机控制器
电机:CTM28-0602-50
电流:0.5A 螺距:2MM
DRV8825简介:
在这里插入图片描述
连接方式
在这里插入图片描述
实际连接方式
DRV8825 MEGA2560
ENABLE 32 不操作电机时, 保持高电平,如悬空或一直低电平电机发热
RESET-SLEEP
STEP 30
DIR 31
FLT 5V POWER处
GND GND
A1 电机A+
A2 电机A-
B1 电机B+
B2 电机B-
VMOT接电机驱动电源+(我用12V+)
GND接电机驱动电源GND

源码同上一个420的

void smmsteper(int enpin, int trunpin, int pwpin, int step, int trun) {
  pinMode(enpin, OUTPUT);
  digitalWrite(enpin,LOW);
  pinMode(trunpin, OUTPUT);
  digitalWrite(trunpin,trun);
  for (int i = (1); i <= (step); i = i + (1)) {
    pinMode(pwpin, OUTPUT);
    digitalWrite(pwpin,HIGH);
    delay(1);
    pinMode(pwpin, OUTPUT);
    digitalWrite(pwpin,LOW);
    delay(1);
  }
  pinMode(enpin, OUTPUT);
  digitalWrite(enpin,HIGH);
}

void setup(){
  Serial.begin(9600);
}

void loop(){
  if (Serial.available() > 0) {
    String item = Serial.readString();
    Serial.println(item);
    smmsteper(32, 31, 30, 100 * String(String(item).substring(1,String(item).length())).toInt(), String(String(item).substring(0,1)).toInt());

  }

}

步进数量个数不同,因为模式我没有做处理直接悬空,最长距离53*100

猜你喜欢

转载自blog.csdn.net/taogunet/article/details/112966849
今日推荐