stm32c8t6/Arduino驱动无刷电机教程

无刷电机产品图片

无刷电机图片
图(1)

注意事项

1.无刷电机使用pwm波驱动,需要先校准才可使用。校准的占空比为5%,等同于舵机45度角。
2.驱动无刷电机需要较大的电流所以,单靠单片机供电无法驱动无刷电机,需要外部供电。

无刷电机的供电方式

使用电调接外部电源供电(电池即可),如图(2)所示:

供电图
图(2)

接线方式,如图(3)所示

接线方式
图(3)
具体情况需要依据开发版接线,有的开发版不需要额外接线,上面的白红蓝3条杜邦线的目的是为了接在面包版上,图(3)所示是讲解如何把无刷电机接到面包版上面:白线为负极线,红色为正极线,蓝色为信号线(接GPIO口)。
面包版接线,如图4所示:正接正,负接负,信号线接pwm波输出口(图4为stm32f103c8t6的A1,不止一个输出口依照自身需求和开发板配置来)
在这里插入图片描述
图(4)

视频演示

Arduino驱动无刷电机


stm32驱动无刷电机

五.代码部分:

1.stm32
(1)标准库pwm配置,如图5所示。
图5所示配置并非唯一,仅仅展示一种可行配置方案。

在这里插入图片描述
图(5)
通过函数调节CCR的值来修改占空比从而控制无刷电机,占空比越大无刷电机转速越快(有上限的,取决于你的无刷电机)CCR的值不固定取决于设置的预分频,计数周期以及芯片频率,具体情况会在HAL库配置教程的时钟树配置详细解释。

HAL库配置教程

使用工具:cubemax,该软件可以通过图形化界面帮我们快速配置hal库。

第一步新建工程,打开cubemax会进入图6所示界面,点击红色圈内选项新建工程。
我们依旧会支持flowchart的流程图:
在这里插入图片描述
图(6)
第二步选择你的芯片型号,本文介绍的是STM32F103C8t6
在1处选择芯片型号,2处点击芯片会进入芯片配置
在这里插入图片描述
图(7)

第三步基本配置
在这里插入图片描述
图(8)
在这里插入图片描述
图(9)
这两项为基本配置,基本上所有新建项目都需要配置这两项。特别是SYS中的debug模式一定要选择图9所选模式不然会导致无法烧录等一系列情况。

第四步配置pwm波
我们选择TIM2的通道2来产生pwm波,按下图配置。
在这里插入图片描述
图(10)
按照下图配置也是可以的,目的就是为了把pwm波频率配置为50hz,因为时钟的频率为72Mhz,区别只在于修改CRR值的时候所改变的占空比。在图11的配置下修改CRR的值为500和图9所示配置设置CRR的值为50的效果是一样的。
在这里插入图片描述
图(11)
无论哪一种情况下auto-reload-preload一定要使能,按图11配置!!!
按上述配置我们就得到了一个50HZ的pwm波(需要配置72Mhz的时钟树,下文图解)
在这里插入图片描述
图(12)
图12这里的pulse是依据上面的配置来填的,这只是一个初始值不影响我们后续修改。填0也行不影响。Output compare preload 要使能。

配置时钟树

在这里插入图片描述
上面的所有配置均基于时钟树配置,如时钟树配置出错上面的配置全部白搭。如图13所示72下方有一个72MHZmax这就是我们初始时钟频率,但是这是无法驱动舵机的,所以我们通过图10,11的配置把它配置成50hz以便驱动电机。

项目保存配置
图(14)配置名字,路径,开发工具
在这里插入图片描述
图(14)
勾上这两
在这里插入图片描述
图(15)
配置完成后点击右上角的蓝色长条按钮(G开头的英文)即可生成项目
在这里插入图片描述
图·(16)
下载即可看见电机转动,延迟5秒是给电机时间校准。
电机校准函数

Void init(){
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);//启动定时器
	__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 1000);
	HAL_Delay(5000);	
}
点击速度设置函数
Void setSpeed(uint8_t val){
If(val>=0&&val<=2500)
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, val);
}

Arduino

接线方式依旧是正接正负接负,信号线接任意一个可以输出pwm波的端口即可,同样需要外接电源。
在这里插入图片描述
图(17)
在Arduino中编码
使用Servo 自带的库函数自动生成50hz的pwm波,1000校准5秒,loop里面则可以调节电机转速。
在这里插入图片描述
图(18)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值