stm32学习探究:利用TB6612驱动直流电机

在这篇文章中,我们将探讨如何使用STM32微控制器和TB6612FNG直流电机驱动模块来驱动直流电机。TB6612FNG是一款基于MOSFET的H桥集成电路,能够独立双向控制两个直流电机,非常适合用于小型机器人或双轮车等项目。

一、TB6612FNG 驱动模块介绍

TB6612FNG由东芝半导体公司生产,它包含两个H桥驱动器,可以控制两个直流电机的正反转以及速度。该模块具有较高的效率,并且集成了电流检测和保护功能。

二、硬件连接

首先,我们需要了解TB6612FNG的主要引脚功能:

  • VM: 电机驱动电压输入端(4.5V~15V)
  • VCC: 逻辑电平输入端(2.7V~5.5V)
  • GND: 接地
  • AIN1/AIN2: A电机输入端,控制电机正反转
  • BIN1/BIN2: B电机输入端,控制电机正反转
  • PWMA/PWMB: 电机控制信号输入端,用于调速
  • STBY: 正常工作/待机状态控制端

接下来,我们将STM32开发板与TB6612FNG连接:

  1. VM 接12V电源。
  2. VCC 接STM32的3.3V输出。
  3. GND 接STM32的地。
  4. AIN1AIN2 接STM32的两个GPIO引脚。
  5. PWMA 接STM32的一个定时器通道,用于PWM调速。
  6. STBY 接高电平,使模块处于工作状态。

三、软件编程

在STM32上编程,我们需要配置GPIO和定时器以生成PWM信号。以下是使用HAL库的一个简单示例:

#include "stm32f1xx_hal.h"// 定义AIN1, AIN2, 和 PWMA 引脚
#define AIN1_GPIO_PIN       GPIO_PIN_14
#define AIN1_GPIO_PORT     GPIOB
#define AIN2_GPIO_PIN       GPIO_PIN_15
#define AIN2_GPIO_PORT     GPIOB
#define PWMA_GPIO_PIN       GPIO_PIN_9
#define PWMA_GPIO_PORT     GPIOA// 初始化GPIO
void GPIO_Init(void) {// AIN1, AIN2 作为输出GPIO_InitTypeDef GPIO_InitStruct = {0};GPIO_InitStruct.Pin = AIN1_GPIO_PIN | AIN2_GPIO_PIN;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(AIN1_GPIO_PORT, &GPIO_InitStruct);// PWMA 作为定时器PWMGPIO_InitStruct.Pin = PWMA_GPIO_PIN;HAL_GPIO_Init(PWMA_GPIO_PORT, &GPIO_InitStruct);
}// 初始化定时器用于PWM
void TIM_PWM_Init(void) {TIM_HandleTypeDef htim1;// 定时器配置代码...htim1.Instance = TIM1;htim1.Init.Prescaler = 0;htim1.Init.CounterMode = TIM_COUNTERMODE_UP;htim1.Init.Period = 999; // PWM频率htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;HAL_TIM_PWM_Init(&htim1);// 启动PWMHAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
}// 设置电机速度
void Motor_SetSpeed(uint8_t direction, uint16_t speed) {if (direction == FORWARD) {// AIN1 = 0, AIN2 = 1 正转HAL_GPIO_WritePin(AIN1_GPIO_PORT, AIN1_GPIO_PIN, GPIO_PIN_RESET);HAL_GPIO_WritePin(AIN2_GPIO_PORT, AIN2_GPIO_PIN, GPIO_PIN_SET);} else {// AIN1 = 1, AIN2 = 0 反转HAL_GPIO_WritePin(AIN1_GPIO_PORT, AIN1_GPIO_PIN, GPIO_PIN_SET);HAL_GPIO_WritePin(AIN2_GPIO_PORT, AIN2_GPIO_PIN, GPIO_PIN_RESET);}// 设置PWM占空比__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, speed);
}int main(void) {HAL_Init();SystemClock_Config();MX_TIM1_Init();GPIO_Init();while (1) {// 正转,速度为中等Motor_SetSpeed(FORWARD, 500);HAL_Delay(3000);// 反转,速度为低Motor_SetSpeed(REVERSE, 300);HAL_Delay(3000);}
}

四、测试与验证

在连接好硬件并上传程序后,我们可以测试电机的正反转和调速功能。通过调整Motor_SetSpeed函数中的speed参数,我们可以改变电机的转速。

五、总结

使用STM32和TB6612FNG驱动直流电机是一个相对简单的过程,但需要对硬件连接和软件编程有一定的了解。通过本文的介绍,读者应该能够掌握如何使用STM32产生PWM信号来控制电机的速度和方向。

请注意,以上代码仅为示例,实际应用中需要根据具体的STM32型号和TB6612FNG模块的连接方式进行适当的调整。

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

❤欢迎关注我的知乎:对error视而不见

代码获取、问题探讨及文章转载可私信。

☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。

🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇

点击领取更多详细资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【设计模式学习笔记】设计模式的分类

目录 分类创建型模式创建型模式之间的对比 结构型模式结构型模式之间的对比 行为型模式行为型模式之间的对比 总结小提醒 参考 分类 常规的分类方式是根据其作用来划分,总共有三类:创建型模式、结构型模式和行为型模式。 创建型模式 该模式提供了一种…

攻击简写及全名

一、简称及全名 1、Dos攻击--》拒绝服务攻击。 2、DDos攻击--》分布式拒绝服务攻击。 3、DHCP--》Dynamic Host Configuration Protocol--》动态主机配置协议(静态IP、自动获取ip地址)。 4、NetBIOS--》NetBIOS Services Protocols--》网络基本输入/…

Isaac Sim 6 仅使用isaacsim中自带的工具进行语义分割、实例分割(学习笔记5.09)

一.概要 建立场景,给场景内的物体赋予语义,使用Replicator进行分割操作,从而获得带标签信息的mask掩码图,可作为数据集、验证集等训练使用。 二.具体操作步骤 场景部分 1.搭建一个基础场景 这里建议在搭建的时候就按类别分好类…

变配电工程 变配电室智能监控系统 门禁 视频 环境 机器人

一、方案背景 要真正了解无人值守配电房的运行模式,我们必须对“无人值守”这一概念有准确的理解。它并不意味着完全没有工作人员管理,而是通过技术设备和人机协作来确保配电房的正常运行。 利用变配电室智能监控系统,可以实时获得配电室各…

44.乐理基础-音符的组合方式-附点

内容参考于: 三分钟音乐社 首先如下图,是之前的音符,但是它不全,比如想要一个三拍的音符改怎样表示? 在简谱中三拍,在以四分音符为一拍的情况下,在后面加两根横线就可以了,称为附点…

基于Unity为Vision Pro 构建游戏的4个关键

为Vision Pro开发游戏时需要考虑的四个关键概念:输入的自然性、物理尺寸的真实匹配、交互空间的充足性以及Unity组件的有效利用。 AVP交互小游戏(Capsule Critters)作者分享了使用Unity构建的几个核心关键: Bounded - 游戏定义:Bounded(有限)是Unity的术语,指的是游戏作…

利用“AnaTraf“网络流量分析仪轻松诊断和优化网络

网络性能监测和诊断(NPMD)是网络管理和优化的重要环节,准确快速地定位和排除网络故障对于保障业务正常运转至关重要。作为一款专业的网络流量分析设备,AnaTraf网络流量分析仪凭借其强大的流量分析和故障诊断功能,为网络管理者提供了一个高效的网络优化解决方案。 全面掌握网络…

【Ubuntu18.04+melodic】抓取环境设置

UR5_gripper_camera_gazebo(无moveit) 视频讲解 B站-我要一米八了-抓取不止!Ubuntu 18.04下UR5机械臂搭建Gazebo环境|开源分享 运行步骤 1.创建工作空间 catkin_make2.激活环境变量 source devel/setup.bash3.1 rviz下查看模…

如何判断nat网络?如何内网穿透

大家都清楚,如果你想开车,就必须要给车上一个牌照,随着车辆越来越多,为了缓解拥堵,就需要摇号,随着摇号的人数越来越多,车牌对于想开车的人来说已经成为奢望。在如今的IPv4时代,我们…

TODESK怎么查看有人在远程访问

odesk怎么查看有人在远程访问 Todesk作为一款远程桌面控制软件,为用户提供了便捷的远程访问与控制功能。但在享受这种便利的同时,许多用户也关心如何确保自己设备的安全,特别是如何知道是否有人在未经授权的情况下远程访问自己的电脑。本文将…

OpenAI 希望您对其人工智能模型的行为发表意见

OpenAI 公布了一套高级“生活”指南,称为模型规范,该指南将定期更新,并确定其 AI 模型(例如 ChatGPT 和 DALL-E)在某些情况下的行为方式。 他们发布了初稿,并询问使用其模型的公众和利益相关者&#xff08…

大模型LLM之SFT微调总结

一. SFT微调是什么 在大模型的加持下现有的语义理解系统的效果有一个质的飞跃;相对于之前的有监督的Pre-Train模型;大模型在某些特定的任务中碾压式的超过传统nlp效果;由于常见的大模型参数量巨大;在实际工作中很难直接对大模型训…

【沐风老师】3DMAX百叶窗修改器LouverGenerator安装使用方法

3DMAX百叶窗修改器LouverGenerator安装使用方法 3DMAX百叶窗修改器,在单面几何对象(或二维图形)范围内,创建百叶窗结构模型的修改器插件。修改器参数可设置动画效果。 【版本要求】 3dMax 2018及更高版本 【安装方法】 1.点击3d…

调用 gradio 创建聊天网页报错(使用远程服务器)

文章目录 写在前面1、使用默认IP地址(失败)2、使用本地IP地址(失败)3、使用远程服务器IP地址(成功) 写在前面 我复现了github上的 llama-chinese 的工作 使用的是 llama2,环境配置是在远程服务…

用手势掌控PPT,玩转演示新姿势

推荐运行环境 使用anaconda创建环境,以免污染原来的python开发环境conda install python3.9pip install -q mediapipe0.10.0pip install pyautoguiPython: version 3.8 - 3.11PIP: version 20.3 请注意以下的坑 以下为我测试过程中的大坑,请及时避开&am…

python3.12.0 在Linux 制作镜像包 部署到docker 全过程

项目结构: 比如,在pycharm里需要运行 themain.py 1、上传Linux的目录结构: Dockerfile 文件需要制作: 这里是关键: #基于的基础镜像 FROM python:3.12.0 #代码添加到code文件夹 ADD ./EF_NFCS /code #设置code文…

uniapp:抖音PK进度条(nvue)

nvue中,仿抖音PK进度条效果, <template><view class="index" :style="{width:windowWidth+px,height:index_windowHeight+px,paddingTop:windowTop+px}"><view class="pk"><text class="pk_jindu_left_val fsz-24 …

【Leetcode每日一题】 分治 - 交易逆序对的总数(难度⭐⭐⭐)(74)

1. 题目解析 题目链接&#xff1a;LCR 170. 交易逆序对的总数 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 归并排序的基本思路 归并排序将数组从中间分成两部分&#xff0c;在排序的过程中&#xff0c;逆序对的来…

OV SSL比DV SSL更好吗

直接说结论&#xff0c;OV证书相较于DV证书而言&#xff0c;性能更加强大&#xff0c;加密等级以及加密方式也更优&#xff0c;从安全的角度上来说&#xff0c;OV证书会比DV证书拥有更多的优势。 不同于DV SSL证书申请只需要验证域名所有权&#xff0c;申请OV SSL证书除了会验…

液压阀比例电磁铁控制放大器

液压阀比例电磁铁控制放大器是一种将电信号精确转换为液压动力的技术&#xff0c;用于实现对液压系统的精细控制。与传统的开关型电磁铁不同&#xff0c;比例电磁铁可以实现连续控制&#xff0c;允许进行微调以适应不同的控制需求。比例液压阀包括比例压力阀、比例流量阀等&…