目录
- 学前小基础-全H桥
-
- 原理图
- H桥工作模式
- 一、L298N初认识
-
- 参数
- 特点
- 功能框图
- 电路图
- 引脚
- 真值表
- 二、接线
-
- 1.板内电压驱动
- 2.外部电源驱动
- 三、代码段
-
- motor.c
- motor.h
学前小基础-全H桥
关于MOS管道:元器件学习(2):MOS管 关于PWM:学习笔记11-PWM
原理图
以全NMOS管为例 从上图可以看出,该电机的驱动电路由4个驱动NMOS管构成,形如H型,故名全H桥梁电路。控制4个MOS管道的导通和截止对中间电机有不同的控制作用。NMOS管的。
H桥工作模式
:Q1、Q4.网格电平极高,Q2、Q3为低电平,Q1,Q如左图所示,电机正向旋转。 :Q2、Q3.网格电平极高,Q1、Q4为低电平,Q2,Q如右图所示,电机反向旋转。 :如何停止旋转电机?,电流不能突变。断开电机两端增加的电压时,电机产生的反向电势很可能。光断电还不够,还要。
以左侧正转模式为例
- 若此时采用:四个MOSFET关闭,电机上的电流将通过Q2和Q3.寄生二极管继续流动,如②线显示。可以发现,此时电流的流向与电源电压相反,因此,当电流衰减为0时,因为FET关闭,电源电压不会加在电机上,电机会逐渐停止。
- 如果采取:Q2、Q4导通,Q1、Q3关闭。电机上的电流通过Q2和Q继续流动,比如③如线所示,电机上的能量会逐渐消耗在电机本身和Q2、Q3上,这样的。
补充 1.衰减的速度描述电流,而不是电机的旋转速度! 2.在快速衰减模式下,由于电流快速下降,电感电机上,电机会。 在慢衰减模式下,电机的两端类似于短接,,储存的能量瞬间释放,电机会。
一、L298N初认识
L298是L高功率、大电流版本的293电机驱动芯片,由Multiwatt 15封装,N是L298的封装标识符。 L298N可接受高电压、大电流,采用Multiwatt 15脚包装,接受标准逻辑电平信号;内置稳压芯片78MO5.使内部逻辑电路部分在低压下工作,也可以输出外部逻辑电压5V。(当使用超过12时,为避免稳压芯片损坏V驱动电压时,必须使用外部5V接口独立供电。
L298N控制主控芯片上的控制I/O输入端可以通过电源直接调节输出电压,实现电机的正转、反转和停止。由于电路简单,使用方便,通常L298N继电器(四路)、螺线管、电磁阀、直流电机(两台)和步进电机(一台两相或四相)可直接驱动。
由于芯片在H桥梁损失严重(饱和压降大)需要安装散热器,所以体积比较大。
参数
特点
- 发热量低
- 抗干扰能力强
- 驱动能力强 (高压、大电流)
- 可靠性高 (使用大容量滤波电容,续流保护二极管可过热自断和反馈检测)
- 高工作电压 (最高46V)
- 输出电流大 (瞬时峰值电流可达3)A,连续工作电流为2A)
- 额定功率25W
功能框图
可见于L298N的H桥采用了,无寄生二极管,无法实现续流,因此外接了8个续流二极管。
电路图
引脚
实物图显示:
说明:
- ENA、ENB:该接口高电平电机运行,默认跳线帽短接高电平(一直使用);可拔下主控板PWM端口调速。
- 输出A、B(OUT1、OUT2、OUT3、OUT4):连接两个电机,不分正负.
- 逻辑输入(IN1、IN2、IN3、IN4):控制电机的正反转和速度,IN1和IN2控制电机M1,IN3和IN4控制电机M2.
- GND:需要电源地(控制时使用的逻辑电平均以同一个地方为参考)。
- 12V供电:电机供电接口,这里!!
- 5V电源:电压输出口可用于主控板5V电源(不推荐)。
- 板载5V使能:跳线帽连接5V供电口才5V电压输出。
真值表
二、接线
1.板内电压驱动
2、外接电源驱动
十分重要!
三、代码段
关于转动方向
- 当两个电机转动速度相同时,小车直行;
- 当左电机比右电机转动快时,小车右转;
- 当右电机比左电机转动快时,小车左转.
关于电机不会转动原因排查
- 有响声但不转,可能是电压不够,尝试加大电压
- 接线错误,电源地没有与单片机共地…
- 逻辑端没有正确的使能
motor.c
#include "motor.h"//刹车void MOTOR_CarBrakeAll(void){
MOTOR1_BRAKE; MOTOR2_BRAKE;}//后退void MOTOR_CarBack(void){
MOTOR1_01; MOTOR2_10;}//前进 void MOTOR_CarForward(void){
MOTOR1_10; MOTOR2_01;}void MOTOR_GPIOInit(void){
GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(MOTOR1_GPIO_CLK|MOTOR2_GPIO_CLK,ENABLE); GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //电机1 GPIO_InitStructure.GPIO_Pin = MOTOR1_GPIO_PIN; GPIO_Init(MOTOR1_GPIO_PORT, &GPIO_InitStructure); //电机2 GPIO_InitStructure.GPIO_Pin = MOTOR2_GPIO_PIN; GPIO_Init(MOTOR2_GPIO_PORT, &GPIO_InitStructure);}
motor.h
#ifndef __MOTOR_H#define __MOTOR_H#include "stm32f10x.h"#define IN1_PIN GPIO_Pin_12#define IN2_PIN GPIO_Pin_13#define IN3_PIN GPIO_Pin_14#define IN4_PIN GPIO_Pin_15//10:IN1:1、IN2:0 01:IN1:0、IN2:1#define MOTOR1_GPIO_PORT GPIOB#define MOTOR1_GPIO_CLK RCC_APB2Periph_GPIOB#define MOTOR1_GPIO_PIN IN1_PIN|IN2_PIN#define MOTOR1_10 {
GPIO_SetBits(MOTOR1_GPIO_PORT,IN1_PIN);GPIO_ResetBits(MOTOR1_GPIO_PORT,IN2_PIN);}#define MOTOR1_01 {
GPIO_ResetBits(MOTOR1_GPIO_PORT,IN1_PIN);GPIO_SetBits(MOTOR1_GPIO_PORT,IN2_PIN);}#define MOTOR1_BRAKE GPIO_ResetBits(MOTOR1_GPIO_PORT,MOTOR1_GPIO_PIN);//10:IN3:1、IN4:0 01:IN3:0、IN4:1#define MOTOR2_GPIO_PORT GPIOB#define MOTOR2_GPIO_CLK RCC_APB2Periph_GPIOB#define MOTOR2_GPIO_PIN IN3_PIN|IN4_PIN#define MOTOR2_10 {
GPIO_SetBits(MOTOR2_GPIO_PORT,IN3_PIN);GPIO_ResetBits(MOTOR2_GPIO_PORT,IN4_PIN);}#define MOTOR2_01 {
GPIO_ResetBits(MOTOR2_GPIO_PORT,IN3_PIN);GPIO_SetBits(MOTOR2_GPIO_PORT,IN4_PIN);}#define MOTOR2_BRAKE GPIO_ResetBits(MOTOR2_GPIO_PORT,MOTOR2_GPIO_PIN);void MOTOR_CarBrakeAll(void);void MOTOR_CarBack(void);void MOTOR_CarForward(void);void MOTOR_GPIOInit(void);#endif /* __MOTOR_H */
参考自: 1、[教程]【Mind+】(超详细)如何使用L298N电机驱动图形编程控制电机 2、【电机驱动芯片(H桥、直流电机驱动方式)——DRV8833、TB6612、A4950、L298N的详解与比较】 3、L298N 电机驱动板 - 详细介绍