D1 R32 – ESP32+Arduino CNC Shield控制步进电机

陈拓 2023/04/01-2023/04/05

1. 简介

在《Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明》

https://blog.csdn.net/chentuo2000/article/details/129851439?spm=1001.2014.3001.5501

一文中我们介绍了CNC Shield V3.0的引脚功能以及和Arduino Uno开发板引脚位置的对应关系。在此基础上,本文我们讲述用D1 R32 – ESP32+Arduino CNC Shield通过A4988步进电机驱动模块控制NEMA17步进电机。

这种步进电机和驱动器的组合适用于许多需要位置控制的应用,如3D打印机、CNC机床、机器人、自动化机床等。

D1 R32 – ESP32+Arduino CNC Shield是一套低成本的组合,特别适合个人DIY。

2. 所需组件及介绍

2.1 ESP32开发板D1 R32

  • D1 R32 – ESP32引脚图

  • D1 R32 – ESP32电路图

这是一块与Arduino UNO开发板外型相似的ESP32开发版。

2.2 Arduino CNC Shield V3.00

这是一块Arduino CNC扩展板,CNC是计算机数字控制(Computerized Numerical Control )的英文缩写。

这块CNC扩展板可以支持A4988、DRV8825等步进电机驱动模块。

重要注意事项!!!

CNC扩展板上右侧上拉A4988 EN引脚的10K电阻必须拆掉,因为EN引脚通过D1 R32 – ESP32开发板连接到ESP32的GPIO12引脚,而GPIO12在启动时必须为低电平。

Arduino CNC扩展板可用于驱动3D打印机、机械臂或机器人系统中的NEMA17电机(俗称42步进电机,因为1.7英寸约等于42mm)。

  • D1 R32 – ESP32开发板 + Arduino CNC Shield V3.00 + A4988组合

2.3 NEMA 17 步进电机

NEMA 17(42)步进电机有多种型号,有不同的功率,它们的安装面都是一样的,不同的是长度,长度越长功率越大,所需的驱动电流也越大。常见的长度有23mm、33mm、38mm、40mm、47mm等。

2.4 用于电机供电的外部12V电源

3. D1 R32 – ESP32开发板引脚与Arduino CNC Shield V00引脚的对应

  • 引脚的对应

Arduino Uno  CNC Shield         D1 R32 - ESP32

D0                  RX                       RX0

D1                  TX                        TX0

D2                  X-STEP                IO26

D3                  Y-STEP                IO25

D4                  Z-STEP                IO17

D5                  X-DIR                   IO16

D6                  Y-DIR                    IO27

D7                  Z-DIR                    IO14

D8                  EN                         IO12 拆掉CNC板子上的10K上拉电阻

D9                  X-、X+                  IO13

D10                Y-、Y+                   IO05

D11                Z-、Z+                   IO23

D12               A-STEP、SpinEn   IO19

D13               A-DIR、SpinDir      IO18

D14                Abort                      IO02

D15                Hold                       IO04

D16                Resume                 IO36

D17                CoolEn                   IO34

D18                SDA                        IO38

D19                SCL                        IO39

  • Arduino UNO参照

4. 软件开发环境

参考《Arduino CLI命令行ESP32开发环境搭建(Linux Ubuntu操作系统)》

https://blog.csdn.net/chentuo2000/article/details/129472612?spm=1001.2014.3001.5501

5. 测试

5.1 接线

5.2 创建新的sketch

详细操作步骤请看:

https://blog.csdn.net/chentuo2000/article/details/129472612?spm=1001.2014.3001.5501

  • 进入Arduino CLI目录

cd ~/bin

  • 创建新的sketch

arduino-cli sketch new cnc_a4988

5.3 编写测试代码

  • 进入sketch目录

cd cnc_a4988

  • 编写代码

nano cnc_a4988.ino

const int DIR = 16;
const int STEP = 26;
const int  steps_per_rev = 200;

void setup() {
  Serial.begin(115200);
  pinMode(STEP, OUTPUT);
  pinMode(DIR, OUTPUT);
}

void loop() {
  digitalWrite(DIR, HIGH);
  Serial.println("Spinning Clockwise...");

  for(int i = 0; i<steps_per_rev; i++)
  {
    digitalWrite(STEP, HIGH);
    delayMicroseconds(2000);
    digitalWrite(STEP, LOW);
    delayMicroseconds(2000);
  }
  delay(1000);

  digitalWrite(DIR, LOW);
  Serial.println("Spinning Anti-Clockwise...");

  for(int i = 0; i<steps_per_rev; i++)
  {
    digitalWrite(STEP, HIGH);
    delayMicroseconds(1000);
    digitalWrite(STEP, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
}

代码详细说明见:

https://microcontrollerslab.com/stepper-motor-a4988-driver-module-esp32/

  • 编译

arduino-cli compile -besp32:esp32:esp32 cnc_a4988.ino

  • 烧写

arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32:UploadSpeed=115200 cnc_a4988.ino

电机已经动了。

  • 串口查看

arduino-cli monitor -p /dev/ttyUSB0 -c baudrate=115200

参考文档

  1. Stepper Motors and Arduino – The Ultimate Guide
    https://howtomechatronics.com/tutorials/arduino/stepper-motors-and-arduino-the-ultimate-guide/
  2. Control Stepper Motor with A4988 Driver Module and ESP32
    https://microcontrollerslab.com/stepper-motor-a4988-driver-module-esp32/

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨之清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值