当前位置: 首页 > news >正文

【STM32】电机驱动

一、电机分类

二、直流电机的分类

1.有刷电机

2.无刷电机

3.直流减速电机

三、H桥电路

正向旋转

驱动Q1和Q4

反向旋转

驱动Q2和Q3

四、MC3386电机驱动芯片

1.基本原理图

1)前进/后退:IN1和IN2的电平顺序决定电机的正反转

2)调节速度:高电平引脚的电压值决定电机转动的速度(通过MCU输入的PWM的占空比决定的

2.PWM应用

占空比:高电平占整个周期的比例

3.输出比较功能框图

ARR:决定周期

CCR:决定占空比(高电平的大小)

五、PWM实验

1.引脚分配

2.使用CubeMX

将PC3和PA3设置为Output,将PA2设置为定时器,输入为PWM波

3.代码编写

1.设置为正转

PC3输出高电平,PA3输出低电平

2.设置PWM波(设置速度)

1.开启定时器

2.设置PWM

通过设置CCR(捕获/比较寄存器),来控制小车的速度

我们将PWMA初始化为800

由实验现象可以知道:只有到转速为1300/8000,电机才开始转动

六、增量式编码器

1.工作原理

有多少个光栅盘就可以产生多少个PWM波

2.STM32-编码器实验

如何通过其输出来进行判断输出为高电平还是低电平???通过判断脉冲相位【A相和B相相差90度】

3.STM32编码器接口

当电机正向转动时,CNT向上计数

当电机反向转动时,CNT向下计数

4.实验

1.引脚分配

2.CubeMX设置

3.代码编写

启动编码器

TIM->CNT---->实际上编码器的计数值就是CNT的计数值

正转一圈:600-700左右(向上计数器)

反转一圈:64900-64800左右(向下计数器)

 视频链接:

【一节课秒懂】轻松掌握STM32电机驱动开发_哔哩哔哩_bilibili

七、动手编写

参考博客:

https://www.cnblogs.com/Wilson-hhx/p/10467945.html

https://blog.csdn.net/qq_57707070/article/details/124936006

【STM32】Hal库学习——PWM驱动电机_hal_tim_pwm_start-CSDN博客

1.使用STM32g070RBTx型号的单片机

2.设置CubeMX

我们想要使用PWM的输入占空比来设置电机的输出速度,则将使MOTOR_L_S&&MOTOR_R_S)设置为PWM(定时器部分)

其他引脚设置为输出引脚即可

由于需要双路输出,设定PB5,PB4分别通过TIM3-CH2,TIM3-CH1进行PWM输出

同时PB6,3,1,2输出来控制电机转动

3.启动定时器

4.编写中断回调函数

当达到计数值就会进入这个中断回调

http://www.lryc.cn/news/260565.html

相关文章:

  • csp 如此编码 C语言(回归唠嗑版)
  • 或许是全网最全的延迟队列
  • C语言结构体小项目之通讯录代码实现+代码分析
  • tp5 rewrite nginx重写
  • .NET 反射优化的经验分享
  • 使用opencv的Sobel算子实现图像边缘检测
  • 亿欧网首届“元创·灵镜”科技艺术节精彩纷呈,实在智能AI Agent智能体展现硬核科技图景
  • 宝塔面板快速搭建本地网站结合内网穿透实现远程访问【无需公网IP】
  • css的Grid布局
  • Python接口测试框架选择之pytest+yaml+Allure!
  • 03-详解Nacos注册中心的配置步骤和功能
  • 微服务学习:Nacos微服务架构中的服务注册、服务发现和动态配置Nacos下载
  • 逆向经历回顾总结
  • 企业IT安全:内部威胁检测和缓解
  • Linux 服务器较为强大的运维及管理脚本实现(支援:本机线上操作)
  • 【数据结构】插入排序,希尔排序,选择排序,堆排序,冒泡排序
  • MyBatis--07--启动过程分析、SqlSession安全问题、拦截器
  • Qt基础之四十二:QMap、QHash的实现原理和性能对比
  • 虚幻学习笔记12—C++类的实例化
  • 【《漫画算法》笔记】快速排序
  • C++如何通过调用ffmpeg接口对H265文件进行编码和解码
  • 8位LED流水灯设计
  • eclipse连接mysql数据库(下载eclipse,下载安装mysql,下载mysql驱动)
  • 【信息学奥赛】拼在起跑线上,想入道就别落下自己!
  • Python 进程池Pool Queue,运行不出来结果!
  • yolov8实战第二天——yolov8训练结果分析(保姆式解读)
  • ​urllib.request --- 用于打开 URL 的可扩展库​
  • 【Docker】进阶之路:(十二)Docker Composer
  • MES安灯管理:优化生产监控的重要工具
  • Unity中URP Shader 的 SRP Batcher