智能小车 - DRV8833电机驱动模块

这篇具有很好参考价值的文章主要介绍了智能小车 - DRV8833电机驱动模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.硬件

drv8833,智能小车,单片机,stm32,嵌入式硬件drv8833,智能小车,单片机,stm32,嵌入式硬件
基本兼容TB6612模块管脚,可驱动1.5A以下的直流电机和4线步进电机。

drv8833,智能小车,单片机,stm32,嵌入式硬件drv8833,智能小车,单片机,stm32,嵌入式硬件

芯片中共有两个全H桥。因此最多可以同时驱动两个直流电机或一个步进电机。(如果将4个电机中两个两个正负极相接,一个芯片也可带动4个电机)

管脚说明:
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桥电路基础知识

drv8833,智能小车,单片机,stm32,嵌入式硬件

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

二.接线

第一种DRV8833驱动模块
drv8833,智能小车,单片机,stm32,嵌入式硬件

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

第二种DRV8833驱动模块
drv8833,智能小车,单片机,stm32,嵌入式硬件

ULT低电平为睡眠模式(需要断开模块后面的J2短接焊点)
OUT1,0UT2为1路H桥,相对应控制为IN1,IN2.
OUT3,0UT4为第2路H桥,相对应控制为IN3,IN4.
EEP为保护输出,默认不用。
VCC为电压输入3至10V.
GND接地。

TB6612模块

TB6612模块有单独的PWM接口的

drv8833,智能小车,单片机,stm32,嵌入式硬件
drv8833,智能小车,单片机,stm32,嵌入式硬件
STBY 控制小车的启动还是停止
AIN1和AIN2控制电机的正转或反转
drv8833,智能小车,单片机,stm32,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-782361.html

二.代码

/******************************************************************************* 
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:PWM
	GPIO_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);
	
	//PB6
	GPIO_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:STBY
	GPIO_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:BIN2
	GPIO_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);
}

到了这里,关于智能小车 - DRV8833电机驱动模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32篇】DRV8425驱动步进电机

    【STM32篇】4988驱动步进电机_hr4988-CSDN博客         在上篇文章中使用了HR4988实现了步进电机的驱动,在实际运用过程,HR4988或者A4988驱动步进电机会存在电机噪音太大的现象。本次将向各位友友介绍一个驱动简单且非常静音的一款步进电机驱动IC。         DRV8424/25 是适

    2024年04月11日
    浏览(58)
  • DRV8825步进电机驱动详细说明书————含接线图

    最近玩步进电机时候,发现步进电机驱动种类多;A4988,drv8825,tb6600,lv8731……;tb6600驱动电流可达4A,1600细分,十分强大,但是体积大,用在平衡车上不太合适。 drv8825加散热器驱动电流可达2.5A,32细分,还不错。 如图是它的说明书中对引脚的解释 在这里把它翻译成中文。

    2023年04月09日
    浏览(68)
  • 【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置

    笔者计划使用一块使用到STM32F407控制芯片与DRV8323s驱动芯片的板子,驱动BLDC。了解到需要使用SPI通信来配置DRV8323s驱动芯片,配置过程中涉及DRV8323数据手册中提及的几个寄存器,故写此文做个记录。 另外,DRV8323芯片和DRV8302、DRV8303、DRV8353都有极大的相似之处,可以相互参考

    2024年02月02日
    浏览(62)
  • Driver8833电机驱动模块的使用(STM32为主控)

    一、硬件 STM32C8T6、STLINK下载器 Driver8833:TI公司的DRV8833是双桥马达驱动器解决方案,包括有两个H桥驱动器,可驱动两个DC电刷马达,或一个步进马达, 螺线管和其它电感负载. DRV8833具有PWM绕组电流调整/限制,H桥的输出电流1.5A RMS,2A峰值,工作电压2.7V-10.8V。 编码电机 二、Driver8833的使

    2024年02月01日
    浏览(41)
  • FOC系列(四)----重新绘制DRV8301驱动板

       声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。    由于之前DRV8301的驱动板出现了问题,而且在结构上也出现了部分问题,所以最近又重新绘制了一版,不过还是存在一些小问题,后面我还会重新绘制一版,并且修改控制板和

    2024年01月21日
    浏览(51)
  • 51单片机-PWM调速(直流电机,智能小车的电机调速)

    这次来对PWM做一个总结 最近学习时,发现PWM控制在很多地方都会用到,比如使用PWM来控制电机的速度,使用PWM来生成想要的波形。 那么到底什么是PWM呢? PWM即 脉冲宽度调制 ,在具有惯性的系统中,可以通过对 一系列脉冲的宽度进行调制 ,来等效的获得所需要的模拟参量。

    2024年02月02日
    浏览(52)
  • 【STM32】BLDC驱动&控制开发笔记 | 10_基于STM32F407+DRV8323的ADC电流采集

    在上一篇文章的基础上继续努力!👇 🧀【STM32】BLDC驱动控制开发笔记 | 09_基于STM32F407的ADC电压采集,多通道ADC+DMA+USART_CSDN博客@F菌的进阶之路 在实现电机闭环控制的实验程序中,通过ADC功能来实现电压或电流的采集十分重要。一般来说,为了获得更高的精度,会在直接通过

    2024年04月17日
    浏览(44)
  • 【STM32】BLDC驱动&控制开发笔记 | 07_SPI通信测试 - STM32F407用SPI配置DRV8323驱动芯片

    最近在埋头搞STM32 + 无刷直流电机控制,想实现用自己的STM32F407VGT6芯片板子,外加一块驱动板(目前选用到TI的DRV8302或者DRV8323驱动芯片),搞定电机驱动,最后实现比较好的控制效果。如果不是同一块芯片的同学也不用急着走,大体上都是可借鉴哒~ 本文主要实现使用SPI通信

    2024年02月08日
    浏览(55)
  • 基于STM32的智能巡检小车系统设计--STM32最小系统、直流电机、直流电源模块设计

    作者:车 邮箱:692604135@qq.com 学校:西安工程大学硕士研究生 方向:机器视觉、图像分割、深度学习 在介绍具体实现功能之前,需要介绍以下模块。 本课题选择的单片机是ST(意法半导体)开发的STM32F407VET6。 这是一款采用Corte-M4为内核的高性能32位ARM微控制器。该芯片支持

    2024年02月10日
    浏览(54)
  • DRV8301的使用

    电压6V到60V 1.7A栅极驱动电流,2.3A吸收电流 支持3.3V和5V接口 集成一个buck电源,可调节输出电压和开关频率,可对外提供1.5A电流 死区时间可调整、过流保护可调整、PVDD 和GVDD欠压锁定、GVDD过压锁定、过温提示/关机 buck电源相关引脚 name NO. Type 描述 EN_BUCK 55 I buck电源使能引脚

    2023年04月23日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包