The first part of the tutorial looks inside of a Brushless DC Motor, or, BLDC. Then I show a discrete transistor circuit that can drive one. Of course, you’ll need a Microcontroller like an Arduino to drive it! Lastly, I briefly talk about an ESC. Overall, a BLDC is better than a Brushed DC Motor (talked about those on #20) because: There are no brushes to wear out No sparks when the motor spins You…

A question came up on IRC regarding how to PWM a 3-pin PC fan with an Arduino using analogWrite(). Controlling the fan was seemingly straightforward. The problem was that the hall effect sensor, or TACH signal, was incredibly noisy. The noise made it impossible to measure the fan’s rotation. Working through the question, I found three issues to tackle:

  1. You need to use a PNP transistor
  2. Filter capacitors help
  3. Create a non-blocking RPM measurement (with millis())

This post addresses all three issues regarding how to PWM a 3-pin PC fan with an Arduino.

How a Brushed DC Motor works and how to use them This Addohms Electronics Motor Tutorial goes into the third dimension. Using a 3D model, we show what makes a brushed DC motor, well, a “brushed motor.” (Hint: It’s the brushes!) Then, as usual, we break down two simple ways to control them with a microcontroller like the Arduino. You can use a single BJT Transistor (remember those from #10?), build a discrete H-Bridge to go…