K_A08_002 基于 STM32等单片机驱动MAX1508模块按键控制直流电机正反转加减速启停

news2024/11/17 12:38:24

目录

一、资源说明

二、基本参数

        1、参数

        2、引脚说明

        3、驱动说明

                MAX1508模块驱动时序

                对应程序:

                PWM信号

四、部分代码说明

        接线说明

                1、STC89C52RC+MAX1508模块

                2、STM32F103C8T6+MAX1508模块

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

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

七、项目所有材料清单

八、注意事项

九、接线表格


一、资源说明

单片机型号

测试条件

模块名称

代码功能

STC89C52RC

1.晶振11.0592M

MAX1508模块

单片机驱动MAX1508模块按键控制直流电机正反转加减速启停

STM32F103C8T6

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

MAX1508模块

二、基本参数

        1、参数

        2、引脚说明

MAX1508模块

引脚说明

+(正极)

给电机供电(此处8V供电 根据需要来)

-(GND)

电源地 此处要与单片机共地

IN1

对应OUT1 IN1输入高则OUT1输出高

IN2

对应OUT2 IN2输入高则OUT2输出高

IN3

对应OUT3 IN3输入高则OUT3输出高

IN4

对应OUT4 IN4输入高则OUT4输出高

MOTOR-A

接电机和OUT2为一组 输出高低由IN1控制

接电机和OUT1为一组 输出高低由IN2控制

MOTOR-B

接电机和OUT4为一组 输出高低由IN3控制

接电机和OUT3为一组 输出高低由IN4控制

        3、驱动说明

                MAX1508模块驱动时序

                对应程序:

                以下以STC89C52RC程序为例

//正转

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;

}

                PWM信号

                此处用51定时器1来生成

void tim0() interrupt 1
{
		TL0 = 0xA4;		//设置定时初值
		TH0 = 0xFF;		//设置定时初值  0.1ms

		times++;
		if(times<=Speed)
		{
				if(!Flag_Syntropy_Reverse)
				{
						Pwm_IN2_R=1;
						Pwm_IN4_L=1;
				}
				else
				{
						Pwm_IN1_R=1;
						Pwm_IN3_L=1;				
				}
			
		}
		else
		{
				if(!Flag_Syntropy_Reverse)
				{
						Pwm_IN2_R=0;
						Pwm_IN4_L=0;
				}
				else
				{
						Pwm_IN1_R=0;
						Pwm_IN3_L=0;				
				}
		} 
		if(times>=Period)
		{
			 times=0;
		}
}

四、部分代码说明

        接线说明

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

                1、STC89C52RC+MAX1508模块

//MAX1508引脚定义

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; //两电机同时减速按键

                2、STM32F103C8T6+MAX1508模块

//MAX1508引脚定义

// 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_002

STC89C52RC系统板X1

STM32F103C8T6系统板X1

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

MAX1508模块x1

MAX1508模块x1

直流电机x2

直流电机x2

Micro USB线X1

Micro USB线X2

母母杜邦线X6

公母杜邦线X6

公公杜邦线X2

母母杜邦线X6

公母杜邦线X6

公公杜邦线X2

J-LINK下载器

八、注意事项

  1. VCC GND请勿接反,接反易烧
  2. 异常时,排除接线接触不良
  3. 单片机与模块需要共地接线

九、接线表格

单片机型号

模块

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

STC89C52RC

MAX1508模块

IN1

IN2

IN3

IN4

GND

P1.0

P1.1

P1.2

P1.3

GND(共地)

按键模块

KEY1

KEY2

KEY3

KEY4

GND

P2.0

P2.1

P2.2

P2.3

GND

STM32F103C8T6

MAX1508模块

IN1

IN2

IN3

IN4

GND

PA6

PA7

PB0

PB1

GND(共地)

按键模块

KEY1

KEY2

KEY3

KEY4

GND

PB4

PB5

PB6

PB7

GND

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

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

相关文章

[附源码]计算机毕业设计springboot校园生活服务平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

PowerBI工作区连接Log Aanlytics

其实在2021.6月的时候微软已经更新了该功能&#xff0c;通过PowerBI高级容量工作区连接Log Analytics工作区&#xff0c;从而分析历史活动数据。并且在应用市场创建了一个模板应用方便分析日志数据。使用该模板可以&#xff1a; • 观察历史使用趋势 • 按照范围、容量、数据集…

常用通讯电平转换电路整理

常用通讯电平转换电路整理5V转3.3V 当5V端信号为低电平时&#xff0c;R4不导通&#xff0c;Q5基极高电平&#xff0c;Q5导通&#xff0c;Q5的集电极被拉低&#xff0c;3.3V端被拉低。R6在Q5导通时起到限流作用。 优势&#xff1a; 便宜&#xff1a;三极管容易常见并且容易采购&…

LOLBins免杀技术研究及样本分析

一、前言 自病毒木马诞生起&#xff0c;杀毒软件与病毒木马的斗争一直都没有停止过。从特征码查杀&#xff0c;到现在的人工智能查杀&#xff0c;杀毒软件的查杀技术也是越来越复杂。但是病毒木马却仍然层出不&#xff0c;这是因为大部分病毒木马使用了免杀技术。 免杀技术全称…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校教师工作量的核算的设计与实现g6ipj

大学计算机专业毕业的&#xff0c;实际上到了毕业的时候&#xff0c;基本属于会与不会之间。说会&#xff0c;是因为学了整套的理论和方法&#xff0c;就是所谓的科班出身。说不会&#xff0c;是因为实践能力极差。 不会的问题&#xff0c;集中体现在毕设的时候&#xff0c;系…

2023年天津天狮学院专升本市场营销专业《市场营销学》考试大纲

2023年天津天狮学院高职升本市场营销专业入学考试《市场营销学》考试大纲一、考试性质 《市场营销学》专业课程考试是天津天狮学院市场营销专业高职升本入学考试的必考科目之一&#xff0c;其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。《市场营销学》…

【图像分割】DeepLabV3+

文章目录0. 介绍1. DeepLabV32. 结论3. 参考0. 介绍 DeepLabV3文章&#xff1a;https://arxiv.org/pdf/1802.02611.pdf DeepLabV3代码&#xff1a;https://github.com/VainF/DeepLabV3Plus-Pytorch 语义分割的两个主要问题&#xff1a; 物体的多尺度问题。多次下采样会造成特…

ABAP 计算时间差

源码 FUNCTION zfm_date_difference. *“---------------------------------------------------------------------- "“本地接口&#xff1a; *” IMPORTING *” VALUE(IV_DATE_BEG) TYPE SY-DATUM *" VALUE(IV_TIME_BEG) TYPE SY-UZEIT *" VALUE(IV_DATE_END)…

【赛后总结】第十三届服务外包创新创业大赛总结——A14

目录前言组队&#xff06;选题分工&项目推进提交材料&项目答辩区域赛初赛区域赛决赛全国总决赛写在最后前言 先摆两个参赛视频 初赛视频 决赛视频 比赛已经过去几个月了&#xff0c;也算是想起来这个比赛可以写一个总结了。在历时8个月左右的时间之后&#xff0c;我们…

香菇多糖-四甲基罗丹明 Lentinan-TRITC 四甲基罗丹明-PEG-香菇多糖

香菇多糖-四甲基罗丹明 Lentinan-TRITC 四甲基罗丹明-PEG-香菇多糖 中文名称&#xff1a;香菇多糖-四甲基罗丹明 英文名称&#xff1a;Lentinan-TRITC 别称&#xff1a;生物素修饰香菇多糖&#xff0c;生物素-香菇多糖 香菇多糖-聚乙二醇-四甲基罗丹明 TRITC-PEG-Lent…

[附源码]计算机毕业设计JAVA校园新闻管理系统

[附源码]计算机毕业设计JAVA校园新闻管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

带你走进脚本世界,ijkplayer之【init-ios.sh】脚本分析

前言 集成ijkplayer&#xff0c;需要执行脚本init-ios.sh&#xff0c;那么init-ios.sh脚本干嘛用的了,花了半天时间&#xff0c;学习了下shell脚本&#xff0c;感觉脚本语言学起来还是比较容易上手的&#xff0c;现在仅仅能看懂了&#xff0c;但是要自己写&#xff0c;还需要花…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学生社团管理系统n4pcu

要开始我们毕业设计的第一步的关键就是选好我们的课题&#xff0c;有的同学开始选题的时候想着按照传统的课题延续下去&#xff0c;在设计题目时&#xff0c;不要过于笼统广泛&#xff0c;选择题目其实并不难&#xff0c;要多从自身的角度出发&#xff0c;要结合你们当前所处的…

VTK网格细分-vtkAdaptiveSubdivisionFilter

欢迎大家加入社区&#xff0c;雪易VTK社区-CSDN社区云 前言&#xff1a;此博文主要分享VTK中关于细分网格的相关Filter&#xff0c;同时希望能给其他小伙伴一些帮助。 小结&#xff1a;VTK中关于网格细分的Filter包括vtkSubdivisionFilter和vtkAdaptiveSubdivisionFilter。其…

【服务器数据恢复】EMC Unity存储误操作删除数据卷的数据恢复案例

服务器数据恢复环境&#xff1a; EMC Unity某型号存储&#xff1b; 存储设备连接的2台硬盘柜上共创建2组独立的POOL&#xff1b; 2组POOL共包含21块520字节的硬盘。 服务器故障&检测&#xff1a; 误操作删除了2组POOL上的部分数据卷&#xff0c;和用户沟通后得知有5个数据…

Linux学习记录——사 权限与工具

目录的权限 想要进入一个目录&#xff0c;必须有x权限。对于目录来讲&#xff0c;r权限代表着可以查看当前目录下的文件名属性&#xff0c;w权限代表着可以在该目录下创建新文件。 默认权限 现在创建一个目录和文件 创建普通文件时&#xff08;不包括可执行&#xff09;&…

冬天这么冷,到底要不要坚持送孩子入托?

进入初冬&#xff0c;天气转凉&#xff0c;很多家长担心宝宝着凉感冒&#xff0c;不送孩子去托班了&#xff0c;甚至干脆不带孩子出门。 事实上&#xff0c;无论从幼儿身体健康发育的角度&#xff0c;还是心理发展的层面&#xff0c;这种做法都是极不科学的。 看看下面这些理由…

[Java]图论详解(内附详细代码)

专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1.图的基本概念 2.图的存储结构 2.1 邻接矩阵…

[Linux]------线程控制与互斥

文章目录前言一、进程VS线程空间共享二、线程控制POSIX线程库创建线程获取线程IDpthread_join线程异常第二个参数线程的局部存储线程的分离exit()三、线程的互斥进城线程间的互斥相关背景概念互斥量mutex模拟抢票逻辑解决问题互斥量实现原理探究基于RAII机制锁的模拟实现四、可…

Linux 线程控制 —— 线程清理 pthread_cleanup_push

主线程可以通道 pthread_cancel 主动终止子线程&#xff0c;但是子线程中可能还有未被释放的资源&#xff0c;比如malloc开辟的空间。如果不清理&#xff0c;很有可能会造成内存泄漏。 // 子线程回调函数 void* thread_run(void* args) {int* p (int*)malloc(100); // 动…