0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F0单片机 PWM + ADC 控制有刷电机介绍

电子设计 来源:电子设计 作者:电子设计 2020-12-24 13:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.有刷电机驱动电路

有刷电机是电机里面最简单,也是历史最悠久的一种,到现在仍然广泛应用于各个领域。他的控制很简单,在电机的两个电极加正向电压,则正向旋转,如果加反向电压,则旋转方向也反过来。电机的转速可以通过控制加在电极上的电压来调节。在电机控制电路中最常用的器件就是 MOS 管了。可以分为两个大的类型:P 沟道 MOS 和 N 沟道 MOS。MOS 管可以简单的理解为一个自来水阀门,Gate 是控制端,调节 Drain 和 Source 端之间流过的电流大小。

下面是两种 MOS 的典型用法。P 沟道的 MOS 一般 S 接电源正极,然后 Vgs 需要一个负电压来打开电流通道,而 N 沟道的 S 极一般接电源的负极,Vgs 需要一个正电压来打开电流通道。

资料来源于 IOR 公司数据手册我们先从一个最简单的驱动电路开始。单片机控制 MOS 管栅极为高时,电流从电源经过电机和 MOS 管到地。当栅极为低时,MOS 管断开,此时电机线圈内的电流继续通过续流二极管回流电机的正极。我们通过调节栅极控制端的PWM占空比,就可以控制电机的转速。

2.TIM模块

TIM 模块最重要的三个寄存器是:Counter Register (TIMx_CNT) 计数寄存器Auto-Reload Register (TIMx_ARR) 重置寄存器Capture/compare mode register 1 (TIMx_CCMRx) 输入捕获/输出比较寄存器

Counter 在时钟的驱动下计数Auto-Reload 设定计数的最大限制值Capture/Compare 锁存一个事件发生时的计数值到Capture/计数达到 Compare 值后触发一个事件在 PWM 模式下,Auto-Reload 寄存器设定PWM的周期,Compare 设定占空比。有一点需要注意的是一个 TIM 模块只有一个计数器和一个重置寄存器,而有多个输入捕获/输出比较寄存器。所以一个 TIM 模块的多个通道可以设置不同的占空比,但周期都是相同的。所以我们在选用 MCU 的时候,如果需要产生多种周期的 PWM,不仅要看它的定时器模块一共有多少通道数,还要看是否有足够的独立 TIM 模块。

3.代码

我们在下面这个工程的基础上修改来实现用一个可调电阻控制PWM占空比,来控制电机的转速。STM32Cube_FW_F0_V1.11.0ProjectsSTM32F030R8-NucleoExamplesTIMTIM_PWMOutputMDK-ARMProject.uvprojx这个工程默认使用TIM3模块输出4路PWM,我们可以只保留其中一路。然后把ADC采样的代码添加进来:

Step 1:

stm32f0xx_hal_conf.h

#define HAL_ADC_MODULE_ENABLED

Step 2:

main.h

添加ADC相关宏定义

Step 3:

stm32f0xx_hal_msp.c

添加ADC使用的引脚的初始化代码

Step 4:

把ADC的驱动文件添加进工程,在主程序初始化ADC。

Step 5:

读取 ADC 的值,写入 TIM 的 CCR 寄存器,观察 PWM 占空比的变化。根据电机的特性,还可能需要改变 PWM 的周期。

审核编辑:符乾江


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45576

    浏览量

    673516
  • 电机
    +关注

    关注

    145

    文章

    9703

    浏览量

    154791
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LC88F83B0A 16 位单片机:技术特性与应用分析

    LC88F83B0A 16 位单片机:技术特性与应用分析 在当今的电子设计领域,单片机作为核心控制元件,其性能和功能直接影响着产品的质量和竞争力。ON Semiconductor 公司
    的头像 发表于 04-10 16:05 293次阅读

    单片机遥控开关mos管介绍

    实现对灯光的控制。 但如果想用Arduino或者单片机控制灯泡的话,就需要使用MOS管来替换开关。我们把图稍微转换一下,我们可以看到MOS管是三个端口,即三个引脚,分别为Gate、
    发表于 01-04 07:59

    如何通过PWM脉冲控制电机

    /时间或者秒/圈等形式表示。控制电机转速的方法很多种,如改变电压大小、改变电机极数、改变负载等。 单片机通过
    发表于 11-28 06:58

    HOLTEK发布两款BLDC电机专用SoC单片机HT32F65433A与HT32F66446A

    Holtek全新推出两款基于Arm Cortex-M0+架构内建P/N预驱的无直流电机(BLDC)控制SoC单片机:HT32
    的头像 发表于 11-24 16:47 6898次阅读

    HOLTEK 推出高性价比 BLDC 单片机,诠释什么叫 “够用就好”

    ,HOLTEK 近日正式推出新一代高性价比专用单片机 HT32F65233,为家电和消费电子领域的电机控制应用带来全新解决方案。这款集高性能、低功耗与高集成度于一身的
    的头像 发表于 09-14 00:15 8370次阅读

    32位单片机常见型号哪些?

    32位单片机在工业控制、物联网、消费电子等领域应用广泛,常见型号涵盖国际与国内品牌,以下从厂商、型号、特点、应用场景四个维度展开介绍: 一、国际品牌主流型号 STM32系列(意法半导体
    的头像 发表于 09-08 09:54 2366次阅读

    HOLTEK推出新一代无直流电机控制专用单片机HT32F65233

    Holtek推出新一代无直流电机 (BLDC) 控制专用单片机 HT32F65233。采用 Arm Cortex-M
    的头像 发表于 09-01 17:28 6356次阅读

    单片机怎么控制转速

           在工业自动化、智能家居、机器人等领域,单片机控制电机转速是实现精准运动控制的核心技术。通过结合硬件电路设计与软件算法优化,单片机
    的头像 发表于 07-25 13:58 1198次阅读

    单片机怎么驱动电机

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动
    的头像 发表于 07-25 09:31 1286次阅读

    单片机怎么控制步进电机

    步进电机作为一种将电脉冲信号转化为角位移的执行机构,其运转依赖于脉冲信号的控制,而单片机作为控制核心,通过输出特定的脉冲信号和方向信号,实现对步进
    的头像 发表于 07-24 13:41 844次阅读

    MH32F103A系列单片机产品概述

    MH32F103A系列单片机软硬件兼容STM32F103A系列,可以快速替换,同时强化许多功能。性能和价格都非常的优势。
    的头像 发表于 07-21 15:45 1498次阅读
    MH32<b class='flag-5'>F</b>103A系列<b class='flag-5'>单片机</b>产品概述

    单片机直流电机调速原理

    ,满足多样化的应用需求。 一、单片机直流电机调速的基本原理 单片机直流电机调速的核心在于通过单片机输出的电信号
    的头像 发表于 07-17 13:42 904次阅读

    限流技术在无直流电机控制器中的应用

    刹车信号后自行车减速。单片机接收电动自行车转把给定的速度信号,并根据电流和转速反馈调整输出的PWM信号的占空比,控制电机转子的转速。电机
    发表于 07-15 15:19

    KF32A136系列单片机产品介绍

    F32A136 系列单片机是基于 KF32 内核架构开发的单片机
    的头像 发表于 06-27 11:42 2762次阅读
    KF32A136系列<b class='flag-5'>单片机</b>产品<b class='flag-5'>介绍</b>

    STM32F40xxx和STM32f41xx flash编程手册

    PM0081_STM32F40xxx and STM32F41xxx单片机编程手册
    发表于 06-06 17:02 8次下载