亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

Arduino PWM 深度解析:原理、频率选型与 analogWrite 实战

Arduino PWM 编程:原理、频率效应与核心函数实战

什么是 PWM?

PWM(脉宽调制)将直流电压转换为占空比可变的方波。一个周期 T 内,高电平持续时间 Ton 与 T 之比称为占空比。又称脉冲宽度调制技术(PDT)。现代功率开关(MOSFET、晶体管)驱动 PWM,高功率场合需精密驱动电路。

Arduino PWM 深度解析:原理、频率选型与 analogWrite 实战

为什么用 PWM 控制功率?

电阻分压也能限功率,但效率极低、发热大,大功率下电阻成本甚至超 PWM 系统。PWM 通过调节占空比高效控制平均功率,损耗极小。另一用途是信息编码:占空比携带信息(如 25% 占空比触发特定动作),兼具功率控制与通信功能。

PWM 典型应用场景

  1. 舵机角度控制(占空比决定转角)
  2. RGB LED 混色(三基色占空比独立调节)
  3. DC-DC 变换器高效限流
  4. 电机调速
  5. 正弦波调制类应用中的电压电平控制

PWM 频率选型的机械时常约束

PWM 本质是变占空比方波。频率过低 → 脉冲间隔长 → 电机转速波动大、抖动、无法平滑运行。选型须考虑被控对象的机械时间常数:频率需远大于机械响应带宽,保证平滑。电机调速典型频率 1~20 kHz(超声频段,避免啸叫)。

Arduino PWM 硬件资源与核心函数

UNO 板载 6 个 PWM 引脚(D3,5,6,9,10,11),标记“~”。无需手写定时器代码,直接调用 analogWrite(pin, value),value 取 0~255 对应 0%~100% 占空比。

Arduino PWM 深度解析:原理、频率选型与 analogWrite 实战

实战:LED 呼吸灯渐变

电路:PWM 引脚(如 D3)经 120 Ω 电阻接 LED 再接地。

int ledPin = 3;
int brightness = 0;
int fadeAmount = 5;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  analogWrite(ledPin, brightness);
  brightness += fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount; // 反向
  }
  delay(30);
}
Arduino PWM 深度解析:原理、频率选型与 analogWrite 实战

要点:必须用 PWM 引脚 + analogWrite();digitalWrite 仅能全亮/全灭。

延伸阅读

工业技术

  1. Arduino UNO 驱动 16x2 LCD 实现动画与小游戏
  2. Python 3 控制 Arduino UNO - 串口通信点亮内置 LED 入门教程
  3. 使用 Arduino Nano 和 RDA8057M 制作紧凑型 FM 收音机
  4. 手把手教你打造树莓派 3 + Arduino 笔记本电脑
  5. 高效 Arduino PWM 读取 & RC 接收机解码库:内置失控保护
  6. Arduino Uno 作 ISP 烧录 ATtiny85:低成本多点传感方案实战
  7. 制造日:演变、影响与行业展示
  8. EAM 与 CMMS:核心功能差异与选型决策指南
  9. 智能制造:定义、优势与实施路径
  10. 制造业物联网:核心概念、应用场景与实战案例
  11. Arduino传感器:类型、应用与实战项目
  12. C 语言用户自定义函数四大模式对比:参数与返回值的设计权衡