# Need help on DC Fan speed regulation with esp32

**URL:** <https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317>\
**Category:** General Guidance\
**Created:** [September 15, 2025, 5:05am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317 "2025-09-15T05:05:07Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 5:05am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/1 "2025-09-15T05:05:07Z")

</div>

I’m working on a home automation project with esp32 dev module. Everything works fine except fan regulator which is a 12vdc 18w solar fan. The fan is making extreme buzzing noise on low speed and my esp32 and mic 4422 ic heated up immediately. I’ve set frequency at 25khz and used 4422ic to drive irfz44n mosfet.

 ![Screenshot 2025-09-15 110241](https://europe1.discourse-cdn.com/arduino/original/4X/8/d/6/8d6150631c6504a37d73de34a0facfb23b6512e0.png)

---

<div class="post-metadata">

**Author:** ![hammy](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/hammy/32/238813_2.png) [@hammy](https://forum.arduino.cc/u/hammy)\
**Post date:** [September 15, 2025, 6:10am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/4 "2025-09-15T06:10:45Z")

</div>

You have the fan driven from a 5v output regulator and there is no indication of power supply to the esp32 .  
If that board to passing through power to the circuit it will get hot, it’s not designed to do that . The 4422 is not needed and ….  
There are so many things wrong with this circuit - I’d suggest you have a google on how to drive a fan from an Arduino board .

Sorry !

---

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 7:20am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/5 "2025-09-15T07:20:22Z")

</div>

To clarify things, the power source is a 12v dc battery and I’ve used dc to dc buck converter to convert 12v to 5v and power up esp32. I’ve used irfz44n mosfet to run the fan and as it’s not a logic level mosfet I’ve to use 4422 ic to provide 12v gate drive voltage, 4422ic convert 3.3v pwm signal of esp32 to 12v signal in order to drive irfz44n mosfet.

---

<div class="post-metadata">

**Author:** ![tigger](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tigger/32/1104210_2.png) [@tigger](https://forum.arduino.cc/u/tigger)\
**Post date:** [September 15, 2025, 9:15am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/6 "2025-09-15T09:15:44Z")

</div>

This sort of arrangement, microcontroller, MOSFET driver, MOSFET usually works fine.  
I use it to control the running speed of a 160-V DC sewing machine motor at about 80-W power.  
The Nano doing the controlling has 10k for the PMW frequency.  
There is no heat whatsoever and the MOSFET has no heat sinking as it never gets warm.  
It's crucial to fully understand the driver requirements and it's need to deliver current efficiently.  
You don't have to use a driver, but they are designed for the job.  
All the above applies to a simple series wound universal motor.  
You might need to check what sort of motor you are using.  
I use 12-V DC for the Nano and driver. The driver works a lot better on 12-V than 5-V.

Edit

Forgot to add

The motor runs normally, no buzzing, speed control from crawl, maybe 100-rpm, to full speed (not known but plenty fast enough). Even at full speed, everything remains cool, motor warms, but that's normal.

---

<div class="post-metadata">

**Author:** ![TomGeorge](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tomgeorge/32/215261_2.png) [@TomGeorge](https://forum.arduino.cc/u/TomGeorge)\
**Post date:** [September 15, 2025, 9:44am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/7 "2025-09-15T09:44:23Z")

</div>

Hi, @zghost

> [@zghost](#):
>
> 12vdc 18w solar fan

Can you please post an image of the fan?  
Is it a DC motor fan, or a BLDC motor fan?

Can you please post some images of you project?  
So we can see your component layout.

> [@zghost](#):
>
> The fan is making extreme buzzing noise on low speed and my esp32 and mic 4422 ic heated up immediately.

If you run your project at that speed level with the fan disconnected, do those components get hot?

Tom.... 😃 👍 ☕ 🇦🇺

---

<div class="post-metadata">

**Author:** ![TomGeorge](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tomgeorge/32/215261_2.png) [@TomGeorge](https://forum.arduino.cc/u/TomGeorge)\
**Post date:** [September 15, 2025, 10:11am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/8 "2025-09-15T10:11:33Z")

</div>

Hi, @zghost

This circuit layout may help.

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/d/3/3/d3302a09c53f9676292f75bde6279e76a380215e.png)

Tom.... 😃 👍 ☕ 🇦🇺

---

<div class="post-metadata">

**Author:** ![JCA34F](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jca34f/32/340148_2.png) [@JCA34F](https://forum.arduino.cc/u/JCA34F)\
**Post date:** [September 15, 2025, 11:19am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/9 "2025-09-15T11:19:55Z")

</div>

The IRFZ44N source terminal should be connected directly to 12V - (negative), not through a shared ground. A BLDC motor may not work well (or at all) with 25kHz PWM. What PWM value (in %) is "low" speed?

---

<div class="post-metadata">

**Author:** ![JCA34F](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jca34f/32/340148_2.png) [@JCA34F](https://forum.arduino.cc/u/JCA34F)\
**Post date:** [September 15, 2025, 11:33am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/10 "2025-09-15T11:33:58Z")

</div>

> [@zghost](#):
>
> a 12vdc 18w solar fan.

Post a link to the fan's datasheet or, at least, it's brand name and _exact_ part number.

---

<div class="post-metadata">

**Author:** ![tigger](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tigger/32/1104210_2.png) [@tigger](https://forum.arduino.cc/u/tigger)\
**Post date:** [September 15, 2025, 11:36am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/11 "2025-09-15T11:36:13Z")

</div>

Might need additional caps on the TC4422.  
Without looking, I think I have a high value cap on the output side.

---

<div class="post-metadata">

**Author:** ![TomGeorge](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tomgeorge/32/215261_2.png) [@TomGeorge](https://forum.arduino.cc/u/TomGeorge)\
**Post date:** [September 15, 2025, 11:39am UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/12 "2025-09-15T11:39:20Z")

</div>

That schematic is @zghost circuit redrawn.

Tom.... 😃 👍 ☕ 🇦🇺

---

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 4:43pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/14 "2025-09-15T16:43:20Z")

</div>

> [@TomGeorge](#):
>
> That schematic is @zghost circuit redrawn.

Thanks a lot bro, I messed things up on autocad…did u use tinycad?

---

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 4:54pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/15 "2025-09-15T16:54:41Z")

</div>

fan starting extreme noise below 70.

---

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 4:55pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/16 "2025-09-15T16:55:12Z")

</div>

> **[SSTF-1216](https://safebdes.com/solar-table-fan/sstf-1216)**

---

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 5:08pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/17 "2025-09-15T17:08:43Z")

</div>

> [@TomGeorge](#):
>
> Can you please post an image of the fan?  
> Is it a DC motor fan, or a BLDC motor fan?
> 
> Can you please post some images of you project?  
> So we can see your component layout.

This is the fan

> **[SSTF-1216](https://safebdes.com/solar-table-fan/sstf-1216)**

 ![IMG_20250915_230703](https://europe1.discourse-cdn.com/arduino/original/4X/8/c/e/8ce943f9aa8850b08e7f95621ba28b0ac74fc383.jpeg)

---

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 5:17pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/18 "2025-09-15T17:17:28Z")

</div>

> [@tigger](#):
>
> I use it to control the running speed of a 160-V DC sewing machine motor at about 80-W power.  
> The Nano doing the controlling has 10k for the PMW frequency.  
> There is no heat whatsoever and the MOSFET has no heat sinking as it never gets warm.

Can you please share your circuit drawing and components. It will be very helpfull for me.

---

<div class="post-metadata">

**Author:** ![Paul\_KD7HB](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/paul_kd7hb/32/1127958_2.png) [@Paul\_KD7HB](https://forum.arduino.cc/u/Paul_KD7HB)\
**Post date:** [September 15, 2025, 5:25pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/19 "2025-09-15T17:25:15Z")

</div>

The fan specs give a 1250 RPM, which is not possible with a regular old brushed DC motor. So the motor has built-in electronics to monitor and control the RPM.

---

<div class="post-metadata">

**Author:** ![zghost](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zghost/32/1126983_2.png) [@zghost](https://forum.arduino.cc/u/zghost)\
**Post date:** [September 15, 2025, 5:29pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/20 "2025-09-15T17:29:21Z")

</div>

> [@Paul\_KD7HB](#):
>
> The fan specs give a 1250 RPM, which is not possible with a regular old brushed DC motor. So the motor has built-in electronics to monitor and control the RPM

you are right, it has build in electronics and speed control, now whats the solution?

---

<div class="post-metadata">

**Author:** ![tigger](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tigger/32/1104210_2.png) [@tigger](https://forum.arduino.cc/u/tigger)\
**Post date:** [September 15, 2025, 6:03pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/21 "2025-09-15T18:03:38Z")

</div>

Use another motor.

---

<div class="post-metadata">

**Author:** ![tigger](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tigger/32/1104210_2.png) [@tigger](https://forum.arduino.cc/u/tigger)\
**Post date:** [September 15, 2025, 6:27pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/22 "2025-09-15T18:27:29Z")

</div>

I don't have time for that.

It's quite simple. Three main components.

Nano takes care of the PWM signal.  
The driver chip provides the interface between the Nano and the third component, the MOSFET.

You need to understand how each part works.  
There's plenty of information on using Arduino for PWM operation.

For the driver, read the datasheet or look for online tutorials. Your circuit has some important components missing. You need to protect the MOSFET as well.

As you have already found out, stringing together some items like a brushless motor isn't a good idea.

You can master the PWM route, but you start with the motor and the reasons for using particular types, brushless, DC permanent magnet etc., then design a circuit to use it.

The motor I am using is a universal, series wound type, designed for 240-V AC/DC supply, runs very nicely using a rectified AC mains supply.

It might be worth spending a day just getting PWM to work with an LED and progress from there.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [March 14, 2026, 6:27pm UTC](https://forum.arduino.cc/t/need-help-on-dc-fan-speed-regulation-with-esp32/1406317/23 "2026-03-14T18:27:54Z")

</div>

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
