第五章-PWM控制电机
后续章节也放这里 持续更新中,视频发布在小B站 里面。这边也会更新。
B站视频合集:
STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随
小B站链接:https://www.bilibili.com/video/BV16x4y1M7EN
后面章节持续跟新CSDN也在更新
第三 四章-OLED使用 和串口openmv图像处理小车硬件介绍-(全网最详细)基于STM32智能小车-蓝牙遥控、避障、循迹、跟随、PID速度控制、视觉循迹、openmv与STM32通信、
通过7万字教程、80多节视频 从焊接组装->LED点灯->FreeRTOS带您从零完成 循迹、避障、跟随、遥控、PID速度控制、PID循迹、角度闭环控制、视觉循迹、FreeRTOS、电磁循迹等等还在更新中…
先不列举了,大家直接到专栏看和视频里面看把。
5.1-认识PWM
参数如何描述PWM
5.2-PWM配置
根据我们小车原理图我们知道是 PA11和PA8两个引脚要设置为PWM输出
这里为什么小车原理图要这样设计那?
- 根据A4950的使用要求
- 根据STM32F103C8T6的定时器复用功能重映射
3.
我们这先介绍原因:
原因1:介绍电机驱动后,我们会说明
原因2: 因为STM32中文参考手册介绍了,TIM1_CH1和TIM1_CH4可以复用功能重映射到PA8和PA11
我们使用软件配置 PA11和PA8这里配置
然后我们生成代码
PWM输出的配置就已经完成了,但是不能输出产生PWM波,因为Cube在生成代码时,有很多外设初始化完后默认是关闭的,需要我们手动开启。
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//开启定时器1 通道1 PWM输出
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4);//开启定时器1 通道4 PWM输出
我们软件仿真一下、查看PA11与PA8波形
那么频率就是 1/0.002 = 500HZ
这就是我们要设置的
我们可以使用这个宏来修改占空比
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 40);
5.3-PWM测试方法
上面我们生成了PWM下面我们测试一下
KEIL软件仿真方法:
软件模拟仿真不需要任何硬件-下面是官方介绍
选择软件仿真
DARMSTM.DLL
-pSTM32F103C8
设置时钟频率-板子外部晶振8Mhz 这里我们选择8Mhz
(新版的keil5里没有那个设置频率的功能)
开启仿真
打开逻辑分析仪器
添加要观察的引脚
点击全速运行
使用仿真器硬件仿真
选择仿真器仿真-检测已经识别出芯片ID
一样的可以开启仿真
但是硬件仿真好像目前还不能使用过逻辑分析仪、但是硬件仿真是在硬件上跑的,可以向硬件输入数据或者由硬件输出数据、比如按键仿真的时候就可以使用硬件仿真。
使用示波器工具测量波形(非重点)
这章我们先讲到这里,下章我们说如何做电机驱动。