创意人生 发表于 2023-9-19 12:11:17

Arduino CNC Shield v3 初探



Arduino CNC Shield v3简介:
Arduino Uno开发板+电机驱动扩展版
CNC Shield V3.0可用作雕刻机,3D打印机等的驱动扩展板,板上一共有4路步进电机驱动模块的插槽,可驱动4路不进电机,而每一路步进电机都只需要2个IO口,也就是说,6个IO口就可以很好的管理3个步进电机,使用起来非常的方便,告别传统步进电机操作繁琐。将Arduino CNC Shield V3.0插到Arduino UNO上,并且安装GRBL固件就可以快速DIY一台CNC雕刻机出来。



#define EN      8       //步进电机使能端,低电平有效
#define X_DIR   5       //X轴 步进电机方向控制
#define Y_DIR   6       //y轴 步进电机方向控制
#define Z_DIR   7       //z轴 步进电机方向控制
#define X_STP   2       //x轴 步进控制
#define Y_STP   3       //y轴 步进控制
#define Z_STP   4       //z轴 步进控制
/*
//函数:step    功能:控制步进电机方向,步数。
//参数:dir 方向控制, dirPin对应步进电机的DIR引脚,stepperPin 对应步进电机的step引脚, steps 步进的步数
//无返回值
*/

void step(boolean dir, byte dirPin, byte stepperPin, int steps)
{
digitalWrite(dirPin, dir);
delay(50);
for (int i = 0; i < steps; i++) {
    digitalWrite(stepperPin, HIGH);
    delayMicroseconds(800);
    digitalWrite(stepperPin, LOW);
    delayMicroseconds(800);
}
}

void setup(){//将步进电机用到的IO管脚设置成输出
pinMode(X_DIR, OUTPUT);
pinMode(X_STP, OUTPUT);
pinMode(Y_DIR, OUTPUT);
pinMode(Y_STP, OUTPUT);
pinMode(Z_DIR, OUTPUT);
pinMode(Z_STP, OUTPUT);
pinMode(EN, OUTPUT);
digitalWrite(EN, LOW);
}

void loop(){
step(false, X_DIR, X_STP, 200); //X轴电机 反转1圈,200步为一圈
step(false, Y_DIR, Y_STP, 200); //y轴电机 反转1圈,200步为一圈
step(false, Z_DIR, Z_STP, 200); //z轴电机 反转1圈,200步为一圈
delay(1000);
step(true, X_DIR, X_STP, 200); //X轴电机 正转1圈,200步为一圈
step(true, Y_DIR, Y_STP, 200); //y轴电机 正转1圈,200步为一圈
step(true, Z_DIR, Z_STP, 200); //z轴电机 正转1圈,200步为一圈
delay(1000);
}


黄德义 发表于 2023-9-19 12:11:17

家电电工资料网就是牛!
页: [1]
查看完整版本: Arduino CNC Shield v3 初探