
English: 
In this tutorial I will show you how to
use the L9110 motor control board and
write simple arduino code to control
various types of motors in your own
personal projects. The L9110 is a
compact and inexpensive h-bridge motor
control board that easily interfaces with
microcontrollers such as the Arduino or
Raspberry Pi. The board can be used to
control two small DC motors
simultaneously or can be used to control
a small super motor such as a NEMA-17.
The board operates between two and a
half and 12 volts DC and is capable of
sourcing 800 milliamps per phase
sustained or one-and-a-half amps
momentarily. This tutorial is divided
into three videos. Part 1 covers the
speed and direction control of DC motors.

Spanish: 
En este tutorial, le mostraré cómo
usar la placa de control del motor L9110 y
escribir un código Arduino simple para controlar
varios tipos de motores en sus propios
proyectos personales. El L9110 es un 
tablero de control de motor de puente H 
compacto y económico que se conecta fácilmente con
microcontroladores como Arduino o 
Raspberry Pi. Esta placa se puede utilizar
para controlar dos motores DC pequeños
simultáneamente o se puede utilizar para controlar
un motor paso a paso pequeño, como un NEMA 17.
La placa funciona entre 2.5 y 12 voltios DC.
Es capaz de obtener 
800 mA por fase sostenida
y 1,5 amperios momentáneamente.
Este tutorial está dividido
en 3 videos. La Parte 1 cubre el
control de velocidad y dirección de los motores DC.

Spanish: 
La parte 2 discute el control de actuadores
 lineales. La Parte 3 muestra cómo
controlar la velocidad y la dirección de los
motores paso a paso. Cada video incluye
instrucciones de configuración paso a paso,
así como la codificación básica de Arduino que
se puede incorporar a sus propios proyectos. En
En la descripción se proporcionará un enlace
a los componentes y herramientas utilizados en
estos videos. Esta placa es muy 
similar al controlador de motor L298N,
pero con un poco menos de funcionalidad.
Pero como puede ver, es significativamente
más compacto y también tiene un
costo mucho menor. Solo pagué unos 75 centavos
por este en eBay. Planeo hacer
otro tutorial sobre el L298N
en un video futuro. También planeo 
hacer un video que muestre cómo usar el
como parte de un cargador de teléfono con
seguimiento solar usando estos paneles solares y este
motorreductor. Estoy esperando que lleguen algunas
partes más, así que suscríbete a mi
canal para que no te lo pierdas. Debe
ser un video muy divertido y planeo
ir paso a paso para que puedas ver 
exactamente cómo lo hago. Dale me gusta

English: 
Part 2 discusses the control of linear
actuators. Part three demonstrates how to
control the speed and direction of
stepper motors. Each video includes
step-by-step instructions as well as
basic Arduino coding that can be
incorporated into your own projects. A
link to the components and tools used in
these videos will be provided in the
description below. This board is very
similar to the L298N motor
controller but with a little less
functionality. But as you can see, it is
significantly more compact and also has
a much lower cost. I only paid about 75
cents for this one on eBay. I plan on
making another tutorial about the L298N
in a future video. I also plan on
making a video showing how to use the
L9110 as part of a solar tracking phone
charger using these solar panels and this
gear motor. I'm waiting for a few more
parts to arrive so please subscribe to
my channel so that you don't miss it. It
should be a very fun video and I plan on
going step-by-step so you can see
exactly how I do it. Please like and

Spanish: 
y comparte estos videos si los encuentras
útiles. Mi canal tiene solo unos pocos meses
y estoy tratando de crecer para poder
seguir creando contenido divertido y útil.
El tablero de control L9110 mide aproximadamente
30 mm de largo y 23 mm de ancho.
Tiene aproximadamente 15 mm de altura con
los terminales y los cabezales de clavija
instalados, pero puede 
quitarse un perfil mucho más
bajo. La placa tiene cuatro orificios de
de montaje de 3 mm. Cada placa
tiene dos chips L9110. Cada chip puede controlar
la velocidad y la dirección de un motor de CC.
Cada motor tiene su propio bloque de terminales.
El motor A está en el lado derecho y el motor B
está en el izquierdo. Ahora hablemos sobre el
encabezado del pin. El tercer pin de la izquierda
es el pin de tierra y debe conectarse al terminal
al terminal negativo de su fuente de
alimentación. A la derecha está el pin VCC, que
debe conectarse al terminal positivo de
su fuente de alimentación. El LED incorporado
indica cuándo la placa tiene energía.
No recomiendo conectar tierra

English: 
share these videos if you find them
useful. My channel is only a few months
old and I'm trying to grow so that I can
continue making fun and useful content.
The L9110 Control Board measures about
30 millimetres long and about 23
millimeters wide is about 15 millimeters
tall with the terminals and pin header
installed but
has a much lower profile with them
removed. The board has four 3mm
mounting holes. Each board has
two L9110 chips. Each chip can control
the speed and direction of one DC motor.
Each motor has its own terminal block.
Motor A is on the right, motor B is on
the left. Now let's talk about the pin
header. The third pin from the left is
the ground pin and should be connected
to the negative terminal of your power
supply. To the right is the VCC pin which
should be connected to the positive
terminal of your power supply. The
onboard LED indicates when the board has
power. I do not recommend connecting

Spanish: 
y VCC a su Arduino ya que esto puede
obrecargar la fuente de alimentación dependiendo
de la potencia requerida para conducir
los motores. Los dos pines de la derecha son
para controlar el motor A y los dos pines
de la izquierda son para controlar el motor B. Los
pines están etiquetados como 1A o 1B. Lo 
discutiremos más en un minuto. Estos son
los pines que deben conectarse al Arduino
Ahora, si solo le preocupa la dirección del
motor, puede usar pines de salida
digitales regulares (ALTO / BAJO). Si 
desea controlar la velocidad y la dirección,
necesitará usar pines de modulación de ancho
de pulso (PWM). Se requiere 
un potencial de al mas 2.5V para que
la placa de control reconozca una señal ALTA,
así que tenga esto en cuenta al seleccionar sus
microcontroladores. Tanto Arduino como 
Raspberry Pi funcionarán bien
con esta placa.
Conectemos un motor al canal A y demostremos
los conceptos básicos del control de dirección
con el comando DigitalWrite.
Para este ejemplo, usaré un motorreductor
para que podamos ver fácilmente la dirección 
del motor. Conectemos esto y luego

English: 
ground and VCC to your Arduino as this
can overload the power supply depending
on the power required to drive the
motors. The two pins on the right are for
controlling motor A and the two pins on
the left are for controlling motor B. The
pins are either labeled 1A or 1B. We will
discuss that more in a minute. These are
the pins that need to be connected to
the Arduino. Now if you're only concerned
about motor direction you can use
regular digital high-low output pins. If
you want to control speed and direction
you will need to use pulse width
modulation (PWM) pins. A potential of at
least 2.5 volts is required for the
control board to recognize a high signal,
so keep that in mind when selecting your
microcontrollers. Both Arduino and
Raspberry Pi will work fine for with
this board.
Let's connect a motor to channel A and
demonstrate the basics of direction
control using the digital write command.
For this example I will use a gear motor
so that we can easily see the motor
direction. Let's wire this up and then

Spanish: 
escribamos un código Arduino para demostrarlo.
Si conoce la polaridad de su motor, 
conecte el cable positivo del motor al 
conector A del motor a la izquierda y el
cable negativo al conector de la
derecha. Si no conoce la polaridad,
no se preocupe por eso. Será
muy fácil de arreglar si su motor gira en
en sentido contrario al que deseaba. Para esta
demostración, utilizaré diez voltios de mi
e mi fuente de alimentación a través de una
placa de pruebas. Primero, conectaré el 
positivo a VCC y tierra a tierra.
Si estuviera usando una batería de 12
voltios para el tablero de control del motor
y una batería de 9 voltios para el Arduino,
me gustaría asegurarme de que el pin
de tierra en el tablero de control del motor
y el pin de tierra en el Arduino estén
conectados. a una referencia común.
Solo para control direccional, puedo seleccionar
dos pines de salida digital en el 
Arduino. Conectaré el pin Arduino 3 a
de control y el pin Arduino 2 a A-1B.
Si le damos un comando ALTO al

English: 
write some Arduino code to demonstrate.
If you know the polarity of your motor
connect the positive wire of the motor
to the motor a connector on the left and
the negative wire to the connector on
the right. If you do not know the
polarity don't worry about it it will be
very easy to fix if your motor spins
opposite of what you wanted. For this
demonstration I will be using 10 volts
from my power supply through a
breadboard. First I will connect the
positive to VCC and the negative to
ground. If I were using say a 12 volt
battery for the motor
control board and a 9-volt battery for
the Arduino I would want to make sure
the ground pin on the motor control
board and the ground pin on the Arduino
are both connected to a common reference.
For Direction control only I can select
any two digital output pins on the
Arduino. I will connect Arduino pin 3 to
A1A on the control board and Arduino
pin 2 to A1B. If we give a high command

English: 
to pin A1A and a low command to pin A1B,
the motor will spin counterclockwise
when looking at the end of the shaft. If
we give a low command to pin A1A and a
high command to pin A1B, the motor will
spin clockwise. If we give a high command
to both channels or low command to both
channels, the motor will not spin. Let's
write some basic Arduino code to
demonstrate. First we needed to find what
pins on the Arduino correspond with the
pins on the motor control board. We'll
create a constant integer for A1A as
pin 3 and A1B as pin 2. In our setup
loop we will set the pin modes for both
pins as outputs. In the loop we will set
pin A1A low and pin A1B high. This
will cause the motor to spin in a
clockwise direction. We will hold this

Spanish: 
pin A-1A y un comando BAJO al pin A-1B,
el motor girará en sentido antihorario al
mirar el extremo del eje. Si le
damos un comando BAJO al pin A-1A y un
comando ALTO al pin A-1B, el motor girará
en sentido horario. Si le damos un comando ALTO
a ambos canales o un comando BAJO a ambos 
canales, el motor no girará. Escribamos
un código básico de Arduino para demostrarlo.
Primero, necesitamos definir qué
pines en el Arduino corresponden con los
pines en el tablero de control del motor. Crearemos
un entero constante para A1A como 
pin 3 y A1B como pin 2. En nuestro bucle de 
configuración, estableceremos los modos de pin para
ambos pines como salidas. En el bucle, estableceremos
el pin A1A bajo y el pin A1B alto. Esto 
hará que el motor gire en sentido
horario. Mantendremos esta 

Spanish: 
dirección durante 2 segundos usando el comando 
de retraso. Ahora cambiaremos el pin A1A
a alto y A1B a bajo. Esto hará que el motor
gire en la dirección opuesta. Y lo
lo mantendremos en ese estado
durante otros 2 segundos. Asegúrese de seleccionar
la placa y el puerto serie correctos
para cargar el boceto. He conectado VIN
en el Arduino a 10 voltios en mi placa de
pruebas. Además, de tierra a tierra. Probémoslo
encendiendo la fuente de alimentación.
Como puede ver, el motor cambia de
de dirección cada 2 segundos. Ahora, agreguemos
un segundo motor al canal B y
demostremos el control de velocidad.

English: 
direction for 2 seconds using the delay
command. Now we will switch pin A1A
high and A1B low. This will cause the
motor to spin in the opposite direction
and we will hold it in that state for
another 2 seconds. Make sure to select
the correct board and serial port to
upload the sketch. I've connected the VIN
on the Arduino to the 10 volts on my
breadboard, also ground to ground. Let's
test it out by turning on the power
supply. As you can see the motor changes
direction every 2 seconds. Now let's add
a second motor to channel B and
demonstrate speed control.

Spanish: 
He conectado este motor vibratorio a la
placa de control. También he conectado B-1B 
n el tablero de control al pin 11 de Arduino
y B-1A al pin 10. Seleccioné los pines 10 y 11
porque ambos son capaces de modulación
de ancho de pulso. Ahora de vuelta al
código Arduino. Primero, necesitamos definir dos 
enteros más para las conexiones
B-1A y B-1B. Y declararemos ambos 
como salidas. También voy a definir una
variable para la velocidad y comenzaré
configurándola igual a 51. Con la modulación de 
ancho de pulso, puede seleccionar cualquier
valor entre 0 y 255. En este caso, un valor
de 0 daría como resultado la no rotación y un 
valor de 255 daría como resultado la velocidad

English: 
I've connected this vibrating motor to
the control board. I've also connected B1B
on the control board to arduino pin 11
and B1A to pin 10. I selected pins 10 and
11 because they are both capable of
pulse width modulation. Now back to the
Arduino code. First we needed to find two
more integers for the B1A and B1B
connections. We will declare both of
these as outputs. I'm also going to
define a variable for speed and start by
setting it equal to 51. With pulse width
modulation you can select any value
between 0 and 255. In this case the value
of 0 would result in no rotation and a
value of 255 would result in maximum

Spanish: 
máxima. Cada incremento de 51 corresponde
a aproximadamente el 20% de potencia. Como estoy
usando una fuente de alimentación de 10 voltios, 
un valor de velocidad de 51 esencialmente daría
como resultado 2 voltios en el motor.
Ahora vamos a actualizar el bucle principal. Esta vez
voy a configurar B1B a cero y B1A al 
mismo valor que nuestra variable de velocidad.
Comenzará con un 20% de potencia, pero cada
vez que el ciclo se repita aumentará 
la potencia en un 20%.
Una vez que haya pasado la potencia máxima, restableceremos
la variable de velocidad al 20%. Haré esto
agregando los comandos de AnalogWrite
antes de los retrasos de tiempo, y la velocidad
aumentando hasta después de los retrasos. De esa manera, 
mantendrá cada velocidad durante
aproximadamente 4 segundos.

English: 
speed. Each increment of 51 corresponds
to about 20% power. Because I'm using a
10 volt power supply, a speed value of 51
would essentially result in 2 volts at
the motor.
Now let's update the main loop. This time
I'm going to set B1B to 0 and B1A to
the same value as our speed variable.
We'll start off with 20% power, but each
time the loop iterates will increase the
power by 20%.
Once it is past full power, we will reset
the speed variable back to 20%. I will do
this by adding the analog write commands
before the time delays and the speed
incrementing after the delays. That way
it will hold each speed for about 4
seconds.

English: 
Now let's test our code again. As you can
see the gear motor continues to function
as did before switching directions every
two seconds
but the vibrating motor changes speed
every four seconds and then slows back
down once it reaches full speed.
Hopefully you have found this video
useful. If you did please be sure to LIKE
share and subscribe. If you are
interested in learning more about the
L9110 board, watch part two

Spanish: 
Ahora probemos nuestro código nuevamente. Como puede
ver, el motor de engranaje continúa funcionando
como antes, cambiando de dirección cada
dos segundos,
pero el motor vibratorio cambia de velocidad
cada cuatro segundos y luego disminuye la velocidad
una vez que alcanza la velocidad máxima.
Espero que hayas encontrado útil este video.
Si lo hizo, asegúrese de dame un LIKE, 
compartir y suscribirse. Si está interesado
en aprender más sobre la placa 
L9110, vea la parte 2 de esta

Spanish: 
erie sobre cómo controlar los actuadores
lineales o la parte 3 sobre cómo controlar
los motores paso a paso.

English: 
of the series on how to control linear
actuators or part 3 on how to control
stepper motors.
