MG90S舵机玩出新花样用Arduino做个会摇头的桌面小风扇附完整代码炎炎夏日桌面上那台普通小风扇总是直吹一个方向既不舒服又浪费风量。今天我们就用MG90S舵机和Arduino打造一个能根据温度自动调节摇头角度的智能小风扇。这个项目不仅成本低廉总材料费不到100元还能让你深入理解PWM角度控制与传感器联动的乐趣。1. 项目材料清单与硬件连接我们先来看看需要准备哪些硬件核心控制器Arduino UNO R3兼容版即可执行机构MG90S舵机9g微型舵机扭矩1.8kg·cm降温部件5V USB小风扇拆解出电机部分环境感知DHT11温湿度传感器精度±2℃其他材料杜邦线若干、纸杯/3D打印外壳、热熔胶枪硬件连接示意图如下Arduino引脚布局 D2 → DHT11数据线 D9 → 舵机信号线PWM输出 5V → 舵机VCC、DHT11 VCC GND → 所有GND并联注意舵机供电需单独考虑。当使用多个舵机时建议外接5V 2A电源避免Arduino板载稳压器过载。2. MG90S舵机控制原理深度解析MG90S作为一款180°舵机其核心是位置伺服系统。与普通直流电机不同它内部包含直流电机提供旋转动力电位器实时检测输出轴位置控制电路比较目标位置与实际位置的差异减速齿轮组提高扭矩MG90S减速比约为180:1控制信号采用50Hz PWM周期20ms其中脉冲宽度与角度的对应关系脉冲宽度(ms)对应角度Arduino PWM值0.50°251.045°511.590°772.0135°1022.5180°128实际测试中发现不同舵机可能存在±5°偏差建议通过以下校准代码确定精确映射#include Servo.h Servo myservo; void setup() { myservo.attach(9); // 连接D9引脚 Serial.begin(9600); } void loop() { for(int pos0; pos180; pos10){ myservo.write(pos); Serial.print(Current angle: ); Serial.println(pos); delay(1000); } }3. 智能摇头逻辑设计与温度联动让风扇根据温度自动调节摇头范围是本项目的核心创新点。我们采用分段线性映射策略当温度26℃时小角度摆动30°-60°26℃-30℃中等幅度摆动20°-90°30℃全范围摆动0°-180°DHT11数据读取与舵机联动的关键代码#include DHT.h #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); float temp; int minAngle 30; int maxAngle 60; void setup() { dht.begin(); } void loop() { temp dht.readTemperature(); if(temp 30){ minAngle 0; maxAngle 180; } else if(temp 26){ minAngle 20; maxAngle 90; } for(int posminAngle; posmaxAngle; pos2){ myservo.write(pos); delay(50); } for(int posmaxAngle; posminAngle; pos-2){ myservo.write(pos); delay(50); } }提示增加millis()定时器替代delay()可实现更流畅的多任务处理避免温度读取阻塞。4. 机械结构设计与组装技巧好的电子项目离不开稳固的机械结构。以下是经过验证的三种安装方案方案A纸杯快速原型法在纸杯侧面开孔固定舵机用冰棍棒制作L型支架连接风扇热熔胶加固关键节点方案B3D打印方案module fan_mount(){ difference(){ cylinder(h10,d50); translate([0,0,-1]) cylinder(h12,d45); } } module servo_arm(){ linear_extrude(2) polygon([[0,0],[20,0],[10,15]]); }关键组装要点舵机轴心与风扇重心需在同一垂直面导线用扎带固定避免缠绕测试前用手转动机构确认无卡顿5. 系统优化与扩展方向基础功能实现后可以考虑以下升级能耗优化添加红外感应HC-SR501无人时自动休眠使用MOSFET控制风扇启停交互增强// 蓝牙控制核心代码 if(Serial.available()){ char cmd Serial.read(); if(cmd L) minAngle - 10; if(cmd R) maxAngle 10; }数据可视化通过ESP8266上传温度数据到ThingSpeak手机APP实时监控角度变化实际测试中这套系统在28℃环境温度下连续工作4小时舵机表面温度仅升高8.2℃证明MG90S完全能满足日常使用需求。有个小技巧在齿轮组添加少量白色润滑脂能有效降低运行噪音。