步进电机,不多做解释,百度一大堆,虽然写的都一样。

1.步进电机用的2相四线,下面是某淘宝图片。

2.驱动器是A4988模块,据说是3d打印机专用。

灰色的脚可以悬空,也可以用上。

ENABLE    使能        1停止

STEP         pwm(50%)        控制速度   (频率范围:我试了下大概1Hz-1KHz都可以跑的,当然频率越慢,电机相当于静止状态)

DIR             控制方向

2B    ->    B+     (这里网上没怎么说清楚,只说了什么红绿蓝,鬼知道?)

1B    ->    B-

2A    ->    A+

1A    ->    A-

基本重要的就是这些,分步控制就是MS1 MS2 MS3,看后面。接线参考下面。

连线根据上面一个没有什么问题,下面直接上代码吧。stm32 通过tim3 ch1输出pwm,也就是PA6

void PWM1_Init()
{GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;TIM_OCInitTypeDef  TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE);  //使能GPIO外设时钟使能//设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ; //TIM_CH1GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = 999; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值      TIM_TimeBaseStructure.TIM_Prescaler =71; //设置用来作为TIMx时钟频率除数的预分频值  不分频TIM_TimeBaseStructure.TIM_ClockDivision =0; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位//TIM3通道一TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能TIM_OCInitStructure.TIM_Pulse = 60;  /*占空长度 0 – 周期(max)*/TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高TIM_OC1Init(TIM3, &TIM_OCInitStructure);  //根据TIM_OCInitStruct中指定的参数初始化外设TIMxTIM_CtrlPWMOutputs(TIM3,ENABLE);        //MOE 主输出使能        TIM_ARRPreloadConfig(TIM3, ENABLE); //使能TIMx在ARR上的预装载寄存器TIM_Cmd(TIM3, ENABLE);  //使能TIM1}void set_freq(u16 freq)
{TIM3->ARR=1000000/freq;            //设频率TIM3->CCR1=1000000/freq/2;   //设占空比 50%
}

初始化就不介绍了,就是设置成不分频,计数频率最大为1M,

set_freq函数就是设置频率,范围1-1000000对应1Hz-1MHz,这里是理论值,实际上我的步进电机2KHz好像就跑不起来了。

所以我认为1-2000的就够了,注意电机刚起的时不能太高的频率,一般低于500Hz没有问题。

stm32-A4988驱动步进电机相关推荐

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

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

  2. STM32+ULN2003驱动步进电机

    选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用uln2003芯片的驱动板,其控制时序图如下: 四相八拍:A->AB->B ->BC -& ...

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

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

  4. STM32+DRV8711驱动步进电机

    步进电机的驱动原理 步进电机的知识涉及到比较多的东西,这里只是简单介绍一下,关于具体的知识之后再补充. 步进电机的驱动原理时期就是电磁感应现象,给步进电机供电流,然后会产生磁场,再合成磁场的方向,驱动 ...

  5. A4988驱动步进电机

    A4988一般用arduino来驱动,我是用STM32F103驱动的. 首先推一个网页,https://www.pololu.com/product/1182,上面有比较详细和专业的说明,还有一个关于 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. mysql 二级什么意思_MySQL二级等级考试归纳——PHP篇
  2. wxPython的API下载
  3. C++设计模式实现--策略(Strategy)模式
  4. 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )
  5. apt-mirror 校验错误文件处理
  6. Provisioning Services 7.6 入门到精通系列之七:创建虚拟磁盘
  7. java中对象输入流和输出流
  8. Jenkins配置MSBuild时使用环境变量
  9. (17)Verilog时钟与复位激励-基本语法(五)(第4天)
  10. 云计算学习路线图课件:云计算和虚拟机有什么区别?
  11. SQL Server:如何加入第一行
  12. html 属性存储对象,在HTML5 localStorage中存储对象
  13. winsock编程宝典
  14. 网站SEO优化知识梳理
  15. python中iter函数_Python基础:iter函数的两个参数
  16. 激活信息管理slmgr.vbs命令详解
  17. linux 查看登入记录_Linux登录信息查询
  18. 在线html 生成链接,网址链接生成器
  19. Python中关于浮点数运算的不确定尾数的解释
  20. 【技术解析】数通是什么?

热门文章

  1. 【Linux】四、Linux 进程概念(上篇)
  2. PTA出现EOFError
  3. 计算机专业二级证书有哪些科目,国家计算机二级考试都有哪些科目以及考核形式?...
  4. react-router 里的 routerLink标签和a 标签有什么区别
  5. 通达OA-今日学习 精灵报错提示初始化失败
  6. Web开发者的福利 30段超实用CSS代码笔记
  7. Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
  8. win8专业版桌面ie图标不见了怎么恢复--win10专业版
  9. K-means聚类算法代码
  10. vue 页面保留缓存和清除缓存