arduino步进电机程序库_【MM32 eMiniBoard测评报告】+驱动步进电机

本文介绍了使用灵动微电子的MM32 SPIN系列开发板,特别是MM32L073,进行步进电机控制的实践。文章详细阐述了开发板的硬件资源、软件资料,包括Arduino接口支持,并提供了步进电机的控制原理和主要代码,展示了如何通过规则脉冲信号驱动步进电机转动。
摘要由CSDN通过智能技术生成

1. 引言

    先简单聊一下我与MM32的故事。在去年,我开始做BLDC的项目,于是开始学习了解各家的mcu及其解决方案。有幸获得了灵动微电子的MM32 SPIN系列开发板,给我的感觉是开发板做工精良,开发配套资料很全,FAE支持也很及时,我想有机会也要去了解其他系列,这不,机会就来了嘛。

2. 关于开发板

    学习使用一款新的mcu及其解决方案,要先把相关的软硬件资料准备好。推荐去灵动官网下载相关资料。以下为链接地址:http://www.mm32mcu.com/download1.aspx

    由于MM32系列很多,我们可以根据自己的需要下载对应的资料,如我们手中的 Mini board 搭载的是 MM32L073,下载相关资料即可。

2.1 硬件资料

702691205e9a68929e5cb4097cc931ea.png

这个链接里的文档附有原理图和操作手册,建议仔细查阅。

2.2 软件资料

c1d884bbea230ee32c64bec9a01ea424.png

这个链接里有库函数和相关的 Demo,建议仔细查阅。

2.3 开箱

b764f7776a9782bc0befd148cc0c7d4b.png

dc4d61048e68019584c156fcaad319e0.png

040461a1c0ac02ce07d57a687a234148.png

点评:元器件都在正面,反面啥也没有。开发板摸上去手感很好。

2.4 硬件资源盘点

我手中这一款是MB-023,根据相关文档可知,其具备以下模块:

  • CN2, Power And Debug

  • CN3, Power,稳压输出3.3V

  • 4个LED灯

  • 4个按键

  • 支持 Arduino 接口

  • CN4, UART接口

  • CN5, CAN接口

  • 1个蜂鸣器模块

  • 8MHz晶振

  • SPI Flash模块

  • AT24C02, EEPROM存储模块

  • 板载仿真器

点评:板载资源非常丰富,有点超出期望了。之前玩过的STM32评估板资源很少,只有板载调试器+ mcu 最小系统。做原型样机开发时,连接很多外部模块时就显得不方便。相比较而言,MM32就考虑更周全了。嵌入式开发的最常用的模块都有,有了这款开发板,很方便做原型样机验证,这里,给灵动点个赞。

2.5 软件Demo演示

有了板载调试器,用一根 Micro USB 数据线连接好就可以进行开发调试了,很方便。

软件库支持最主流的两大编译器:Keil 和 IAR.

首次使用L073系列,需要安装 Pack 包。下载解压后,双击安装即可。

971eae6985bcb73e94d52ca8c4880991.png

点灯程序,号称嵌入式世界的 "Hello world".

#include "delay.h"
#include "sys.h"
#include "led.h"

int main(void)
{
delay_init();
LED_Init();
while(1)
{
LED1_TOGGLE();
LED2_TOGGLE();
LED3_TOGGLE();
LED4_TOGGLE();
delay_ms(300);
}
}

需要注意的是:仿真调试时需要手动选择一下仿真器型号。 

ed30676cce815b160bd3dd6154f7425d.png

效果:4个IO口间隔300ms翻转,可以看到4个LED灯在闪烁。

3. 项目实战

3.1 项目描述

使用 MM32 驱动步进电机工作,步进电机有工作头,进而完成一些自动化的任务。

3.2 步进电机控制原理

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。

简单来说,驱动器的四个 IO 口需要规则的脉冲信号,如间隔一小段时间的0b1000->0b0100->0b0010->0b0001,驱动信号一直循环下去电机就可以一直旋转。

3.3 主要代码

int main(void)
{
static uint8_t s_u8Step = 0;

delay_init();
LED_Init();
while(1)
{
switch(s_u8Step)
{
case 0:S1_OFF();S2_ON();S3_ON();S4_ON();break;
case 1:S2_OFF();S1_ON();S3_ON();S4_ON();break;
case 2:S3_OFF();S1_ON();S2_ON();S4_ON();break;
case 3:S4_OFF();S1_ON();S2_ON();S3_ON();break;
default:break;
}
s_u8Step++;
if(s_u8Step >= 4)
{
s_u8Step = 0;
}
delay_ms(5);
}
}
// 步进电机引脚控制
#define S1_ON() GPIO_ResetBits(GPIOA,GPIO_Pin_4) // PA4
#define S1_OFF() GPIO_SetBits(GPIOA,GPIO_Pin_4) // PA4
#define S1_TOGGLE() (GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_4))?(GPIO_ResetBits(GPIOA,GPIO_Pin_4)):(GPIO_SetBits(GPIOA,GPIO_Pin_4)) // PA4

连线说明:驱动器的电源来自开发板的 5V 和 GND 。驱动器的 IO 信号来自开发板的 PA3~PA7,需全部设置为GPIO的输出引脚功能。

3ab9163d154a1a8010f4bcd67bc22d36.png

备注:结构纯手工打造哦。

实测效果:步进电机旋转一周大约5s。

小结

最后,总结一下总体感受。

  • 开发板做工精良

  • 板载资源丰富,原型开发验证方便

  • 软件资源齐全,与主流开发工具无缝对接

  • 软件库与STM32相似度较高,便于开发人员快速上手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值