STM32Cubemx TB6612直流电机驱动

一、TB6612FNG

TB6612是一个支持双电机的驱动模块,支持PWM调速。PWMA、AIN1、AIN2 为一组控制引脚,PWMA 为 PWM 速度控制引脚,AIN1、AIN2 为方向控制引脚;PWMB、BIN1、BIN2 为一组控制引脚,PWMB 为 PWM 速度控制引脚,BIN1、BIN2 为方向控制引脚。

PA4 --> BIN1
PA5 --> BIN2
PA6 --> AIN2
PA7 --> AIN1
TIM2_CH2(PA1) --> PWMA
TIM2_CH3(PA2) --> PWMB

驱动电机的 PWM 频率一般 10kHz(0.0001ms)左右,72MHZ/72/100=72000000/7200=10000HZ=10KHZ

二、CUbeMX配置

SYS

RCC

 时钟树

GPIO配置

 定时器配置

生成工程

 生成代码

三、Keil代码

添加PWM电机驱动代码

/* USER CODE BEGIN 0 */
void motorControlL(uint8_t direction, uint16_t speed) {//左电机驱动
  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
    /* 根据方向设置 IN1 和 IN2 引脚 */
    HAL_GPIO_WritePin(GPIOA, BIN1_Pin, (direction & 0x01));
    HAL_GPIO_WritePin(GPIOA, BIN2_Pin, ((direction & 0x01) ^ 0x01));

    /* 设置 PWM 引脚以控制速度 */
    __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, speed);
}
void motorControlR(uint8_t direction, uint16_t speed) {//右电机驱动
		 HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
    /* 根据方向设置 AIN1 和 IN2 引脚 */
    HAL_GPIO_WritePin(GPIOA, AIN2_Pin, (direction & 0x01));
    HAL_GPIO_WritePin(GPIOA, AIN1_Pin, ((direction & 0x01) ^ 0x01));

    /* 设置 PWM 引脚以控制速度 */
    __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, speed);
}
/* USER CODE END 0 */

 while循环中红外光电逻辑判断

/* USER CODE BEGIN WHILE */
  while (1)
  {		
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)== 1 && HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_9)== 1 ){ 
			motorControlL(1, 300); //第一个参数 0反向转  1正向转  第二个参数控制小车速度
			motorControlR(1, 300);
		}
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)==0 && HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_9)==0){
			motorControlL(0, 0); 
			motorControlR(0, 0);
		}
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)==0 && HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_9)==1){
			motorControlL(1, 180); 
			motorControlR(1, 300);
		}
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)==1 && HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_9)==0){
			motorControlL(1, 300); 
			motorControlR(1, 180);
		}

    /* USER CODE END WHILE */

链接: https://pan.baidu.com/s/1xOMmcG4KKbLN1cJ1ZK-zaQ?pwd=3h3k 提取码: 3h3k 

相关推荐

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

    2024-02-19 18:00:04       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-19 18:00:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-19 18:00:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-19 18:00:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-19 18:00:04       20 阅读

热门阅读

  1. sql语句创建数据库

    2024-02-19 18:00:04       29 阅读
  2. 如何优雅地与ChatGPT对话?

    2024-02-19 18:00:04       39 阅读
  3. 数据结构三要素

    2024-02-19 18:00:04       19 阅读
  4. C++面试宝典第29题:sizeof使用大全

    2024-02-19 18:00:04       26 阅读
  5. 10-异常处理

    2024-02-19 18:00:04       28 阅读
  6. 普中51单片机学习(八)

    2024-02-19 18:00:04       33 阅读
  7. 二级 C 语言笔试-11

    2024-02-19 18:00:04       20 阅读
  8. 【已解决】c++ qt bmp转jpg函数

    2024-02-19 18:00:04       29 阅读
  9. Redis- SCAN命令

    2024-02-19 18:00:04       25 阅读