An introduction to Brushless DC Motors (BLDC) and how to control them on an Arduino
control them on an Arduino We have always enjoyed building things and getting them to work as we wanted. It would definitely be an anxiety pump for hobbyists and hardware tinkerers to bui…

Know the mission before touching a wire.
Understand what you are making, prepare the right tools, and make the workbench safe.
Project details
An introduction to Brushless DC Motors (BLDC) and how to control them on an Arduino is a arduino project. control them on an Arduino We have always enjoyed building things and getting them to work as we wanted. It would definitely be an anxiety pump for hobbyists and hardware tinkerers to bui…
- Source pages
- 891-897
- Named parts
- 4
- Build goal
- Working, tested prototype
Tools you need
- Digital multimeter
- Wire stripper and side cutters
- Soldering iron with a fine tip
- Current-limited bench supply
- Computer with a data-capable USB cable
Use eye protection, good lighting, and a clean insulated surface throughout the build.
Safety precautions
- Disconnect every power source before changing a connection.
- Check component polarity, pinout, and supply voltage twice.
- Use a current limit for the first power-up.
- This project may involve hazardous voltage. Work only with qualified supervision and proper isolation.
Gather, identify, and understand every part.
Use the standardized inventory, then open What's this? to learn each part's role, advantages, limitations, handling, and specifications.
What's this?Image, role, pros, cons, handling & specifications

A2212/13T BLDC Motor
An output component turns an electrical control signal into light, sound, motion, switching, or displayed information.
What it does hereIt presents the circuit result or acts on the physical world.
Buy / compare this part ↗Advantages
- Makes system state visible
- Can be tested separately
- Supports clear troubleshooting
Limitations
- Loads may exceed controller current
- Polarity or driver direction can matter
- Inductive loads create voltage spikes
Handling
- Use the documented driver stage
- Check polarity and load current
- Add flyback protection for inductive loads
Specifications to verify
- Use the exact model, value, package, and rating listed for A2212/13T BLDC Motor; similar-looking parts are not always interchangeable.
- Confirm voltage, current, polarity, interface, driver requirements, and duty cycle.
What's this?Image, role, pros, cons, handling & specifications

DC motor
An output component turns an electrical control signal into light, sound, motion, switching, or displayed information.
What it does hereIt presents the circuit result or acts on the physical world.
Buy / compare this part ↗Advantages
- Makes system state visible
- Can be tested separately
- Supports clear troubleshooting
Limitations
- Loads may exceed controller current
- Polarity or driver direction can matter
- Inductive loads create voltage spikes
Handling
- Use the documented driver stage
- Check polarity and load current
- Add flyback protection for inductive loads
Specifications to verify
- Use the exact model, value, package, and rating listed for DC motor; similar-looking parts are not always interchangeable.
- Confirm voltage, current, polarity, interface, driver requirements, and duty cycle.
What's this?Image, role, pros, cons, handling & specifications

Power supply
A power component supplies, converts, stores, or regulates energy for the project.
What it does hereIt must provide the documented voltage, polarity, isolation, and sufficient current safely.
Buy / compare this part ↗Advantages
- Stable power improves reliability
- Current limiting protects first tests
- Regulation reduces resets and noise
Limitations
- Wrong polarity can cause immediate damage
- Underrated parts overheat
- Mains circuits require qualified supervision
Handling
- Measure output before connection
- Use a fuse or current limit
- Insulate exposed conductors
Specifications to verify
- Use the exact model, value, package, and rating listed for Power supply; similar-looking parts are not always interchangeable.
- Confirm input/output voltage, current, polarity, connector, isolation, and thermal rating.
What's this?Image, role, pros, cons, handling & specifications

Potentiometer
A named project component whose exact role is defined by the source circuit and build guide.
What it does hereIt performs a documented electrical, control, interface, or construction function in this project.
Buy / compare this part ↗Advantages
- Selected for this project
- Can be checked independently
- Supports modular troubleshooting
Limitations
- Substitutes may differ
- Generic names can hide variants
- Pinouts and ratings vary
Handling
- Compare the received part with the source
- Keep it labelled
- Do not force connectors or adjusters
Specifications to verify
- Use the exact model, value, package, and rating listed for Potentiometer; similar-looking parts are not always interchangeable.
- Confirm dimensions, ratings, connection method, polarity, and environmental limits.
Connect one verified path at a time.
Explore the named components and standardized signal flow, then use Source Check to verify exact physical pins, values, and topology before applying power.
Trace this circuit.
An introduction to Brushless DC Motors (BLDC) and how to control them on an Arduino: interactive parts, standardized terminals, responsive anchored wires, student explanations, and the original circuit reference in one shared system.
Trace before wiring
Follow power, ground, inputs, processing, and outputs in that order. Never guess a pin from package shape alone.
Connect with power off
Make short, labelled connections and share a common ground only where the schematic requires it.
Inspect every joint
Check continuity, polarity, adjacent shorts, and loose connections before the first power-up.
Open all source diagrams and build views 4 visuals




Confirm the hardware-only control path.
This project does not include firmware in the source. The circuit itself provides the required behaviour.
How to connect
- Match every controller label to the circuit view and source pin map.
- Join grounds before signal wires when separate low-voltage supplies are used.
- Keep motors, relays, pumps, and other loads on a suitable driver and external supply.
Common mistakes
Reversed VCC/GND, board-label versus GPIO-number confusion, missing common ground, and charge-only USB cables.
Troubleshoot
Disconnect loads, continuity-test one path at a time, then test with a current limit.
Software preparation
No IDE, board package, library, or firmware upload is required for this project.
If you add a programmable controller as an extension, document its pin map separately.
How to upload code
The original design is implemented entirely in hardware, so proceed after verifying the circuit and supply.
Assemble, deploy, test, and troubleshoot.
Use the complete source notes in build order, then pass the final checks before calling the project finished.
Build in functional stages
- Power and regulation
- Controller or processing stage
- Inputs and sensors
- Outputs and loads
- Enclosure and strain relief
Power up safely
- Inspect unpowered continuity first
- Apply the lowest safe current limit
- Measure supply rails before signals
- Add one load at a time
- Record expected and actual results
Work from simple to complex
- Confirm power, ground, polarity, and orientation
- Compare each pin with the source
- Test inputs separately from outputs
- Replace only one variable at a time
- Power off before every correction
Follow the documented instructions.
These notes come from this project's source and remain in their original order.
Project overview
Project build notecontrol them on an Arduino We have always enjoyed building things and getting them to work as we wanted. It would definitely be an anxiety pump for hobbyists and hardware tinkerers to build something that could fly. Absolutely! Among the various aircraft I refer to are gliders, helicopters, planes, and primarily multi-copter aircraft. Due to the community support available online today, it has become very easy to build one on your own. The BLDC motor is a feature common to all things that fly, but what is it? What is the purpose of it in order to fly? How does it differ from other software? Is there a way you can interface your motor with your controller and buy the right motor? What are ESCs and why do we need them? These are just a few questions you can get answered in this tutorial.
The main purpose of this tutorial is to control the speed of a 2112/13T sensorless BLDC outrunner motor (commonly found in drones), using an ESC (Electronic Speed Controller).
Materials Required
Project build noteA2212/13T BLDC Motor
ESC (20A)
Project build notePower Source (12V 20A) Arduino Potentiometer Understanding BLDC Motors BLDC motors operate smoothly, which makes them common in ceiling fans and electric vehicles. BLDC motors, on the other hand, are equipped with three wires, thus forming three phases. Hold on... what!!?? BLDC motors still operate by using pulsed waves, though they are classified as DC motors. The DC voltage from the battery is converted into pulses by the electronic speed controller (ESC), and the motor receives the pulses via its three wires. Current can only enter and leave the motor through two phases at a given time, so that one phase powers the motor and the other phase delivers power. When the motor is in this position, the coil inside is energized, and therefore the magnet on the rotor aligns itself with the energized coil. A motor is rotated by energizing the next two wires and then turning them by the ESC. In order to function, the coils need to be energized according to their order of energization and their speed depends on its speed. The remainder of this article will discuss ESC in greater detail.
A BLDC motor can be classified in several ways, some of which are more common than others. A BLDC motor can be installed in the in-runner or out- runner: In runner BLDC motors work just like any other motor. In other words, the motor shaft rotates, but the casing is stationary. BLDC motors with outrunners are the opposite in that the coil inside remains fixed while the casing rotates along with the shaft. A major advantage to the use of out- runner motors is that the outer part of the motor (the one that rotates) turns into the tyre rim, so it is not necessary to have a coupling mechanism. A motor without runners tends to have more torque than those with in runners, which makes them a best choice for EVs and drones. Also, the one we are using here is an outrunner type. Note: For the sake of this tutorial, let's skip a different type of motor called the coreless BLDC motors, which are also used for pocket drones. They work on a completely different principle, so we'll skip it for now. Sensor-less and sensor-loaded BLDC Motors: To ensure continuous rotation of a BLDC motor, feedback must be provided. That is, the ESC must know which magnets are where and on which pole in order to power the stator appropriately. An inside hall sensor can be used to obtain this information, or the motor can also be left open to collect this information. ESC receives the information from the hall sensor about the magnet. Motors like this are used in electric vehicles and are known as sensors-based BLDC motors. Second, we can use the back EMF generated by the coils when the magnets cross over them. This method does not require any additional hardware or wires; the phase wire itself is a feedback mechanism for measuring back EMF. We use this method in our motors, as well as in drones and other flying projects. Why do Drones and other multi-copters use BLDC Motors?
Drones come in many forms, from quadcopters to helicopters and gliders, all of which have one thing in common: hardware. What are BLDC motors? Why do they exist? Compared to DC Motors, what is the purpose of using BLDC motors, which are a bit more expensive? One important reason for this is the very high torque generated by these motors, which is important for gaining thrust or losing thrust rapidly in order to launch or land a drone. As well as having these motors as out runners, they are offered as out runners as well, enhancing their thrust. Our drone will stay steady in mid-air due to the smooth vibration less operation of the BLDC motor. BLDC motors have a powerful to light weight ratio. In order for drones to perform well, they need motors that are both powerful (high speed and torque) and lightweight. In order to match the performance and torque of a BLDC motor with a DC motor, the motor would have to be twice as heavy. Why do we need an ESC and what is its function? In order to generate the phases for BLDC motors, DC voltage from the battery has to be converted to pulses using a controller. The term Electronic Speed Controller refers to this device. Controllers have the role of energizing the phase wires so that the BLDC motors rotate. To do this, the coil is
energized when the magnet crosses the wire and the back EMF is detected. It is beyond the scope of this tutorial to investigate all the hardware brilliance found in the ESC. The speed controller and the battery eliminator are a few other features. Speed control using PWM: The ESC can read the PWM signal connected to the orange wire to control the speed of the BLDC motor. This motor functions very much like servo motors, the pulse width modulation signal provides a 20ms period, and the duty cycle may be varied to vary the motor's speed. Our Arduino program can utilize the same servo library to control the position since the same logic applies to the servo motors. Here's how you can use Servo with Arduino. Battery Elimination Circuit: Almost all ESCs feature a Battery Elimination Circuit (BEC). This circuit eliminates the need for a separate battery for the microcontroller; it will provide a regulated +5V to the Arduino, so there is no need for a separate power supply. It is normal for this voltage to be regulated by one of a number of circuits, and on cheap ESCs, you'll usually hear linear regulation, but there are also ones that use switching circuits.
Every ESC comes with a firmware program installed by the manufacturer. In terms of ESC firmware, traditional firmware, Simon-K, and BL-Heli are some of the more popular options. As we mentioned earlier, this firmware can also be customized by users, but we won't go into too much detail about this in this tutorial. Arduino BLDC Motor Control Circuit Diagram BLDC motors can be easily connected to Arduinos via a straightforward interface. A minimum 12V and 5A source of power is required for the ESC. My RPS has been used in this tutorial, but you can also use a Li-Po battery because it's just as powerful. Connect the three phase wires of the ESC to the three phase wires of the motors, there is no specific order in which the wires should be connected, you can connect them in any order. Controlling BLDC Motor with Arduino
The circuit diagram should be followed and the code uploaded to the Arduino. The ESC should be powered up. Make sure you mount the BLDC motors securely, or they will jump around when they are rotating. In the event that the throttle signal is not within the threshold limits within a few seconds after you start your setup, your ESC will make a welcoming tone and keep beeping. The beeping tone will stop when the POT from zero is gradually increased. The motor will start spinning more slowly as you increase the PWM signal beyond the lower threshold value. Once the voltage reaches the upper threshold limit, the motor will stop due to a lack of power. The more voltage you provide, the more speed you will see. Once you have completed the process, you can repeat it.
You built An introduction to Brushless DC Motors (BLDC) and how to control them on an Arduino.
You followed the full workflow from understanding the mission to testing the finished project. That is a real engineering achievement - well done.
Browse all 500 projects