一、前期准备
单片机:STM32F407VET6
开发环境:MDK5.14
库函数:STM32Cube_FW_F4_V1.16.0
直流电机模块:淘宝有售

二、实验效果
1)PWM波形20KHz,试验得到PWM在25%的时候,电机转动;
2)调整电位器,改变PWM波,串口输出。

三、驱动原理
直流有刷电机的驱动十分简单,通电即可转动。运用H桥可以直接驱动电机正反转。

当Q1、Q4导通,电机正转;Q2、Q3导通电机反转。驱动电路使用淘宝上的H桥模块

逻辑输入的IN1、IN2为OUT1与OUT2的控制脚。IN1、IN2电平相反时候,电机实现正反转;IN1、IN2电平相同时,电机停转。

CubeMX TIM2配置如下:

CubeMX ADC1配置如下

需要完整工程的请加QQ:1002521871,验证:呵呵!

四、驱动代码
motor.h

#ifndef __MOTOR_H__
#define __MOTOR_H__
#include "stm32f4xx_hal.h"
#include "user_gpio.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"#define        KEY1    PEin(10)
#define     KEY2    PEin(11)
#define     KEY3    PEin(12)extern uint8_t PWMCapture1,PWMCapture2;
extern uint16_t AD;extern void Moter_StartPWM(void);
extern void Motor_Test(void);
#endif

motor.c

#include "motor.h"extern TIM_HandleTypeDef htim2;
extern ADC_HandleTypeDef hadc1;
uint8_t PWMCapture1  = 30, PWMCapture2 = 30;
uint16_t AD = 0;void Moter_StartPWM(void)
{HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 100);__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, 100);}void Motor_Test(void)
{PWMCapture2 = 0;__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, PWMCapture2);HAL_ADC_Start(&hadc1);                   //ADC Start ConversionHAL_ADC_PollForConversion(&hadc1, 10);    //Wait Conversion OKAD = HAL_ADC_GetValue(&hadc1);     //Achive Conversion ValuePWMCapture1 = ((float)AD / 4096.0f) * 100;__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, PWMCapture1);printf("ADC Value = %04d, PWMCapture1 = %02d%%!\r\n", AD, PWMCapture1);HAL_Delay(100);
}

由于作者能力有限,有不妥之处欢迎指正,邮箱alex_hua@foxmail.com

直流马达驱动_ADC_PWM加减速(STM32F4 CubeMX)相关推荐

  1. 直流马达驱动_PWM加减速(STM32F4 CubeMX)

    一.前期准备 单片机:STM32F407VET6 开发环境:MDK5.14 库函数:STM32Cube_FW_F4_V1.16.0 直流电机模块:淘宝有售 二.实验效果 1)按键KEY1按下,正转-& ...

  2. 步进电机驱动基础2——细分驱动、加减速控制

    之前小白白写过一篇步进电机驱动基础,讲了最基本的步进电机驱动方法:步进电机驱动基础_xiaobaibai_2021的博客-CSDN博客_步进电机驱动 这里,接着以前的文章,再讲一些步进电机驱动相关的知 ...

  3. TC118S/TC118H单通道直流马达驱动IC

    TC118S/TC118H特点: 单通道内置功率MOS 全桥 驱动驱动前进.后退.停止及刹车功能 内置迟滞热效应过热保护功能 低导通电阻(1.6Ω) 最大连续输出电流可达1.8A,峰值 2.5A 无需 ...

  4. K_A08_009 基于 STM32等单片机驱动TB6612模块按键控制直流电机正反转加减速启停

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 TB6612模块驱动说明 对应程序: ENA ENB输出PWM 四.部分代码说明 接线说明 1.STC89C52RC+TB661 ...

  5. K_A08_005 基于 STM32等单片机驱动XY-160D模块按键控制直流电机正反转加减速启停

    目录 一.资源说明 二.基本参数 四.部分代码说明 接线说明 1.STC89C52RC+XY-160D模块 2.STM32F103C8T6+XY-160D模块 五.基础知识学习与相关资料下载 六.视频 ...

  6. 国产直流马达驱动芯片SS6216的功能参数以及应用

    直流有刷电机驱动芯片SS6216是为消费类产品,玩具和其他低压或者电池供电的运动控制类应用提供了一个集成的有刷电机驱动器解决方案.是为低电压下工作的系统而设计的直流电机驱动集成电路,单通道低导通电阻. ...

  7. L9110 L9110S SOP8 马达驱动 IC 芯片 H桥全桥 贴片

    一.L9110S 概述 L9110S是一块直流电机驱动电路,该产品为电池供电的玩具.低压或电池供电的控制应用提供了一种集成直流马达驱动的解决方案.电路内部集成了采用MOS管设计的H桥驱动电路,主要应用 ...

  8. RZ7889 是一款DC 双向马达驱动电路IC

    产品说明 电路简述 RZ7889 是一款DC 双向马达驱动电路,它适用于玩具等类的电机驱动.自动阀门电机驱动.电磁门锁驱动等.它有两个逻辑输入端子用来控制电机前进. 后退及制动.该电路具有良好的抗干扰 ...

  9. K_A08_001 基于 STM32等单片机驱动L298N模块按键控制直流电机启停正反转加减速

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 L298N模块驱动时序 对应程序: ENA ENB输出PWM 四.部分代码说明 接线说明 1.STC89C52RC+L298N模 ...

最新文章

  1. 基于OpenCV的实用图像处理操作
  2. JavaScript编程知识
  3. 说说JSON和JSONP,也许你会豁然开朗,含jQuery使用jsonp用例
  4. C#操作数据库,DataSet,DataGridView,更新数据库 [一] - ADO.NET入门之中
  5. 数据结构——最小生成树之克鲁斯卡尔算法(Kruskal)
  6. C/C++ 中嵌入汇编总结
  7. HCIE-Security Day10:6个实验理解VRRP与可靠性
  8. hibernate4中使用Session doWork()方法进行jdbc操作(代码)
  9. 谈谈对象和XML文件的转换
  10. 谷歌浏览器无法同步问题解决方案
  11. 高通QCOM 8610平台电量计算
  12. 解决:关于 “VMware Workstation 不可恢复错误- (vcpu-0)”
  13. 五线四相步进电机C语言程序,stm32四相五线步进电机驱动程序
  14. .net 微信会员卡接口
  15. 使用TortoiseGit 进行cherry pick 操作
  16. DCPP系列衍生物Cz-DCPP,Cz-Ph-DCPP,DPA-DCPP,DPA-Ph-DCPP,DMAC-DCPP,DMAC-Ph-DCPP
  17. 使用Qt绘制二维码 QRcode
  18. 往word表中写数据
  19. Oracle Start With的用法
  20. Android之4.0新特性

热门文章

  1. 从ReentrantLock到AQS
  2. HTTP Status 404 的解决思路
  3. GPU硬件结构和编程模型(源于nvidia的CUDA文档)
  4. 使用ASP.NET Core和Hangfire实现HTTP异步化方案
  5. jstack命令 详解
  6. namedtuple的使用
  7. [Arcpy] 0 Arcpy初识 | Arcpy开发思路
  8. 【数据结构】二叉树(Binary Tree)
  9. json对象转换为json字符串
  10. @mpx/cli 脚手架源码解析