BLDC Motor Speed Control using
Arduino
College Project Presentation
Introduction
• A Brushless DC (BLDC) motor is a type of
synchronous motor powered by DC electricity.
It offers high efficiency and reliability, making
it popular in various applications.
Working Principle of BLDC Motor
• BLDC motors use electronic commutation
based on rotor position. Hall effect sensors
detect rotor position and control the switching
of current in motor windings.
Components Required
• - BLDC Motor
• - ESC (Electronic Speed Controller)
• - Arduino Board
• - Hall Sensors (if needed)
• - Power Supply
• - PWM Signal Generation
Control Methods
• 1. Open-loop: Speed set by fixed PWM value.
• 2. Closed-loop: Uses feedback from sensors
and PID controller to adjust speed.
PWM Speed Control
• Pulse Width Modulation (PWM) is used to
control the average voltage supplied to the
motor. Higher duty cycle = higher speed.
Circuit Diagram (Overview)
• Connect ESC signal wire to Arduino PWM pin
(e.g., D9).
• Power ESC separately. Connect ground of ESC
and Arduino together.
• Motor is powered through ESC.
Arduino Code - Setup
• #include <Servo.h>
• Servo esc;
• void setup() {
• esc.attach(9);
• esc.writeMicroseconds(1000); // Min throttle
• delay(2000);
• }
Arduino Code - Loop
• void loop() {
• int speed = analogRead(A0); // Read pot
value
• speed = map(speed, 0, 1023, 1000, 2000);
• esc.writeMicroseconds(speed);
• delay(20);
• }
Applications of BLDC Motor
Control
• - Electric Vehicles
• - Drones and UAVs
• - Industrial Automation
• - Robotics
• - HVAC Systems
Conclusion
• BLDC motor speed control using Arduino is
efficient and flexible.
• Combining PWM and ESC simplifies
implementation.
• Useful in various practical and academic
projects.