arduino通过CNC SHIELD(A4988)控制两个步进电机

目的

本例程使用arduino通过CNC SHIELD(A4988模块)控制两个步进电机运动

内容来源

修改太极创客关于AccelStepper步进电机库的原始代码
太极创客链接: http://www.taichi-maker.com/homepage/arduino-tutorial-index/arduino-hardware/motor-9/

修改的代码如下,实际使用中发现Y电机一直朝一个方向转,想要反方向转需要在run函数前定义旋转方向,排除了硬件问题,不知道是为什么,如果有老哥知道还麻烦评论说一下。

/**本例程使用arduino通过CNC SHIELD(A4988模块)控制两个步进电机运动*步进电机接线:*A+ A- B+ B-*红 蓝 绿 黑*红 绿 蓝 黄
*/#include "AccelStepper.h"// 电机步进方式定义
#define FULLSTEP 4    //全步进参数
#define HALFSTEP 8    //半步进参数#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轴步进控制// 定义两个步进电机对象
// X电机设置为全步进运行,Y电机设置为全步进运行
AccelStepper stepperX(FULLSTEP,X_STP,X_DIR);//建立步进电机对象1
AccelStepper stepperY(FULLSTEP,Y_STP,Y_DIR);//建立步进电机对象2void 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);stepperX.setMaxSpeed(10000);   // 设置电机最大速度为1500stepperX.setAcceleration(5000.0);  // 设置电机加速度200.0stepperX.setSpeed(500);      // 初始化电机速度为300stepperY.setMaxSpeed(10000);   // 设置电机最大速度为1500stepperY.setAcceleration(5000.0);  // 设置电机加速度200.0stepperY.setSpeed(500);      // 初始化电机速度为300
}void loop()
{    // 转动一定圈数if ( stepperX.currentPosition() == 0 && stepperY.currentPosition() == 0 ){// X电机转动一周stepperX.moveTo(2048);              // Y电机转动一周stepperY.moveTo(2048);  } else if ( stepperX.currentPosition() == 2048 && stepperY.currentPosition() == 2048 ){stepperX.moveTo(0);            // 不知道为什么不能回转stepperY.moveTo(0);  }   stepperX.run();   // 1号电机运行//digitalWrite(Y_DIR, false);stepperY.run();   // 2号电机运行//    //匀速运行
//    stepperX.setSpeed(1500);
//    //digitalWrite(Y_DIR, false);
//    stepperY.setSpeed(1500);
//    stepperX.runSpeed();
//    stepperY.runSpeed();
}

arduino通过CNC SHIELD(A4988)控制两个步进电机相关推荐

  1. ARDUINO:控制两台步进电机同步运转

    要控制两台步进电机同步进行运转,即同时起步,同时加速,同时到达最大速度,同时减速,最后同时停止. 这是要有一定的算法的: 假如B1电机所走的路程是B2的n倍,在同时起步的前提下,v1=n*v2,a1= ...

  2. Arduino(2560)控制两个步进电机通过控制器

    Arduino 2560控制两个步进电机 用arduino和步进电机控制器驱动两个步进电机,具体的接线过程和怎样连接都在图片上. 准备工具: 两个步进电机(我用的是J42): Arduino板(我用的 ...

  3. 89c52单片机控制两个步进电机正反转加减速(程序+仿真)

    89c52单片机控制两个步进电机正反转加减速(程序+仿真) 先上图: 源代码: /*********************************************************** ...

  4. 单片机控制两个步进电机画圆_基于单片机的步进电机转速控制设计详解(附程序)...

    步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角.这 ...

  5. 单片机控制两个步进电机画圆_51单片机控制两个步进电机

    /*----------------------------------------------- 步进电机控制 ------------------------------------------- ...

  6. ros中的电机速度控制_【RosBot】控制两路步进电机-学习笔记1-Arduino中文社区 - Powered by Discuz!...

    本帖最后由 动手党 于 2017-12-11 20:05 编辑 收到之前比赛兑换的RosBot 基础板,顺便做一个学习笔记吧 一.  板子做工和用料 rosbot主板1.jpg (302.71 KB, ...

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

    陈拓 2023/03/24-2023/03/29 1. Arduino CNC Shield V3.00电机驱动扩展版 注意:板子左侧中间的玻璃管是玻封保险丝. Arduino CNC Shield可 ...

  8. proteus仿真arduino控制两位数码管

    前面我们用arduino控制一位数码管,知道了控制数码管的原理.这里我们增加了一位,其显示的原理基本一样.只不过本质上不是两位同时点亮,而是轮换点亮.下面是原理图: 我们来看看代码的实现: int P ...

  9. 利用Arduino+TB6600驱动模块控制两相四线42减速步进电机

    实验目的:利用Arduino+TB6600驱动模块控制两相四线42减速步进电机 材料: Arduino Nano   *1 TB6600驱动器  *1 42减速步进电机*1 面包板           ...

最新文章

  1. python里面的之前打过的记忆信息-Python关键语句备忘录,拯救你的记忆
  2. mysql max connects_mysql max_connections 总是 4190
  3. 从2-3-4树谈到Red-Black Tree(红黑树)
  4. 【转】一个安全测试的CheckList
  5. 冒充中科大少年班校友被打脸!AI 公司创始人被扒清华硕士和斯坦福博士均造假...
  6. c# 十六进制转为字节_如何在C#中将具有十六进制内容的字节数组转换为具有十进制的字符串...
  7. 系统管理员不可不知的三条黄金法则
  8. Java中异常处理示例
  9. android华为状态栏字体颜色,Flutter修改状态栏颜色以及字体颜色
  10. Sublime增加GBK编码格式
  11. 数字营销浪潮下,企业如何打赢流量反欺诈攻防战?
  12. Qt知识点梳理 —— 静态函数发送信号
  13. POI 单元格设置背景颜色失效(背景色设置方式),以及背景颜色生效后单元格边框线消失问题解决
  14. Postman批量运行
  15. 怎么设置360主页的html,360安全浏览器怎么设置主页 设置主页原来这么简单
  16. 双电阻差分电流采样_1206 0.35R采样毫欧电阻等规格参数应用详情
  17. HTML外边框塌陷什么意思,html-margin塌陷 :
  18. 黑色素瘤的最新研究进展(2021年5月)
  19. 二级python——(三)format()方法的基本使用
  20. IP地址及子网掩码介绍及计算详解

热门文章

  1. 分众模式下的学员管理
  2. 知识蒸馏论文翻译(8)—— Knowledge Distillation Meets Self-Supervision(自监督)
  3. elasticsearch安装配置
  4. 黑金高速AD-DA模块使用
  5. Unity制作批量配音制作工具
  6. php senc.dll下载,PHP如何调用非COM组件的DLL
  7. 《分析服务从入门到精通读书笔记》第一章、数据分析基础(1)
  8. 电子版微积分教课书,作者是怎样精心撰写的?
  9. java 3d 配置_Java 3D简介及安装运行
  10. 3D 渲染软件市场增长迅速的原因