Brushless DC motor control with Arduino and L6234 driver

In this blog there are some posts show how to control brushless DC motors (sensored and sensorless BLDC motors) using Arduino (project links are below). This post shows how to control a PC CD-ROM (or DVD-ROM) drive sensorless BLDC motor using Arduino UNO board and L6234 three phase motor driver. This BLDC motor is the spindle motor of the CD-ROM driver and I chose it because it doesn’t consume high power which can be easily driven by the L6234 driver.

Related Projects:
The first link contains more details about this project.
Sensorless BLDC motor control with Arduino – DIY ESC
Brushless DC motor controller using Arduino and IR2101
CD-ROM Sensored BLDC motor control with Arduino

About L6234 three phase motor driver:
The L6234 is a DMOSs triple half-bridge driver with input supply voltage up 52V and output current of
5A. It can be used in a very wide range of applications.
It has been realized in Multipower BCD60II technology which allows the combination of isolated DMOS
transistors with CMOS and Bipolar circuits on the same chip. It is available in Power DIP 20 (16+2+2)
and in Power SO 20 packages.
All the inputs are TTL/CMOS compatible and each half bridge can be driven by its own dedicated input
and enable.
The DMOS structure has an intrinsic free wheeling body diode so the use of external diodes, which are
necessary in the bipolar configuration, can be avoided. The DMOS structure allows a very low quiescent
current of 6.5 mA typ. at Vs=42V , irrespective of the load.

Block diagram:

L6234 Block diagram

L6234 Pin configuration:
The L6234 chip is available in 20 pin PowerDIP package (16+2+2) and in PowerSO20, each package has its pin configuration as shown below:

l6234 bldc motor driver pinout

The L6234 driver has 3 outputs: OUT1, OUT2 and OUT3. Each output is controlled with 2 pins: input (IN) and enable (EN), for example OUT1 is controlled with IN1 and EN1. The figure below shows the control logic for each half-bridge:

Hardware required:

  • Arduino board (UNO, NANO …)
  • CD-ROM brushless dc motor
  • L6234 three phase motor driver  —  datasheet
  • 6 x 33k ohm resistor
  • 3 x 10k ohm resistor
  • 4 x 1 ohm resistor (with 2 W or higher)
  • 2 x 1N4148 diode
  • 100 uF electrolytic capacitor (with 16V or higher)
  • 1 uF electrolytic capacitor (with 16V or higher)
  • 220 nF (0.22 uF) ceramic capacitor
  • 100 nF (0.1 uF) ceramic capacitor
  • 10  nF (0.01 uF) ceramic capacitor
  • 2 x push-button
  • 12V source
  • Breadboard
  • Jumper wires

Brushless DC motor control with Arduino and L6234 circuit:
Project circuit diagram is shown below.

Arduino brushless motor L6234 driver chip BLDC motor control

(All grounded terminals are connected together)

The speed of the brushless motor is controlled with two push buttons connected to Arduino A0 and A1 pins.

Arduino Code:
Project code is below, for more information about the code see the first related project above.

Brushless DC motor control with Arduino and L6234 video:
The small video below shows my prototype hardware circuit result.

L6234 datasheet


  1. I am trying to run a quadcopter motor using some sort of driver like above mentioned L6234 ,but I think it’s underrated for that purpose ,can someone suggest me which driver (MOSFET integrated) I can use to run a quadcopter sensorless BLDC rc motor smoothly ?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.