智能小车 - DRV8833电机驱动模块
创始人
2024-03-31 17:48:07
0

一.硬件

在这里插入图片描述在这里插入图片描述
基本兼容TB662模块管脚,可驱动1.5A以下的直流电机和4线步进电机。

在这里插入图片描述)

芯片中共有两个全H桥。因此最多可以同时驱动两个直流电机或一个步进电机。

管脚说明:
ANI1:AO1的逻辑输入控制端口,电平0-5V。
AIN2:AO2的逻辑输入控制端口,电平0-5V。
BNI1:BO1的逻辑输入控制端口,电平0-5V。
BIN2:BO2的逻辑输入控制端口,电平0-5V。
AO1、AO2为1路H桥输出端口,接一个直流电机的两个脚。
BO1、BO2为2路H桥输出端口,接另一个外直接电机的两个脚。
GND:接地。
VM:芯片和电机供电脚,电压范围2.7 V – 10.8 V。
STBY:接地或悬空芯片不工作,无输出,接5V工作;电平0-5V。
NC:空脚

二.全H桥电路基础知识

在这里插入图片描述

从上图可看出,此电机驱动电路由4个NMOS管构成,形如H型,故名全H桥电路。通过控制4个MOS管的导通与截止达到对中间电机的不同控制效果。NMOS管的栅极为高电平时导通,低电平时截止。
在这里插入图片描述
当Q1、Q4的栅极为高电平,Q2、Q3为低电平时,Q1,Q4导通,如图所示,电机正向旋转。

二.接线

第一种DRV8833驱动模块
在这里插入图片描述

DRV8833的的用法
DRV8833是双驱动,也就是可以驱动两个电机 下面分别是控制两个电机的IO口
STBY口接单片机的IOD清零电机全部停止,
置1通过AIN1 AIN2, BIN1,BIN2来控制正反转
VM 接12V以内电源
GND接地

第二种DRV8833驱动模块
在这里插入图片描述

ULT低电平为睡眠模式(需要断开模块后面的J2短接焊点)
OUT1,0UT2为1路H桥,相对应控制为IN1,IN2.
OUT3,0UT4为第2路H桥,相对应控制为IN3,IN4.
EEP为保护输出,默认不用。
VCC为电压输入3至10V.
GND接地。
在这里插入图片描述
在这里插入图片描述
STBY 控制小车的启动还是停止
AIN1和AIN2控制电机的正转或反转
在这里插入图片描述

二.代码

/******************************************************************************* 
Copyright: 2022
File name: driver_dc_brush_motor.c
Description: 直流电机驱动文件
Author: 如图所示z
Version: v1.0
Date: 20220707
History: 20220707:v1.0:初版 
*******************************************************************************/
#include "driver_dc_brush_motor.h"unsigned int n = 0;/*******************************************************************************
Function: DC_Brush_Motor_Configuration 
Description: 直流电机PWM配置
Input:  无
Output: 无
Return: 无
*******************************************************************************/
void DC_Brush_Motor_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;/*开启端口时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);/*开启定时器时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM4, ENABLE);//PA1:PWMGPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = 19999;  //小车调速范围TIM_TimeBaseStructure.TIM_Prescaler = 71;  //71+1= 72分频//TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OC2Init(TIM2, & TIM_OCInitStructure);//PB6GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = 19999;  TIM_TimeBaseStructure.TIM_Prescaler = 71;  //71+1= 72分频//TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OC1Init(TIM4, & TIM_OCInitStructure);	TIM_SetCompare2(TIM2, 5000); //占空比TIM_SetCompare1(TIM4, 5000); //占空比TIM_Cmd(TIM2, ENABLE);TIM_Cmd(TIM4, ENABLE);//PA2:AIN1  PA3:AIN2  PA11:STBYGPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);// 另一侧的轮子PB7:BIN1	PB8:BIN2GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);
}

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...