1. L293D 简介

  • L293D 是一款双H桥电机驱动芯片,常用于驱动直流电机和步进电机。
  • 每个芯片内含两个独立的H桥驱动电路,可同时控制两个直流电机的正反转。
  • 集成了二极管,用于电机反向电流保护。
  • 支持最大电流 600mA,峰值电流 1.2A。

2. L293D 引脚功能说明

引脚编号引脚名称功能描述
1Enable 1,2通道1和2的使能端,高电平使能,低电平关闭
2Input 1通道1输入端1(控制电机方向)
3Output 1通道1输出端1,连接电机端口
4GND接地
5GND接地
6Output 2通道2输出端2,连接电机端口
7Input 2通道2输入端2(控制电机方向)
8VCC2电机供电电源,最大电压36V
9Enable 3,4通道3和4的使能端,高电平使能,低电平关闭
10Input 3通道3输入端3(控制电机方向)
11Output 3通道3输出端3,连接电机端口
12GND接地
13GND接地
14Output 4通道4输出端4,连接电机端口
15Input 4通道4输入端4(控制电机方向)
16VCC1逻辑供电电源,通常5V

3. L293D 引脚示意图

         +---------------------+
    VCC1 | 16              1 | Enable 1,2
Input4  | 15              2 | Input1
Output4 | 14              3 | Output1
   GND  | 13              4 | GND
   GND  | 12              5 | GND
Output3 | 11              6 | Output2
Input3  | 10              7 | Input2
 Enable3| 9               8 | VCC2
         +---------------------+

4. 主要参数指标

参数数值说明
逻辑电源电压 (VCC1)4.5V ~ 7V典型值5V
电机电源电压 (VCC2)4.5V ~ 36V最大可承受36V
持续电流600mA每通道最大驱动电流
峰值电流1.2A (短时)瞬时峰值,可短时承受
功耗1W (最大)芯片最大功耗
工作温度-25℃ ~ 75℃适用工作环境
内置二极管反向电流保护,防止电机反向损坏

5. 使用注意事项

  • 使能引脚必须拉高才能驱动电机,否则对应通道关闭。
  • 输入端高低电平控制电机转向,例如:
    • Input1=HIGH,Input2=LOW → 电机正转
    • Input1=LOW,Input2=HIGH → 电机反转
  • VCC1 为逻辑电源,通常接 5V;
  • VCC2 为电机供电电源,按电机额定电压选择(可大于5V);
  • 接地 GND 必须连接一致,避免电压差导致异常;
  • 驱动电机时请确保电流不超过芯片规格,避免烧毁;
  • 如需控制多个电机,可使用多个 L293D 或配合其他驱动芯片。

6. 典型应用电路示例

STM32/Arduino --- 控制信号 ---> L293D 输入端
L293D 输出端 --- 驱动电机 --- 电源正极(VCC2)
VCC1 (5V) 和 GND --- 供电与地线
使能端 EN 必须拉高,例如接5V 或 PWM 控制速度

7. 总结

  • L293D 是简单易用的双H桥电机驱动芯片;
  • 适合驱动小型直流电机、步进电机;
  • 逻辑电压和电机电压可分开供电,灵活性强;
  • 需要注意电流限制和供电稳定。

8. 参考资料


好的!下面我帮你准备了L293D 电机驱动芯片的详细接线示意图说明,以及一个简单的STM32(或Arduino)控制直流电机的示范代码,方便你快速实操使用。


一、L293D 典型接线图示意

STM32/Arduino             L293D              电机和电源
-----------------------------------------------
GPIO 控制引脚 ----> IN1 (Pin2)
GPIO 控制引脚 ----> IN2 (Pin7)
5V 电源  ----------> VCC1 (Pin16, 逻辑电源)
电机电源 (6~12V) ---> VCC2 (Pin8)
GND ---------------> GND (Pin4,5,12,13)
使能引脚 EN1 ------> 5V(使能通道1,Pin1)
OUTPUT1 (Pin3) ----> 电机端1
OUTPUT2 (Pin6) ----> 电机端2
  • 使能端 EN1 置高,驱动对应通道使能;
  • IN1、IN2 控制电机正反转;
  • VCC2 连接电机供电电压,注意不要超过芯片规格(36V以内);
  • GND 逻辑电源和电机电源公共地。

二、STM32控制示范代码(基于HAL库)

// 假设 IN1 -> GPIOA PIN0, IN2 -> GPIOA PIN1,EN1 直接拉高5V

#include "stm32f1xx_hal.h"

void Motor_Init(void) {
    GPIO_InitTypeDef GPIO_InitStruct = {0};

    __HAL_RCC_GPIOA_CLK_ENABLE();

    GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}

void Motor_Forward(void) {
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);   // IN1 = 1
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET); // IN2 = 0
}

void Motor_Backward(void) {
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); // IN1 = 0
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);   // IN2 = 1
}

void Motor_Stop(void) {
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
}

int main(void) {
    HAL_Init();
    Motor_Init();

    while (1) {
        Motor_Forward();
        HAL_Delay(2000);

        Motor_Backward();
        HAL_Delay(2000);

        Motor_Stop();
        HAL_Delay(1000);
    }
}

三、Arduino 控制示范代码

int IN1 = 8;
int IN2 = 9;
int ENA = 10;  // PWM使能引脚

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(ENA, OUTPUT);
  digitalWrite(ENA, HIGH); // 使能电机
}

void loop() {
  // 正转
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  delay(2000);

  // 反转
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  delay(2000);

  // 停止
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  delay(1000);
}

四、总结

  • 接线关键点:EN使能端必须拉高,IN1、IN2控制方向,电机电源和逻辑电源需分开供电,公共接地。
  • 软件控制:控制IN引脚高低电平实现正反转。
  • 注意事项:电机电源电压不超过36V,电流不要超过600mA,必要时外接散热片。