K_A08_012 基于 STM32等单片机驱动 DRV8833 模块按键控制直流电机正反转

news2025/1/10 20:31:23

目录

一、资源说明

二、基本参数

        参数

        引脚说明

三、驱动说明

        驱动时序

        对应程序:

四、部分代码说明

        接线说明

                STC89C52RC+DRV8833模块

                STM32F103C8T6+DRV8833模块

五、基础知识学习与相关资料下载

六、视频效果展示与程序资料获取

七、项目所有材料清单

八、注意事项

九、接线表格


一、资源说明

单片机型号

测试条件

模块名称

代码功能

STC89C52RC

1.晶振11.0592M

DRV8833 模块

单片机驱动DRV8833 模块按键控制步进电机正反转

STM32F103C8T6

  1. 晶振8M
  2. 系统时钟72M

DRV8833 模块

二、基本参数

        参数

        引脚说明

DRV8833 模块

引脚说明

AIN1

信号输入1

AIN2

信号输入2

SLP

睡眠引脚(低电平睡眠)

BIN2

信号输入3

BIN1

信号输入4

FLT

错误状态输出

GND

电源GND(需要与单片机共地)

VM

电源正极 此处用8V

BS

电流控制B

AS

电流控制A

BOUT1

电机B其中一脚

BOUT2

电机B其中另一脚

AOUT2

电机A其中一脚

AOUT1

电机A其中另一脚

三、驱动说明

        DRV8833模块与MAX1508输入引脚一致 ,所以此处用的是MAX1508程序改

        驱动时序

 

        对应程序:

//正转
void turn_Syntropy(void)
{
		 Pwm_IN1_R=0;
		 Pwm_IN3_L=0;
	
}
//反转

void turn_Reverse(void)
{
		 Pwm_IN2_R=0;
		 Pwm_IN4_L=0;
		
}
//停止

void turn_Stop(void)
{
		 Pwm_IN1_R=1;
		 Pwm_IN2_R=1;

		 Pwm_IN3_L=1;
		 Pwm_IN4_L=1;
	
		 TR0=0;
}

四、部分代码说明

        接线说明

        需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

                STC89C52RC+DRV8833模块

//输入信号引脚
sbit Pwm_IN1_R=P1^0;
sbit Pwm_IN2_R=P1^1;
sbit Pwm_IN3_L=P1^2;
sbit Pwm_IN4_L=P1^3;
//按键引脚
sbit K_Start_Stop=P2^0;   //启停按键
sbit K_Syntropy_Reverse=P2^1;			//两电机同向反向按键
sbit K_UP_Speed=P2^2;			//两电机同时加速按键
sbit K_Down_Speed=P2^3;			//两电机同时减速按键

                STM32F103C8T6+DRV8833模块

// TIM3 输出比较通道1
#define            GENERAL_TIM_CH1_GPIO_CLK      RCC_APB2Periph_GPIOA
#define            GENERAL_TIM_CH1_PORT          GPIOA
#define            GENERAL_TIM_CH1_PIN           GPIO_Pin_6

// TIM3 输出比较通道2
#define            GENERAL_TIM_CH2_GPIO_CLK      RCC_APB2Periph_GPIOA
#define            GENERAL_TIM_CH2_PORT          GPIOA
#define            GENERAL_TIM_CH2_PIN           GPIO_Pin_7

// TIM3 输出比较通道3
#define            GENERAL_TIM_CH3_GPIO_CLK      RCC_APB2Periph_GPIOB
#define            GENERAL_TIM_CH3_PORT          GPIOB
#define            GENERAL_TIM_CH3_PIN           GPIO_Pin_0

// TIM3 输出比较通道4
#define            GENERAL_TIM_CH4_GPIO_CLK      RCC_APB2Periph_GPIOB
#define            GENERAL_TIM_CH4_PORT          GPIOB
#define            GENERAL_TIM_CH4_PIN           GPIO_Pin_1

//按键引脚
#define K_Start_Stop   				GPIO_Pin_4  //启停按键 								GPIOB_Pin_4 0x0010   //?GPIOB_Pin_3
#define K_Syntropy_Reverse    GPIO_Pin_5			//两电机同向反向按键		GPIOB_Pin_5 0x0020
#define K_UP_Speed     				GPIO_Pin_6		//两电机同时加速按键			GPIOB_Pin_6 0x0040
#define K_Down_Speed     			GPIO_Pin_7			//两电机同时减速按键   GPIOB_Pin_7 0x0080

五、基础知识学习与相关资料下载

  1. STC89C52RC程序下载 直戳跳转
  2. STM32F103C8T6程序下载
    1. 串口下载                直戳跳转 
    2. ST-LINK下载             直戳跳转
    3. J-LINK下载              直戳跳转
    4. DAP-LINK下载            直戳跳转

六、视频效果展示与程序资料获取

        视频连接    直戳跳转

        资料获取   直戳跳转

七、项目所有材料清单

STC89C52RC驱动方案

图片

STM32F103C8T6驱动方案

图片

备注

K_A08_012

STC89C52RC系统板X1

 

STM32F103C8T6系统板X1

 

  1. STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电
  2. 杜邦线建议不用太长的

DRV8833模块x1

 

DRV8833模块x1

 

直流电机x1

 

直流电机x1

 

Micro USB线X1

 

Micro USB线X2

 

母母杜邦线X5

 

母母杜邦线X5

 

J-LINK下载器

 

八、注意事项

  1. VCC GND请勿接反,接反易烧
  2. 电机抖动 也可能是接线接触不良引起 需排查接线
  3. 单片机与模块供电需要共GND否则会异常

九、接线表格

单片机型号

模块

对应引脚(上:模块引脚 下:单片机引脚)

STC89C52RC

DRV8833模块

AIN1

AIN2

BIN2

BIN1

SLP

GND

P1.0

P1.1

P1.2

P1.3

接5V

GND

按键模块

KEY1

KEY2

KEY3

KEY4

GND

P2.0

P2.1

P2.2

P2.3

GND

STM32F103C8T6

DRV8833模块

AIN1

AIN2

BIN2

BIN1

SLP

GND

PA6

PA7

PB0

PB1

接5/3.3V

GND

按键模块

KEY1

KEY2

KEY3

KEY4

GND

PB4

PB5

PB6

PB7

GND

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

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

相关文章

《自己动手写CPU》学习记录(4)——第4章/Part 2

目录 引言 致谢 拥有Linux开发环境 1、Linux虚拟机安装 2、共享文件夹 GNU工具链安装 Makefile RAM.ld Bin2Mem.exe 注意 路径 测试 引言 上篇文章实现了 ori 指令,并且搭建验证平台,验证了功能的正确性。但是有一个问题就是,当…

寻找网络1020的结构平衡点

( A, B )---2*n*2---( 1, 0 )( 0, 1 ) 用网络分类A和B,让A是(0,1)(0,0),让B是(1,0)(0,0)。记为网络1020.AB的…

湖南中医药大学宿舍无线网络一体化项目

第二次上大王老师的课,上学期的微机这学期的计网,这学期一开学就是一个大项目,对于零基础,零经验的我们来说,老师布置给我们一项比较重大的任务就是——从零开始为我们学校宿舍部署无线网络。刚开始觉得这肯定完不成&a…

CRM客户管理系统能为小微型企业带来哪些优势?

回款&销售排名看板CRM(顾客关系管理工作控制系统)在亚洲地区发展了三十余年,让众多民营企业管理工作形式成功的从实体店转至线上,因此协助民营企业展开管理工作上的高效率提高,CRM控制系统做为两个能协助各类民营企…

python学习中的各种迷一样的问题之一

神秘一 Argument name should be lowercase oneX这个变量名可以改成one_x 神秘二 无缘无故被in 到def里的main() 原因是400行少了个" ) " 神秘三一个文件位置引发的血案 无法执行使用所选元素重构,别用捷克键盘来唬人了 test_03_2022-1202_to_2022-1209.py在…

你不知道13个嵌入式C语言优化技巧

【推荐阅读】 关于如何快速学好,学懂Linux内核。内含学习路线 深入linux内核架构--内存管理 了解ixgbe网卡驱动— 驱动注册(纯代码分享) 手把手教你如何编写一个Makefile文件 需要多久才能看完linux内核源码? 嵌入式系统受其使用的…

H02-RCNN和SPPNet

目录 1.目标检测-Overfeat模型 1.1 滑动窗口 1.2 Overfeat模型总结 2.目标检测-RCNN模型 2.1 完整的R-CNN结构 2.1.1 候选区域(Region of lnterest)得出(了解) 2.1.2 CNN网络提取特征 2.1.3 特征向量训练分类器SVM 2.1.4 非最大抑制(NMS) 2.1.…

Mybatis-plus 源码执行全流程解析

Mybatis-plus 源码执行全流程解析 废话 少数流程开始: 1、业务入口:userMapper.insertBatch(entityList); 执行到代理类: $Proxy222 (com.sun.proxy) 开始走代理流程,然后到了代理类: idea 执行流程取出栈信息&…

Mybatis增删改查

Mybatis增删改查 1,配置文件实现CRUD 1.1 环境准备 数据库表(tb_brand)及数据准备 -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand (-- id 主键id int primary key auto_increment,…

string的认识和使用

目录 一、网站上查看string类 1.网站 2.网站上的string类 二、string类的成员函数 1.默认成员函数 (1)构造函数、拷贝构造函数和析构函数 (2)赋值运算符重载 (3)容量操作 (4&#xff09…

JavaWeb用户信息查看的登录、增删改查案例

黑马JavaWeb案例整理记录 文章目录案例源码:一、需求二、设计1、技术选型2、数据库设计三、开发步骤四、详细过程1、创建web项目,部署tomcat,导入jar包2、编写首页index.jsp3、编写servlet、servie、daomain、dao五、案例升级实现1、实现内容…

成长任务|花式show爱心代码

❤️立即投稿❤️ 📌活动规则 最近#李峋同款爱心代码#词条上了热搜,作为程序员的你,可不能错过这个给意中人大展身手的时机 ❤️ 使用代码画一颗#爱心#,将你的代码文件通过本页面投稿,审核通过即可参与活动 ❤️ 可使…

速锐得猎奇与猜想:数字化工业互联网能否真的走进未来

前年的8月份,我们独立设计一款燃气报警器,包括设计产品图纸,嵌入式软件、LED显示、核心代码、CAN网络及485架构、云端SAAS框图,应用场景等,在去年的5月份直接进入到了量产,第一批数量是2000套,升…

详细介绍NLP文本摘要

文章目录文本生成文本摘要抽取式文本摘要抽取式文本摘要方法案例分析优点缺点生成式文本摘要指针生成网络文本摘要预训练模型与生成式摘要优点缺点TextRank文本摘要BertSum模型文本摘要文本生成 文本生成(Text Generation):接收各种形式的文…

IT行业几大方向(外行人之误解)

有很多同学一说自己是搞计算机的,搞软件的,做IT的,是个程序员。外行人,就往往很惊奇,说我电脑卡怎么处理,怎么盗别人QQ密码,把谁谁网站黑了,甚至我的网络很慢可以帮我提速一下吗等等…

如何设计es的索引库结构

1、确定索引库的名称 建议和使用的数据库的表名相对应 比如:数据库的表名为 那么索引库的名称可以为:item 2、确定索引库需要的字段 1.根据前端界面来判断需要什么字段 例如: 上边这个界面需要的就是: 分类,品牌&…

使用ZPL控制Zebra打印机

ZPL简介: Zebra编程语言 (ZPL)是所有 ZPL 兼容打印机使用的命令语言。可用于绘制文本、形状、条形码和图像等元素,组合这些元素。打印机使用它作为指令来创建打印在标签上的图像。 想要打印一个标签,您可能需要告诉打印机: 产品名称是什么…

Python学习基础笔记三十四——爬虫小例子

一个爬虫小例子&#xff1a; import requestsimport re import jsondef getPage(url):responserequests.get(url)return response.textdef parsePage(s):comre.compile(<div class"item">.*?<div class"pic">.*?<em .*?>(?P<id&…

Nginx的access.log日志分析工具-goaccess

一、安装goaccess wget http://tar.goaccess.io/goaccess-1.3.tar.gz --no-check-certificate #下载tar包 tar -xzvf goaccess-1.3.tar.gz #解压tar包 cd goaccess-1.3/ #进入目录 ./configure --enable-utf8 --enable-geoiplegacy --prefix/opt/goaccess #检测环境&…

宝塔严重未知安全性漏洞(宝塔面板或Nginx异常)

问题简述 论坛上的帖子 https://www.bt.cn/bbs/thread-105054-1-1.html https://www.bt.cn/bbs/thread-105085-1-1.html https://hostloc.com/thread-1111691-1-1.html 数据库莫名被删 https://www.bt.cn/bbs/thread-105067-1-1.html 以下内容来自群友消息&#xff1a; 速报:宝…