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

Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试

元件与物料

元件数量备注
12V 直流轴流风扇 (4 针 PWM)1需确认控制引脚颜色与频率范围
Arduino UNO1主控板
USB-A 转 Mini-USB 线1供电与编程
杜邦线 (公对公)1 包连接用

软件与在线服务

项目简介

本项目演示如何使用 Arduino Uno 精确控制 4 针 PWM 风扇。通过定时器 1 的相位修正 PWM 模式 (模式 10),在引脚 9 (OC1A) 和引脚 10 (ICR1) 输出 25kHz PWM 信号,占空比可调。频率范围可扩展至 125Hz–8MHz。调试过程中使用手持示波器观察波形,确保频率与占空比准确。

Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试
Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试

重要提示:

代码

const byte OC1A_PIN = 9;
const byte OC1B_PIN = 10;
const word PWM_FREQ_HZ = 25000; // 目标频率 25kHz
const word TCNT1_TOP = 16000000 / (2 * PWM_FREQ_HZ);

void setup() {
  pinMode(OC1A_PIN, OUTPUT);
  TCCR1A = 0; TCCR1B = 0; TCNT1 = 0;
  // COM1A=10 (上升沿清零/下降沿置位), WGM=1010 (相位修正 PWM), CS=001 (无分频)
  TCCR1A |= (1 << COM1A1) | (1 << WGM11);
  TCCR1B |= (1 << WGM13) | (1 << CS10);
  ICR1 = TCNT1_TOP;
}

void loop() {
  setPwmDuty(0);   delay(5000);
  setPwmDuty(25);  delay(5000);
  // setPwmDuty(50); delay(20000);
  // setPwmDuty(75); delay(20000);
  // setPwmDuty(100); delay(20000);
}

void setPwmDuty(byte duty) {
  OCR1A = (word)(duty * TCNT1_TOP) / 100;
}

原理图

Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试

制造工艺

  1. Arduino Mega 按键 PWM 调光:三阶段渐变 LED 实战教程
  2. 用 Alexa 控制吊扇:分步指南
  3. 自制 Arduino 伊斯兰祷告时间实时时钟
  4. 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
  5. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  6. Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
  7. Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
  8. Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
  9. 用 Arduino Uno 和 1Sheeld 构建 4x4x4 LED 立方体 - 互动音乐可视化项目
  10. ThimbleKrox:基于 Arduino Micro 与 MPU-6050 的指戴式鼠标控制器
  11. DIY Arduino 蟑螂控制系统 —— 30 美元以内自制指南
  12. 使用 Arduino Uno 和蓝牙实现遥控小车:分步指南