一、電機A接線說明
| 元件 | TB6612FNG 引腳 | 功能 | 接線說明 |
|---|
| ESP32 | GPIO 25 | PWMA(PWM) | 控制轉速 |
| ESP32 | GPIO 26 | AIN1 | 控制方向 |
| ESP32 | GPIO 27 | AIN2 | 控制方向 |
| ESP32 | GPIO 33 | STBY | 芯片使能 |
| 電機 A | A01 / A02 | 電機輸出 | 接到電機兩端(無正負,反轉調換) |
| 電源 | VM | 電機供電 | 接 5V 或電機需要的電壓 |
| 電源 | VCC | 邏輯電壓 | 接 ESP32 的 3.3V |
| 共地 | GND | 地 | ESP32、TB6612FNG、電源共地 |
TB6612FNG 的輸出引腳:
| TB6612FNG 引腳 | 對應電機 | 接電機端子 |
|---|
| A01 | 電機 A | 電機 A 的一個極 |
| A02 | 電機 A | 電機 A 的另一個極 |
| B01 | 電機 B | 電機 B 的一個極 |
| B02 | 電機 B | 電機 B 的另一個極 |
二、示例代碼:控制一個電機前進 → 停止 → 反轉
點擊查看代碼
#include <Arduino.h>
#define AIN1 26 // 電機方向控制1
#define AIN2 27 // 電機方向控制2
#define PWMA 25 // 電機 PWM 控速
#define STBY 33 // 芯片使能
void setup() {
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(STBY, OUTPUT);
// 設置 PWM 通道0: 頻率1kHz,分辨率8位(0~255)
ledcSetup(0, 1000, 8);
ledcAttachPin(PWMA, 0);
/*ledcSetup(1, 1000, 8); // 通道1
ledcAttachPin(PWMB, 1);*/
digitalWrite(STBY, HIGH); // 激活 TB6612FNG
}
void loop() {
// 正轉
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
ledcWrite(0, 200); // 占空比調節速度(0~255)
delay(3000); // 轉3秒
// 停止
ledcWrite(0, 0);
delay(2000);
// 反轉
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
ledcWrite(0, 200);
delay(3000);
// 停止
ledcWrite(0, 0);
delay(2000);
}