esp32 TB6612
时间: 2025-01-23 10:05:36 浏览: 75
### ESP32 使用 TB6612 电机驱动器
#### 连接说明
TB6612 是一款双 H 桥直流电机驱动芯片,能够控制两个直流电机或一个步进电机。该驱动器通过 IN1, IN2 控制第一个电机通道;IN3, IN4 控制第二个电机通道。PWM 输入可以用于调节速度。STBY 引脚用来启用/禁用驱动器。
对于连接到 ESP32 的情况:
| 功能 | TB6612 引脚编号 | 推荐连接至 ESP32 GPIO |
| --- | --------------- | --------------------- |
| STBY (Standby) | 10 | D9/GPIO17 |
| AIN1 | 1 | D5/GPIO14 |
| BIN1 | 7 | D6/GPIO12 |
| PWMA | 2 | D7/GPIO13 |
| PWMB | 8 | D8/GPIO15 |
请注意实际硬件可能有所不同,请参照具体模块上的丝印来确认引脚定义[^1]。
#### 示例代码
下面是一个简单的 Arduino IDE 中使用的 C++ 程序例子,展示如何设置并运行连接到 TB6612 上的一个小型 DC 电机:
```cpp
// 定义GPIO针脚映射关系
const int pinPWMA = 13; // PWM信号给A侧马达
const int pinAIN1 = 14;
const int pinAIN2 = 27;
void setup() {
pinMode(pinPWMA, OUTPUT);
pinMode(pinAIN1, OUTPUT);
pinMode(pinAIN2, OUTPUT);
digitalWrite(pinAIN1, LOW); // 初始化为停止状态
digitalWrite(pinAIN2, LOW);
}
void loop() {
forward(); delay(2000); stopMotor(); delay(1000);
backward();delay(2000); stopMotor(); delay(1000);
}
void forward(){
analogWrite(pinPWMA, 255); // 设置全速前进
digitalWrite(pinAIN1,HIGH);
digitalWrite(pinAIN2,LOW);
}
void backward(){
analogWrite(pinPWMA, 255); // 设置全速后退
digitalWrite(pinAIN1,LOW);
digitalWrite(pinAIN2,HIGH);
}
void stopMotor(){
digitalWrite(pinAIN1,LOW); // 停止运动
digitalWrite(pinAIN2,LOW);
}
```
此程序会让电机先向前转动两秒再停顿一秒,接着向后转同样时间和间隔,循环执行上述动作。
阅读全文
相关推荐


















