1. L293D 简介
- L293D 是一款双H桥电机驱动芯片,常用于驱动直流电机和步进电机。
- 每个芯片内含两个独立的H桥驱动电路,可同时控制两个直流电机的正反转。
- 集成了二极管,用于电机反向电流保护。
- 支持最大电流 600mA,峰值电流 1.2A。
2. L293D 引脚功能说明
引脚编号 | 引脚名称 | 功能描述 |
---|
1 | Enable 1,2 | 通道1和2的使能端,高电平使能,低电平关闭 |
2 | Input 1 | 通道1输入端1(控制电机方向) |
3 | Output 1 | 通道1输出端1,连接电机端口 |
4 | GND | 接地 |
5 | GND | 接地 |
6 | Output 2 | 通道2输出端2,连接电机端口 |
7 | Input 2 | 通道2输入端2(控制电机方向) |
8 | VCC2 | 电机供电电源,最大电压36V |
9 | Enable 3,4 | 通道3和4的使能端,高电平使能,低电平关闭 |
10 | Input 3 | 通道3输入端3(控制电机方向) |
11 | Output 3 | 通道3输出端3,连接电机端口 |
12 | GND | 接地 |
13 | GND | 接地 |
14 | Output 4 | 通道4输出端4,连接电机端口 |
15 | Input 4 | 通道4输入端4(控制电机方向) |
16 | VCC1 | 逻辑供电电源,通常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,必要时外接散热片。
发表回复