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

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

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.lryc.cn/news/62058.html

相关文章:

  • 动态加载 JS 文件
  • 14、lldb调试指令
  • 浏览器缓存策略:强缓存和协商缓存
  • 2023年Chat GPT 应用前景分析
  • 并发计算公式
  • “华为杯”研究生数学建模竞赛2020年-【华为杯】E题:能见度估计与预测(附获奖论文及python代码实现)
  • Arduino学习笔记3
  • BPMN2.0 任务-用户任务
  • David Silver Reinforcement Learning -- Markov process
  • 项目结束倒数2
  • VBA智慧办公9——图例控件教程
  • Presto VS Spark
  • 为什么我们能判断声音的远近
  • 那些关于DIP器件不得不说的坑
  • 论文笔记:基于U-Net深度学习网络的地震数据断层检测
  • kafka单节点快速搭建
  • 【MySQL】(6)常用函数
  • Linux学习 Day1
  • Hibernate中的一对多和多对多关系
  • Linux系统之部署Samba服务
  • 回顾产业互联网的发展历程,技术的支撑是必不可少的
  • 关于gas费优化问题
  • Linux——中断和时间管理(中)
  • 嵌入式软件中常见的 8 种数据结构详解
  • vue 修改当前路由参数并刷新界面
  • 视频处理之视频抽帧的python脚本
  • 【youcans 的 OpenCV 学习课】22. Haar 级联分类器
  • 如何避免知识盲区 《人生处处是修行》 读书笔记
  • vue返回上一页自动刷新方式
  • 查询SERVER正在执行的SQL语句