A4988一般用arduino来驱动,我是用STM32F103驱动的。

首先推一个网页,https://www.pololu.com/product/1182,上面有比较详细和专业的说明,还有一个关于限制电流使细分更精确的视频讲解,总之,专业。然后推一个datasheet,https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver_with_translator.pdf

我用的是
驱动比较好写,首先要弄清楚接线方式。

代码:

motor.c
//IO初始化
void MOTOR_Init(void)
{RCC->APB2ENR|=1<<3;GPIOB->CRH&=0xff000000;GPIOB->CRH|=0x00333333;
}
//细分
//  x==1 全步
//  x==2 半步
//  x==4 1/4步
//  x==8 1/8步
//  x==16 1/16步
void Step_Micr(u16 x)
{switch(x){case 1:Full_step;break;case 2:Half_step;break;case 4:Quarter_step;break;case 8:Eighth_step;break;case 16:Sixteenth_step;break;default:break;}
}
//参数
//  dir:FALSE 正转TRUE反转
//  period 周期
//  step   脉冲
void Step_Control(u8 dir,u16 period,u32 steps)
{u32 i;for(i=0; i <= steps;i++){DIR = dir;STEP = 1;delay_us(1);STEP = 0;delay_us(period);//periodԽС£¬×ªËÙÔ½¿ì£¬²»ÒªÐ¡ÓÚ1000}
}
//此函数可抱死
//  0 抱死
//  1 正常
void Step_Enable()
{ENABLE = 0;
}motor.h
#define STEP PBout(8)   //step
#define DIR  PBout(9) //dir
#define MS1  PBout(10)//MS1
#define MS2  PBout(11)//MS2
#define MS3  PBout(12)//MS3
#define ENABLE PBout(13)//ENABLE
//细分宏定义
#define Full_step {MS1 = 0;MS2 = 0;MS3 = 0;}
#define Half_step {MS1 = 1;MS2 = 0;MS3 = 0;}
#define Quarter_step {MS1 = 0;MS2 = 1;MS3 = 0;}
#define Eighth_step {MS1 = 1;MS2 = 1;MS3 = 0;}
#define Sixteenth_step {MS1 = 1;MS2 = 1;MS3 = 1;} void MOTOR_Init(void);
void Step_Micr(u16 x);
void Step_Enable(void);
void Step_Control(u8 dir,u16 period,u32 steps);main.c
int main(void)
{int i=0;Stm32_Clock_Init(9);delay_init(72);MOTOR_Init();Step_Micr(1);//1/2/4/8/16 for(i=0;i<10;i++){Step_Control(FALSE,1600,200);//正转delay_ms(1000);Step_Control(TRUE,1600,200);//反转delay_ms(1000);}Step_Enable();//抱死while(1){}
}

实现全步状态下正转一圈,反转一圈,持续一会儿后抱死。

A4988驱动步进电机相关推荐

  1. c语言编程a4988驱动步进电机,A4988 步进电机驱动模块测试

    A4988控制逻辑简单,主要分为睡眠.正反转.复位.使能.细分等模式控制. (1)睡眠模式:Sleep管脚电平置0,进入睡眠模式,驱动器输出待机模式:Sleep管脚置1,驱动器处于正常工作状态: (2 ...

  2. 使用Arduino与A4988 驱动步进电机

    初识Arduino,有什么错漏的地方请指正. 学会使用A4988驱动电机对于DIY3D打印机,雕刻机很有帮助. 实验目的:Arduino与A4988驱动42步进电机 材料如下: Arduino uno ...

  3. c语言编程a4988驱动步进电机,A4988步进电机单片机驱动程序

    /*************************************************************** * 实 验 名 :步进电机实验 * 实验说明 :电机启动.停止.正转. ...

  4. Arduino CNC电机扩展板详解(A4988驱动42步进电机)

    原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/ ...

  5. 基于51单片机驱动A4988实现步进电机逆时针转动

    基于51单片机驱动A4988实现步进电机逆时针转动 一.简介 二.接线 典型接线图 实际接线 三.部分代码 引脚定义 定时器初始化 主函数 四.实验现象 五.注意事项 一.简介 A4988 是一款完全 ...

  6. A4988驱动NEMA步进电机(42步进电机)

    A4988驱动NEMA步进电机(42步进电机) 原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-in ...

  7. 树莓派入门(八)之树莓派与A4988 驱动42步进电机

    在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机.当然,这里我还是以arduino为例,但是会给出树莓派的代码. ...

  8. 【51单片机】 ULN2003模块 驱动步进电机(5线)正反转 代码以及接线图(简单教学,一看就会)

    步进电机有四相(A-B-C-D) 正向转动思路为A→B→C→D 反向转动思路为D→C→B→A 通过给每一相轮流供电,实现电机轴的360度转动 ..以下代码可直接复制使用: #include <r ...

  9. 【STM32篇】4988驱动步进电机

    本文介绍的步进电机驱动为毕设所用,学习时也借鉴了其他博主和商家的资料,介绍的都很详细.但对于刚入门的友友萌来说,可能还会存在的一些不解.而我就是被卡在驱动电源上.下文为我对4988驱动的一些理解,希望 ...

最新文章

  1. 小程序开发(10)-之热力图解决方案、手绘图
  2. Github上都没有的“网约车”项目,终于有人给写出来了!
  3. 容器编排技术 -- 使用kubectl实现应用滚动更新
  4. li标签行内元素高度及居中
  5. Unix网络编程 chart
  6. UVA1363 LA3521 POJ2800 ZOJ2646 Joseph‘s Problem【约瑟夫环+数学】
  7. 【车间调度】基于matlab粒子群算法求解车间生产调度问题【含Matlab源码 245期】
  8. 【小伟哥AI之路】海康摄像头近距离不能对焦模糊问题
  9. UMLChina公众号文章精选(20220330更新精选)
  10. win10+hexo+github搭建个人博客
  11. 小米钱包笔试算法2020-12
  12. Java真题笔记|华为
  13. FAQ:redis key/value 前面出现\xAC\xED\x00\x05t\x00\x05
  14. android手机执行shell脚本
  15. 如何在任务管理器结束任务
  16. Whistle使用手册
  17. 中国质量认证中心CQC修订便携式电子设备用电池和电池组安全认证实施规则
  18. 集成学习(Ensemble Learning),Bagging、Boosting、Stacking
  19. UnityHDRP中雪地留下脚印的Shader
  20. android 招聘需求整理

热门文章

  1. 创业实践案例课程报告
  2. YOLOv5识别图像内苹果和香蕉
  3. sigaction函数中 SA_NODEFER与sa_mask之间
  4. 【更新!】3dMax材质ID随机生成器插件MaterialIDsRandomGenerator v2.1.2使用教程
  5. 腾云忆想技术文|CREDIS在TMF平台中的落地实践
  6. 平衡二叉树(AVL)的左旋和右旋
  7. VB6语言语音通知接口DEMO示例
  8. 【观察】加速自动驾驶落地,华为OceanStor Pacific有何“独门秘籍”?
  9. Windows运行(快捷键Win+R)命令大全 及 快捷键
  10. 中国计算机软件工程大学专业,全国开设软件工程专业院校有哪些 都有什么大学名单...