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);
}
}
Arduino控制TB6600驱动器+42步进电机
于 2022-01-09 00:16:45 首次发布