For a simple 5V PWM speed controller for a 5V brushless (BLDC) fan, you’ve got a few practical, proven ways to do it depending on how “clean” and adjustable you want the control.
✅ Option 1: Easiest Working Circuit (555 Timer + MOSFET)
This is the most common DIY solution.
🔧 How it works
- A NE555 timer IC generates a PWM signal
- A logic-level MOSFET switches the fan on/off rapidly
- Duty cycle = fan speed
🔌 Components
- NE555 timer IC
- IRLZ44N (or similar logic-level MOSFET)
- 10k potentiometer (speed control)
- 1k resistor
- 100Ω resistor (gate)
- 1N4148 or 1N5819 diode (for PWM shaping)
- 0.01µF + 10µF capacitors
⚙️ Key Settings
- PWM frequency: ~20–25 kHz (important!)
- Keeps fan silent (above audible range)
- Duty cycle: 0–100%
⚠️ Important Notes
- Use a logic-level MOSFET (turns fully ON at 5V gate)
- Do NOT use low PWM frequency (<1 kHz) → fan may:
- buzz
- stall
- Most 2-wire brushless fans work fine with PWM on power line
✅ Option 2: Even Simpler (Prebuilt PWM Module)
If you don’t want to build:
Search for:
- “5V PWM motor speed controller module”
Typical chip:
- SG3525 or 555-based boards
✔ Pros:
- Plug & play
- Stable PWM frequency
- Cheap (~$2–5)
✅ Option 3: Best Control (Microcontroller PWM)
If you want precision:
Use:
- Arduino Nano
Generate PWM directly:
analogWrite(3, 128); // 50% duty cycle
Then:
- Pin → MOSFET gate
- Adjust speed in software
✔ Pros:
- Temperature-based control
- Smooth ramping
- Smart fan curves
⚠️ VERY IMPORTANT (Fan Type Check)
🧠 2-wire fan
✔ Works with PWM on power line (this circuit)
🧠 3-wire fan
- Has tach signal
- PWM still works, but less ideal
🧠 4-wire fan
- Has dedicated PWM pin
- Needs different method (25kHz PWM on control pin)
🔥 Pro Tips (Most People Miss These)
- Add 100µF capacitor across fan supply → smoother operation
- If fan doesn't start at low duty:
- briefly give 100% power (startup boost)
- Some cheap fans:
- won’t run below ~30% duty cycle (normal behavior)
✅ Quick Recommendation
If you want:
- DIY & learning → 555 + MOSFET
- Quick solution → prebuilt module
- Advanced control → Arduino

Comments
Post a Comment