STM32F103与L298n电机驱动模块按键控制电机正反转及PWM调速(附源码)

功能

使用普中科技STM32-PZ6806D开发板上的按键控制电机正反转,启动,停止,PWM输出波接在开发板的LED灯上查看效果。不仅限于使用这款开发板,修改引脚配置即可。

硬件

1.普中科技STM32-PZ6806D开发板,核心STM32F103ZET6。
2.L298n电机驱动模块。
3.直流电机。

连接如图所示各个管脚图

1.模块可驱动两路直流电机,输出A接及B各接一直流电机即可
2.若使用12V供电,将12V供电端口及GND接上电源正负即可。
3.若不需要使用PWM调速,只需要控制电机正反转,则逻辑A与B跳线帽插上即可,相当于始终使能。
4.若需要使用PWM调速,需将跳线帽拔起,将使能端接上单片机IO口。
5.逻辑输入四个端口IN1、IN2、IN3、IN4接单片机四个IO口,每两个端口控制的一路电机。

如图为如何控制四个端口
如图为L298n使电机正反停的逻辑,简单地说,当控制单片机IN1所连接引脚为高电平,与IN2连接的引脚为低电平时,输出A端使电机正转,其他情况见上表。

代码(基于正点原子)

motor.c 电机的控制

#include "motor.h"
#include "stm32f10x.h" 
#include "stm32f10x_rcc.h"
#include "delay.h"

void Motor_12_Config(void)   //管脚配置
 {
   
  GPIO_InitTypeDef GPIO_InitStructure;  
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; 
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  GPIO_ResetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3); 
 }
 
 void Motor_1_STOP(void)              //电机1停止
{
   
 GPIO_ResetBits(GPIOC,GPIO_Pin_0);
 GPIO_ResetBits(GPIOC,GPIO_Pin_1);
}

void Motor_1_PRun(void)           //电机1正转
{
   
 GPIO_SetBits(GPIOC,GPIO_Pin_0);
 GPIO_ResetBits(
评论 89
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值