

The 5-inch Brushless Direct Current (BLDC) Fan Motor is a highly efficient and durable motor designed for cooling applications. Unlike traditional brushed motors, this BLDC motor operates without brushes, resulting in reduced wear and tear, quieter operation, and a longer lifespan. Its compact size and high performance make it ideal for use in electronics cooling, household appliances, and industrial equipment.








| Parameter | Value |
|---|---|
| Motor Type | Brushless DC (BLDC) |
| Diameter | 5 inches |
| Operating Voltage Range | 12V to 24V DC |
| Rated Current | 0.5A to 1.2A (depending on load) |
| Power Consumption | 6W to 28W |
| Speed | 1500 to 3000 RPM (adjustable) |
| Airflow | Up to 120 CFM |
| Noise Level | < 35 dB |
| Lifespan | > 50,000 hours |
| Operating Temperature | -10°C to 70°C |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VCC | Positive power supply input (12V to 24V DC). |
| 2 | GND | Ground connection. |
| 3 | PWM Input | Pulse Width Modulation (PWM) signal input for speed control (0-100% duty). |
| 4 | Tach Output | Tachometer output for speed monitoring (provides pulses proportional to RPM). |
Below is an example of how to control the BLDC fan motor using an Arduino UNO:
// Example code to control a 5-inch BLDC fan motor using PWM on Arduino UNO
const int pwmPin = 9; // PWM output pin connected to the motor's PWM Input pin
const int tachPin = 2; // Tachometer input pin connected to the motor's Tach Output pin
volatile int tachCount = 0; // Variable to store tachometer pulse count
void setup() {
pinMode(pwmPin, OUTPUT); // Set PWM pin as output
pinMode(tachPin, INPUT_PULLUP); // Set Tach pin as input with pull-up resistor
// Attach interrupt to count tachometer pulses
attachInterrupt(digitalPinToInterrupt(tachPin), countTachPulses, FALLING);
Serial.begin(9600); // Initialize serial communication for debugging
}
void loop() {
// Set motor speed using PWM (0 to 255 corresponds to 0% to 100% duty cycle)
analogWrite(pwmPin, 128); // 50% duty cycle for medium speed
// Calculate RPM based on tachometer pulses
int rpm = calculateRPM();
Serial.print("Motor RPM: ");
Serial.println(rpm);
delay(1000); // Wait for 1 second before updating RPM
}
// Interrupt service routine to count tachometer pulses
void countTachPulses() {
tachCount++;
}
// Function to calculate RPM based on tachometer pulses
int calculateRPM() {
noInterrupts(); // Disable interrupts to read tachCount safely
int pulses = tachCount;
tachCount = 0; // Reset pulse count
interrupts(); // Re-enable interrupts
// Assuming 2 pulses per revolution, calculate RPM
return (pulses * 60) / 2;
}
analogWrite value to control the motor speed.Motor Does Not Start:
Motor Runs Erratically:
No Tachometer Output:
Overheating:
Q: Can I run the motor without a PWM signal?
Q: What is the maximum cable length for the PWM signal?
Q: Can I use this motor with a 5V power supply?
Q: How do I clean the motor?