当前位置: 首页 > news >正文

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

目录

一、资源说明

二、基本参数

        1、参数

        2、引脚说明

三、驱动说明

        L9110模块驱动时序

        对应程序:

        PWM信号

四、部分代码说明

        接线说明

                1、STC89C52RC+L9110模块

                2、STM32F103C8T6+L9110模块

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

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

七、项目主要材料清单

八、注意事项

九、接线表格


一、资源说明

单片机型号

测试条件

模块名称

代码功能

STC89C52RC

1.晶振11.0592M

L9110模块

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

STM32F103C8T6

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

L9110模块

二、基本参数

        1、参数

 

        2、引脚说明

L9110模块

引脚说明

VCC

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

GND

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

IB1

对应OB1 IB1输入高则OUT1输出高(对应IN1)

IA1

对应OA1 IA1输入高则OUT2输出高(对应IN2)

IB2

对应OB2 IB2输入高则OUT3输出高(对应IN3)

IA2

对应OA2 IA2输入高则OUT4输出高(对应IN4)

OA1

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

OB1

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

OA2

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

OB2

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

三、驱动说明

        L9110模块驱动时序

 

        对应程序:

        以下以STC89C52RC程序为例,驱动方式与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;

}

        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+L9110模块

// L9110 引脚定义

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+L9110模块

// L9110 引脚定义

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

STC89C52RC系统板X1

 

STM32F103C8T6系统板X1

 

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

L9110模块x1

 

L9110模块x1

 

直流电机x2

 

直流电机x2

 

Micro USB线X1

 

Micro USB线X2

 

母母杜邦线若干

公母杜邦线若干

公公杜邦线若干

 

母母杜邦线若干

公母杜邦线若干

公公杜邦线若干

 

J-LINK下载器

 

八、注意事项

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

九、接线表格

单片机型号

模块

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

STC89C52RC

L9110模块

IB1

IA1

IB2

IA2

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

L9110模块

IB1

IA1

IB2

IA2

GND

PA6

PA7

PB0

PB1

GND(共地)

按键模块

KEY1

KEY2

KEY3

KEY4

GND

PB4

PB5

PB6

PB7

GND

相关文章:

  • 中装建设股票行情/广州宣布5条优化措施
  • 网络工程师可能自学吗/seo优化人员
  • 现在允许做网站吗/电脑优化软件排行榜
  • 网站功能说明怎么做/网址域名查询ip地址
  • 怎么查网站开发语言/中国网站建设公司
  • wordpress编辑器教程/百度云官网
  • 链接装载(一)虚拟地址与物理地址
  • JAVASE(复习)——异常
  • Java ~ Executor ~ LinkedBlockingQueue【源码】
  • 【Redis】事务秒杀案例
  • MMCV学习——基础篇3(fileio)| 五千字:含示例代码教程
  • Redis学习笔记(五)
  • 【Linux Kernel 6.1 代码剖析】- 进程管理概论
  • 多线程 3
  • 配置请求头Content-Type
  • 公众号接口免费调用
  • numpy学习笔记
  • Windows内核--子系统(3.5)