西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 4578|回复: 46

[分享] 从零开始STM32直流无刷驱动控制和实践

[复制链接]

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

发表于 2020-8-5 19:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
自从学了STM32已经可以点灯了,打算做点啥,于是就从当下热门的无刷驱动下手吧,先搞个六步方波吧!

评分

参与人数 3西莫币 +25 收起 理由
raozhimeng + 15 多谢支持
huqiangzyr + 5 感谢分享
heguojia + 5 多谢支持

查看全部评分

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-6 17:03 | 显示全部楼层
无刷常用三相H全桥驱动,先上个三相H全桥驱动示意图
阿里旺旺图片20200806165837.png
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-14 17:13 | 显示全部楼层
本帖最后由 czvmkl 于 2020-8-14 17:18 编辑

无刷有感六步方波驱动原理其实不复杂,就是二二通电,一个通电周期内六个状态,周而复始循环,也没啥好说的!

补充内容 (2020-8-16 10:05):
当然在现实中是不可能用手来操作S1~S6开关的, 辛好有MOS管作为高速的电子开关  IRF540
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-14 17:16 | 显示全部楼层
言归正传,废话我就不多说了,下面就把原理图和源代码贴上来分析一下.
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-15 16:46 | 显示全部楼层
原理图H桥 A相
20200815164053.png

补充内容 (2020-8-16 10:37):
这个IR2101+IRF540 MOS管用人话讲他的工作原理就是: STM32 的高级定时器TIM1通道1输出高电平(TIM1_CH1), IR2101的2脚输入端为高电平,所以IR2101的7脚输出也是高电平,IR2101的7脚输出为高,那么IRF540的2 3脚就导通...

补充内容 (2020-8-16 10:41):
TIM1通道1如果输出低电平,那么MOS管 IRF540就关闭截止了,TIM1的其他2个通道也是一样的工作原理控制MOS管的通断
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-15 16:51 | 显示全部楼层
B相
20200815164927B.png
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-15 16:56 | 显示全部楼层
本帖最后由 czvmkl 于 2020-8-16 08:42 编辑

C相
20200815165441C.png

这三个电路原理图是相同的.
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2020-8-15 18:03 | 显示全部楼层
可以很好 我们一起
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-16 08:46 | 显示全部楼层
这样由上面A B C三相的IR2101加MOS构成了无刷驱动的三相全桥逆变电路
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-16 08:50 | 显示全部楼层
本帖最后由 czvmkl 于 2020-8-16 09:43 编辑

接下来是电源部分,电源主要是BUCK变换,DC24V 转DC15V DC5V DC3.3V,  DC3.3V给控制板上STM32F103RCT6供电, 控制板借用现存的原子哥的Mini STM32板子
阿里旺旺图片20200816092301.png
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-17 08:18 | 显示全部楼层
霍尔传感器接口电路
202008170816262.png
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-24 17:15 | 显示全部楼层
PCB板子已经焊接OK
片20200820124028.png
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-26 08:47 | 显示全部楼层
本帖最后由 czvmkl 于 2020-8-26 17:12 编辑

干货源代码来了                                 
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-27 08:51 | 显示全部楼层
干货来袭,源代码带全部中文注释
方波霍尔按键调速(V3.5库).rar (1.84 MB, 下载次数: 85)

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-28 07:59 | 显示全部楼层
接下来把代码捋一捋
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-28 19:49 | 显示全部楼层
主控板按键与单片接的连接
20200828194422.png
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-8-29 15:45 | 显示全部楼层
本帖最后由 czvmkl 于 2020-8-29 15:57 编辑

程序主要包含四个文件
一  main.c               主程序
二  stm32f10x_it.c   放六步换向函数,霍尔引脚外部中断函数,通用定时器TIM2中断函数
三  TIM1.c              高级定时器TIM1初始化配置
四  TIM2.c              通用定时器TIM2初始化配置



后面三个c文件都是为main.c服务的,分开写是为了使程序结构更清晰简洁
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-9-1 10:01 | 显示全部楼层
先看主程序main.c, 主程序很简单就11条语句,就最后一句一个while大循环比较复杂
int main(void)
{  int i;
  u8 keytemp=0;
  bool flag=0;
  SysTick_Init(72);  // 调用SysTick初始化函数
  NVIC_Configuration();  //调用中断配置函数
  TIM1_Configuration1(); //调用TIM1配置函数          
  TIM2_Configuration1(); //调用TIM2配置函数          
  GPIO_Configuration();  //调用GPIO端口配置函数
  aim_speed=1000;   //PWM捕获比较寄存器值,决定占空比
  Hall=1;
while (1)
{......}
}
   
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 24 天

连续签到: 1 天

[LV.4]偶尔看看III

 楼主| 发表于 2020-9-2 14:48 | 显示全部楼层
本帖最后由 czvmkl 于 2020-9-2 14:58 编辑

主函数main()前面是一些头文件包含,变量的声明,以及在主函数main()内需要用到的被调函数的声明
/*包含头文件*/
#include"stm32f10x.h"
#include"stdbool.h"
void SysTick_Init(u8 SYSCLK);//SysTick初始化函数声明
void delay_ms(u16 nms);      //自定义的延时毫秒函数声明
u8 fac_us=0;
u16 fac_ms=0;

u16 motor_statue=0;
u16  startcnt=0;
extern u16 My_PWM;   //pwm值                                                                   变量或函数如果在外部c文件定义的,声明时加关键字extern
extern u16 Hall,time;  //霍尔,计时时间
extern bool Direction; //电机旋转方向
extern int aim_speed;  // PWM占空比

/* Private function prototypes 自定义函数声明*/
void GPIO_Configuration(void); //GPIO端口初始化函数声明
void NVIC_Configuration(void); //中断初始化函数声明
extern void TIM1_Configuration1(void);//TIM1初始化函数声明
extern void TIM2_Configuration1(void);//TIM2初始化函数声明
extern void Hall_SW(void);   //六步换向函数声明
u8 key_con(void);             //扫描按键函数声明

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2020-9-18 21:00 | 显示全部楼层
不错!鼓励一下!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西莫电机圈 ( 浙ICP备10025899号-3 浙公网安备:33028202000436号

GMT+8, 2024-11-22 20:03 , Processed in 0.168523 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表