Member-only story

An Arduino Nano Electronic Speed Controller (ESC) — Part 4

David Such
7 min readNov 24, 2022

--

In order to keep your BLDC motor spinning, you need to know the position of the rotor, to time the activation sequence of the coils. If you have a hall effect sensor, then this is a trivial exercise. If you don’t, then we need another method. Zero-crossing Detection is the most common approach for sensorless control.

8.0 Zero-Crossing Detection

The commutation pattern for a 3-phase BLDC motors consists of six stages (Figure 1). During each stage, two phases are being driven, and one phase is floating. In sensorless commutation we measure the BEMF voltage in the floating phase to determine rotor position. We established earlier that we can determine the rotor electrical position by detecting when the floating phase terminal voltage equals half the applied voltage. This method of determining phase drive timing is called zero-crossing detection.

Figure 1. 3-Phase BLDC Motor Commutation Pattern[1]

The six drive stages are referred to as the “120° Six Step Drive”. This forces zero current twice in each phase during a six-step period (Figure 2). For each step, one phase (aka winding) of the motor is not energised.

--

--

David Such
David Such

Written by David Such

Reefwing Software · Embedded Systems Engineer · iOS & AI Development · Robotics · Drones · Arduino · Raspberry Pi · Flight Control

No responses yet