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.

Reference:
L6234 datasheet

12 thoughts on “Brushless DC motor control with Arduino and L6234 driver”

  1. Hello,

    I recently stumbled upon this blogpost about the L6234 BLDC controller. I would like to make a small breakout board using this controller for a gimbal project I’m working on (in combination with an AS5600 magnetic position sensor). I’m relatively new to circuit board design, so I’m trying to interpret you schematic but I have a few questions:

    1. Is it correct to assume that the top part of the circuit (i.e., capacitors and diodes) are all meant to smoothen the DC voltage supply to the circuit and reduce noise?

    2. Can you explain the purpose of the wires running from the BLDC to the little circuit at the bottom with the 33k and 10k resistors, leading to GND, A2 and A3?

    Hope you can help out. Thanks for sharing this useful blog post!

    Best,

    Frank

  2. In the video u were used a big capacitor.. what is the need of that capacitor and why don’t added in circuit

    1. Simple Projects

      It’s connected between + and – of the 12V power supply, it is used to provide more sufficient and smooth DC voltage to the circuit. You may use one with 16V 470uF.

  3. Really this circuit and program will work .. please say yes or no? Because I want to try this circuit. I expect ur kind reply…

  4. Tiến Nguyễn Đức

    Hi! Which source did you use to supply the BLDC motor.
    Looking forward to receiving your response as soon as possible.

      1. Please I need this circuit with upto 20A/30A/40A please how to increase the current? I want to use it for my home made quadcopter

  5. 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 Comment

Your email address will not be published. Required fields are marked *

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

Scroll to Top