arduino控制步进电机

发布时间 2023-07-17 15:38:58作者: MKT-porter

Arduino控制TB6600驱动器+42步进电机

https://blog.csdn.net/dongyan3595/article/details/122388869

 

 

int PUL = 7; //定义脉冲引脚
int DIR = 6; //定义方向销
int ENA = 5; //定义启用引脚
int RESET = 4; //定义复位传感器
 
/**
 * TB6600驱动器 . 42两相四线步进电机
 */
void setup() {
  pinMode (PUL, OUTPUT);
  pinMode (DIR, OUTPUT);
  pinMode (ENA, OUTPUT);
  pinMode (RESET,INPUT);
  Serial.begin(9600);
  // 初始化复位 - 转3圈
  for (int i = 0; i < 4800; i++) //前进4800步 SW1=OFF,SW2=ON,SW3=OFF(每圈1600脉冲)
  {
    digitalWrite(DIR, LOW); // 定义正转
    digitalWrite(ENA, HIGH);// 启动
    digitalWrite(PUL, HIGH);// 输出脉冲
    delayMicroseconds(2000);
    digitalWrite(PUL, LOW);
    // 复位传感器
    int reset = digitalRead(RESET);
    if(reset == 0) {
      // 监测到达复位位置后停止转动
      break;
    }
    delayMicroseconds(2000);
  }
}
 
void loop() {
  for (int i = 0; i < 1600; i++) //正转1圈
  {
    digitalWrite(DIR, LOW);
    digitalWrite(ENA, HIGH);
    digitalWrite(PUL, HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL, LOW);
    delayMicroseconds(50);
  }
  delay(10000); // 暂停10秒
  for (int i = 0; i < 1600; i++) //倒转1圈
  {
    digitalWrite(DIR, HIGH);
    digitalWrite(ENA, HIGH);
    digitalWrite(PUL, HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL, LOW);
    delayMicroseconds(50);
  }
}
————————————————