esp32 小车
时间: 2025-06-05 16:30:25 浏览: 18
### ESP32控制小车的教程与示例代码
ESP32作为一种功能强大的微控制器,结合L298N电机驱动器可以轻松实现对小车的控制。以下是一个完整的教程和示例代码,帮助用户理解如何使用ESP32和L298N控制小车的速度和方向[^1]。
#### 硬件连接
在硬件方面,需要将ESP32的GPIO引脚连接到L298N的输入端。具体连接如下:
- L298N的IN1和IN2分别连接到ESP32的GPIO引脚(例如D5和D6)。
- L298N的使能端ENA连接到ESP32的PWM引脚(例如D4),用于调节速度。
- 电源正极接入L298N的VCC和GND,并确保电机正确连接到OUT1和OUT2。
#### 示例代码
以下是一个基于Arduino IDE的示例代码,展示了如何通过ESP32控制小车的前进、后退和停止。
```cpp
// 定义GPIO引脚
#define IN1 5 // 控制电机方向1
#define IN2 6 // 控制电机方向2
#define ENA 4 // 控制电机速度
void setup() {
Serial.begin(115200); // 初始化串口通信
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
}
void loop() {
// 前进
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 128); // 设置速度为中速
Serial.println("前进");
delay(2000);
// 后退
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENA, 128); // 设置速度为中速
Serial.println("后退");
delay(2000);
// 停止
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(ENA, 0); // 停止电机
Serial.println("停止");
delay(2000);
}
```
上述代码实现了小车的基本动作控制:前进、后退和停止。通过改变`analogWrite`函数的值,可以调整电机的速度[^1]。
#### 获取MAC地址
如果需要远程控制小车,可以通过ESP-NOW协议实现。首先需要获取ESP32的MAC地址。以下是获取MAC地址的代码[^2]:
```cpp
#include "WiFi.h"
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_MODE_STA);
Serial.print("MAC地址为:");
Serial.println(WiFi.macAddress());
}
void loop() {}
```
运行该代码后,通过串口监视器即可获得设备的MAC地址。
#### 远程控制
为了实现远程控制,可以参考开源项目中的ESP-NOW通信示例[^2]。发送端和接收端的ESP32需要配置相同的MAC地址以建立通信。以下是一个简单的ESP-NOW通信框架:
```cpp
// 接收端代码
#include <esp_now.h>
#include <WiFi.h>
void onDataReceived(const uint8_t *mac_addr, const uint8_t *data, int data_len) {
if (data_len == 1) {
char command = (char)data[0];
Serial.printf("收到命令: %c\n", command);
if (command == 'F') { // 前进
// 控制电机前进
} else if (command == 'B') { // 后退
// 控制电机后退
} else if (command == 'S') { // 停止
// 停止电机
}
}
}
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
esp_now_register_recv_cb(onDataReceived);
}
void loop() {}
```
以上代码展示了如何通过ESP-NOW接收命令并控制小车的动作。
---
阅读全文
相关推荐


















