Skip to content

ESP32 控制舵机

接线示意

用 ESP32 的 GPIO4 输出 50Hz PWM,驱动舵机在 0° → 90° → 180° → 90° → 0° 之间循环摆动。可先在 Wokwi 在线仿真,再上真机。

在线仿真

  1. 打开 https://wokwi.com/
  2. My projectsNew project → 选择 ESP32MicroPython
  3. 将下方 main.pydiagram.json 分别粘贴到对应文件
  4. 点击 Start 运行,观察舵机转动

main.py

python
from machine import PWM, Pin
import time

# 信号脚 GPIO4,舵机标准频率 50Hz
servo = PWM(Pin(4), freq=50)

while True:
    servo.duty(25)    # 约 0°
    time.sleep(1)
    servo.duty(75)    # 约 90°
    time.sleep(1)
    servo.duty(125)   # 约 180°
    time.sleep(1)
    servo.duty(75)    # 回到 90°
    time.sleep(1)
    servo.duty(25)    # 回到 0°
    time.sleep(1)

diagram.json

json
{
  "version": 1,
  "author": "",
  "editor": "wokwi",
  "parts": [
    { "type": "board-esp32-devkit-c-v4", "id": "esp", "top": 0, "left": 0, "attrs": {} },
    { "type": "wokwi-servo", "id": "servo", "top": 74.8, "left": 201.6, "attrs": {} }
  ],
  "connections": [
    [ "servo:V+", "esp:5V", "red", [ "v0.1", "h-230.4", "v67.2" ] ],
    [ "servo:GND", "esp:GND.1", "#8f4814", [ "h-220.8", "v28.8" ] ],
    [ "servo:PWM", "esp:4", "orange", [ "h0", "v9.8" ] ]
  ],
  "dependencies": {}
}

接线说明

常见三线舵机(如 SG90)接线如下:

ESP32舵机说明
5VV+ / VCC(红)供电
GNDGND(棕/黑)共地
GPIO4PWM / Signal(橙/黄)控制信号

仿真可直接用板载 5V。真机若多颗舵机或堵转抖动,建议外接 5V 电源,并与 ESP32 共地