ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

零基础学ESP32:舵机控制——让设备精准转动到指定角度!

2026/9/24 17:28:17 拓冰建站 浏览量
零基础学ESP32:舵机控制——让设备精准转动到指定角度! 前面我们学了控制LED亮灭、控制继电器开关、让蜂鸣器唱歌——但这些都只是开和关两种状态。今天要学一个能精准控制角度的设备舵机。航模飞机的机翼控制、小车车轮的转向、家用电器的开关、机器人关节的转动……这些需要转到某个精确角度的场景背后都是舵机在工作。今天这节课我们就用ESP32 MG90S舵机实现0°、90°、180°的精准角度控制第一步找到课程看看成品效果打开逗脑IDE点击顶部“文档”在“课程” → “ESP32 MicroPython”分类下找到舵机这节课。打开课件你会看到本节课的最终效果舵机的摆臂在程序控制下精准地转动到0°、90°、180°再转回来动作干脆利落。第二步舵机是什么用大白话说舵机就是能够转动指定角度的设备。你给它一个指令转到90度它就精准地转到90度你说转到180度它就转到180度。不像普通电机只会一直转舵机是可以控制角度的。三根线线色功能说明黑褐色GND电源地红色VCC电源正极5V橙色信号线接收控制信号第三步舵机能做什么舵机的应用场景非常广泛应用场景用途航模飞机控制机翼、尾舵的偏转角度智能小车控制前轮转向机器人关节控制机械臂、机械腿的角度家用电器控制开关、阀门智能窗帘控制窗帘开合角度摄像头云台控制摄像头上下左右转动自动门锁控制锁芯旋转开锁第四步怎么控制它——PWM信号ESP32该发送什么样的数据给舵机的信号线呢答案PWM脉冲宽度调制信号。舵机通过识别PWM信号的脉冲宽度来判断应该转到什么角度脉冲宽度对应角度0.5ms0°1.5ms90°2.5ms180°在MicroPython中我们用duty_u16()来设置脉冲宽度。经过计算和实际验证MG90S舵机的控制参数如下角度duty_u16值0°duty_u16(1638)90°duty_u16(4915)180°duty_u16(8192) 关键参数PWM频率设为50Hz周期20ms这是舵机的标准控制频率。第五步动手接线舵机线连接ESP32说明黑褐色GNDGND电源地红色VCC3.3V电源正极橙色信号线GPIO2PWM信号输出第六步代码——转到指定角度frommachineimportPin,PWMimporttime# 创建PWM对象连接到GPIO2p2PWM(Pin(2))# 设置PWM频率为50Hz舵机标准频率p2.freq(50)# 转到0度p2.duty_u16(1638)time.sleep(1)# 转到90度p2.duty_u16(4915)time.sleep(1)# 转到180度p2.duty_u16(8192)time.sleep(1)代码解读代码作用PWM(Pin(2))创建PWM对象连接到GPIO2p2.freq(50)设置频率为50Hz舵机标准p2.duty_u16(1638)转到0°p2.duty_u16(4915)转到90°p2.duty_u16(8192)转到180° 版本要求必须使用MicroPython 1.19 及以上版本1.18版本不会有反应。具体升级方法参考环境搭建课程。第七步保存运行看舵机转动保存代码到开发板命名 servo.py点击运行按钮观察舵机先转到0°摆臂指向最左边等待1秒转到90°摆臂指向正前方等待1秒转到180°摆臂指向最右边进阶玩法让舵机来回摆动学会了基本的角度控制可以让舵机来回摆动做出更生动的效果frommachineimportPin,PWMimporttime p2PWM(Pin(2))p2.freq(50)whileTrue:# 从0°到180°fordutyinrange(1638,8192,100):p2.duty_u16(duty)time.sleep_ms(20)# 从180°到0°fordutyinrange(8192,1638,-100):p2.duty_u16(duty)time.sleep_ms(20)效果舵机像雷达一样从0°平滑扫到180°再从180°扫回0°循环往复。舵机 其他模块 更多可能组合效果舵机 超声波智能小车自动避障舵机 人体感应人靠近自动开门舵机 摇杆用摇杆实时控制舵机角度舵机 WiFi远程控制舵机转动舵机 光敏追光太阳能板全程回顾步骤操作效果找到课程文档→课程→ESP32MicroPython→舵机了解舵机原理认识硬件3根线GND、VCC、信号线知道怎么接线理解PWM脉冲宽度决定角度理解控制原理动手接线GND→GND, VCC→5V, 信号线→GPIO2硬件就位打开代码点击打开按钮代码进入编辑器保存运行CtrlS → 选择ESP32 → 运行舵机精准转动