STM32平衡小车 TB6612电机驱动学习

news2024/12/23 0:30:22

TB6612FNG简介

单片机引脚的电流一般只有几十个毫安,无法驱动电机,因此一般是通过单片机控制电机驱动芯片进而控制电机。TB6612是比较常用的电机驱动芯片之一。

        TB6612FNG可以同时控制两个电机,工作电流1.2A,最大电流3.2A。

  •  VM电机电源正极,是驱动电压输入端(<10V),
  • VCC为逻辑电平输入端(2.7V~5.5V)。
  • PWMA/PWMB为两个电机提供pwm脉冲,也就是控制电机的速度。
  • AIN1/AIN2,BIN1/BIN2.控制电机的正反转和停止

只需改变AIN1、AIN2、BIN1、BIN2的高低电平就可实现电机的正反转。

  •  STBY可以理解为一个使能端口,高电平有效。
  • AO1和AO2是电机A的输入电压,也就是这两个口接电机的正负极
  • BO1和BO2是电机A的输入电压,也就是这两个口接电机的正负极

工程创建:

这里我只驱动一个电机,先设置一下正反转的控制引脚。

 然后用定时器1来输出两路的PWM(其实只需要用到一路,不过下意识设置了两个,懒得改了)

PWMA配置

 PWMB配置

 配置下中断

工程代码

在主函数初始化

//打开定时器
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4);
//设置AIN1 和AIN2 让电机A反转
HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_SET);

在循环里面,不断改变占空去看电机效果

		HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET);
		HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_SET);
		for(int i=0;i<7100;i++)
		{
			__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_4,i);
			HAL_Delay(1);
		}
		for(int j=7100;j>0;j--)
		{
			__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_4,j);
			HAL_Delay(1);
		}

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

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

相关文章

C++ [STL-简介]

本文已收录至《C语言和高级数据结构》专栏&#xff01; 作者&#xff1a;ARMCSKGT ​​​​​​​​ 文章目录 前言正文简介关于STL各种版本 STL组件容器迭代器配接器(适配器)算法仿函数空间配置器 STL的重要性学习STL的意义如何学习STL STL的缺陷 最后 前言 STL(standard tem…

Django+Vue的一个用户数据分析展示

文章目录 Git地址、项目所需文件总体效果展示一、项目环境所需二、Django代码解析2.1、执行文件2.2、注册app01 Git地址、项目所需文件 SQL数据文件和用户需求文件 提取码 1111 Git克隆地址 zip下载 其中第一个连接是数据文件&#xff0c;后两个连接选一个即可 总体效果展示 …

从idea向GitLab上传代码图文详解

这里写目录标题 一 新建一个idea工程二 点击左下角Version Control三 上传到GitLab四 给IDEA发链接五 回gitlab上校验六 去gitlab上把代码拖回来 在安装完gitlab插件&#xff0c;辛苦的配置完gitlab环境后&#xff0c;向gitlab中提交代码变成了首要任务 一 新建一个idea工程 二…

非常量引用只能绑定到左值

问题分析 代码情况&#xff1a; // ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <vector> using namespace std; vector<int> fun1() {vector<int> ver1;for (int i…

HCIP之路---vlan实验

1、pc2/4/5/6同一网段&#xff0c;pc1/3与2/4/5/6不在同一网段 设置1/3 --- 192.168.1.0/24 2/4/5/6 --- 192.168.2.0/24 sw1上配置 [SW1-GigabitEthernet0/0/3]dis this # interface GigabitEthernet0/0/3 port link-type access port default vlan 2 # return [SW1-Giga…

C++类的模拟实现

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解了简单模拟实现string类 C类的模拟实现 文章目录 C类的…

Progress ThemeBuilder crack

Progress ThemeBuilder crack 自定义输入将覆盖自定义日期输入和下拉列表。 Fluent主题中的图表不应用系列颜色。 撤消重做操作会导致重复以前编辑过的变量。 拆分器折叠的拆分条模板错误。 ThemeBuilder是一个多功能工具&#xff0c;可以帮助您创建视觉样式&#xff0c;并将其…

数据分析入门之:如何快速安装使用Jupyter Notebook?

人生苦短&#xff0c;我用python 今天来给大家介绍一下关于Jupyter Notebook的用法 关于它的组成部分就先不在这里详细解说啦~ 毕竟我可太懂你们啦~ 文章太长就会吃灰的~ python 安装包资料:点击此处跳转文末名片获取 一、什么是Jupyter Notebook&#xff1f; 1. 简介 Jupy…

Atom 1.13版本带来的哪些改变?

Atom是GitHub基于Electron的开源文本编辑器&#xff0c;它的1.13版本 为用户和开发人员增加了许多新的特性和改进&#xff0c;包括一个基准工具&#xff0c;一个“重新打开项目”菜单选项和API&#xff0c;以及一个自定义按钮解析器&#xff0c;它可以把Chrome键盘事件映射为At…

PTA L1-092 进化论 (10 分)

在“一年一度喜剧大赛”上有一部作品《进化论》&#xff0c;讲的是动物园两只猩猩进化的故事。猩猩吕严说自己已经进化了 9 年了&#xff0c;因为“三年又三年”。猩猩土豆指出“三年又三年是六年呐”…… 本题给定两个数字&#xff0c;以及用这两个数字计算的结果&#xff0c;…

【c语言】函数的基本概念 | 函数堆栈调用原理

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

【通知】CSDN学院:<华为流程体系课程> 正式上线啦!

目录 前言 适用人群 你将收获 课程介绍 前言 经过两个月的准备和短视频测试&#xff0c;这门介绍华为流程体系的课程就正式上线了。 虽然由于公开的原因&#xff0c;华为的发展受到了一定程度的影响&#xff0c;但是丝毫不妨碍企业、以及一些个人对学习华为的热情。 原因…

Java内存模型详解

Java内存模型 Java内存模型(Java Memory Model)是Java虚拟机规范定义的&#xff0c;用于屏蔽因不同程序/硬件/操作系统上内存访问的差异&#xff0c;确保程序运行与设计一致&#xff0c;Java内存模型定义了Java虚拟机在计算机内存中的工作方式&#xff0c;确定了在共享内存系统…

通过SSH实现Linux与Windows之间的文件互传

目录 一 序言 二 准备工作 三 Windows端操作命令&#xff0c;实现文件互传 四 Linux端操作命令&#xff0c;实现文件互传 五 总结 一 序言 Linux和Linux以及Windows和Windows之间的文件共享互传&#xff0c;大家应该接触的都比较多&#xff0c;无非就是两种方式&#xff…

【C++类和对象】类和对象(上) {初识面向对象,类的引入,类的定义,类的访问限定符,封装,类的作用域,类的实例化,类对象模型,this指针}

一、面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。…

1.2和1.3、GCC

1.2和1.3、GCC 1.2和1.3、GCC1.2.1、什么是GCC1.2.2、编程语言的发展1.2.3、GCC工作流程1.2.4、gcc和g的区别1.2.5、GCC常用参数选项实际操作①接下来进行预处理操作&#xff08;test.c为需要预处理的源代码&#xff0c;test.i为要生成的目标代码&#xff09;②汇编操作&#x…

iOS--SDWebImage源码

文章目录 前言它提供了UIImageView的一个分类&#xff0c;支持从网路上下载且缓存图片&#xff0c;并设置图片到对应的UIImageView控件或者UIButton控件。 SDWebImage简介官方图解主序列图&#xff08;Main Sequence Disagram&#xff09;顶层API图&#xff08;Top Level API D…

XLA IR:HLO、LHLO、MHLO和LMHLO

XLA IR&#xff1a;HLO、LHLO、MHLO和LMHLO HLOLHLOMHLOLMHLOXLA IR 总结HLO->LMHLO xla基本编译流程如下&#xff1a; HLO Optimization: 硬件无关优化和硬件相关优化LHLO Codegen: 算子向量化和llvmir的生成HLO&LHLO是XLA-HLO&#xff1b;MHLO&LMHLO是MLIR-HLO&…

队列的基本操作(C语言链表实现)初始化,入队,出队,销毁,读取数据

文章目录 前言一、队列基本变量的了解二、队列的基本操作2.1队列的初始化&#xff08;QueueInit&#xff09;2.2入队&#xff08;QueuePush&#xff09;2.3判断是否为空队&#xff08;QueueEmpty&#xff09;2.4出队&#xff08;QueuePop&#xff09;2.5队列的队头数据&#xf…

分享BigDecimal金额计算的4种方式

基本介绍 金额计算这块通常都是基于2位小数的四舍五入&#xff0c;如果是自己的系统内部功能金额位数一般都是固定的&#xff0c;在正常的加减乘除运算逻辑都是保留同样位数的&#xff0c;但是乘法和除法相对比较特殊&#xff0c;在计算小数的部分可能会计算出更多位数的小数点…