Sie sind auf Seite 1von 10

INGENIERIA DE CONTROL

CONTROL DE MOTORES DC

Los sistemas de control son aquellos dedicados a obtener la salida deseada


de un sistema o proceso. En un sistema general se tiene una serie de
entradas q provienen de la entrada del sistema controlar, llamado planta, y
se diseña un sistema para que, a partir de estas entradas, modifique ciertos
parámetros en el sistema planta, con lo que las señales anteriores volverán
a su estado normal ante cualquier variación.
Para lograr una alta prestación de los accionamientos llevados a cabo por un
motor que forma parte de un sistema de control, es necesario estudiar las
características dinámicas de estos y desarrollar estrategias de control acorde
con la mismas.
Es por esta razón que se presente actividad pretende tener un acercamiento
al control en una planta real, donde se diseñara un control de velocidad del
motor DC se lo manejara de manera adecuada a la aplicación elegida.
Nosotros buscaremos regular tanto la velocidad como el sentido de giro del
motor DC conservando su potencia, esto se logrará haciendo variar el tiempo
que el motor recibe voltaje.

PROYECTO “CONTROL DE MOTORES DC” 1


INGENIERIA DE CONTROL

Metodología empleada
Controlaremos la velocidad y el sentido de giro de un motor de corriente
continua. Más concretamente lo que haremos es montar un circuito que sea
capaz de hacer todo ello con un simple potenciómetro de forma que cuando
el potenciómetro este en el centro el motor este parado y cuando se gira
potenciómetro a los lados de forma regulada. También hay la posibilidad que
no haya cambio de sentido y que solo se regule la velocidad del motor con
todo el recorrido del potenciómetro
El control de motores en forma precisa, requiere de un circuito electrónico
especializado que realiza la regulación de la velocidad mediante una técnica
denominada PWM (pulse wide modulatión) y que consiste básicamente en
variar la cantidad de tiempo que el motor recibe tención. Si el motor recibe
tensión en forma constante, esta gira en máxima velocidad y potencia. Con
PWM lo que se hace el aplicar máxima tensión, pero no todo el tiempo, sino
a pulsos, con lo que se consigue regular la velocidad manteniendo la potencia
del motor.
La segunda función que hace el circuito de control de motores, es encargarse
del sentido del giro. En una aplicación sin circuito, hay que cambiar la
polaridad del motor para que este cambie el sentido del giro. Lo que implica
utilizar algún tipo de conmutador doble que haga la inversión d polaridad. Una
ventaja adicional de usar circuito de controles el hecho de que tenemos
arranques y paradas mucho más suaves, lo cual resulta muy bueno en la
mayoría de los casos.

PROYECTO “CONTROL DE MOTORES DC” 2


INGENIERIA DE CONTROL

DIAGRAMA DE FLUJO
SETUP Estado a controlar:
 Inicializar Serial Estado del botón on/off
Estado del botón giro
 Inicializar pines
Motor encendido/apagado
Dirección del giro del motor
Velocidad del motor
Velocidad anterior del motor
INICIO LOOP

No
Botones (todos a input_pullup):
Parada del Motor
Sí -Arranque/Parada
¿Pulsada seta -Cambio sentido giro
emergencia? -Seta de emergencia

Leer estado botones


Encendido/apagado
Dirección de giro
Leer velocidad del motor a través
del potenciómetro

Activo rampa
Sí ¿Cambia la
velocidad
del motor?

No

Activo parada o
arranque con rampa. Sí ¿Pulsado
Solo con rampa boton on/off?
ascendente

No

Activo cambio de
Sí ¿Pulsado
dirección con rampa.
botón cambio
Solo con rampa de dirección?
ascendente

No

Actualizo estados del motor:


-On/off
-Dirección giro
-Velocidad motor

PROYECTO “CONTROL DE MOTORES DC” 3


INGENIERIA DE CONTROL

Material

-Arduino Uno -L293D (driver motores)

-Fuente alimentación externa


-Motor DC

-Potenciómetro

PROYECTO “CONTROL DE MOTORES DC” 4


INGENIERIA DE CONTROL

Motor DC
Un motor de corriente continua convierte la energía eléctrica en mecánica. Se
compone de dos partes: el estator y el rotor.
El estator es la parte mecánica del motor donde están los polos del imán.
El rotor es la parte móvil del motor con devanado y un núcleo, al que llega la
corriente a través de las escobillas.
Cuando la corriente eléctrica circula por el devanado del rotor, se crea un campo
electromagnético. Este interactúa con el campo magnético del imán del estator.
Esto deriva en un rechazo entre los polos del imán del estator y del rotor creando
un par de fuerza donde el rotor gira en un sentido de forma permanente.
Si queremos cambiar el sentido de giro del rotor, tenemos que cambiar el sentido
de la corriente que le proporcionamos al rotor; basta con invertir la polaridad de
la pila o batería.

PROYECTO “CONTROL DE MOTORES DC” 5


INGENIERIA DE CONTROL

L293D
Para controlar un motor DC desde Arduino, tendremos que usar un driver para
motores para proporcionarle más corriente al motor ya que las salidas del
Arduino sólo dan 40mA. De esta manera, con el driver podemos alimentar el
motor con una fuente de alimentación externa.
El L293D es un integrado para controlar motores DC que usa el sistema puente
en H. ¿Qué es el puente en H? Es un sistema para controlar el sentido de giro de
un motor DC usando cuatro transistores. En la imagen vemos que los
transistores se comportan como interruptores y dependiendo que transistores
conducen y cuáles no cambia la polarización del motor, y con esto el sentido de
giro.

PROYECTO “CONTROL DE MOTORES DC” 6


INGENIERIA DE CONTROL

El L293D tiene dos puentes H y proporciona 600mA al motor y soporta un voltaje


entre 4,5V y 36V tal y cómo pone en el datasheet.
En el datasheet también hay el esquema que vamos a usar.

Nosotros usaremos la parte de la izquierda (los diodos externos en el L293D


están dentro). Cómo se aprecia en la imagen, los pins 3 y 6 son las salidas y se
conectan a los bornes del motor. Y los pins 2 y 7 son las entradas donde
conectaremos las salidas del Arduino. Dependiendo que valor ponemos entre los
pins 2 y 7 el motor girará en un sentido o en otro.

Control velocidad a través de PWM


Hasta este punto sabemos cómo controlar el sentido de giro del motor DC a
través del L293D. Pero ¿y la velocidad de giro? En este proyecto lo que haremos
es controlar la velocidad y el giro del motor con un solo potenciómetro.

Para hacerlo utilizaremos el PWM (véase PWM). Sabemos que hay que atacar
los pins 2 y 7 del L293D desde dos salidas del Arduino. En estas dos salidas
habrá un PWM a cada una. Pero tenemos que invertir un PWM. ¿Qué quiere
decir invertir? Pues que cuando en un PWM tengamos un pulso a un valor alto,
en el otro PWM el mismo pulso sea valor bajo. En la imagen lo entenderemos de
una manera más gráfica.

PROYECTO “CONTROL DE MOTORES DC” 7


INGENIERIA DE CONTROL

PROYECTO “CONTROL DE MOTORES DC” 8


INGENIERIA DE CONTROL

MONTAJE

-
Pins 4,5,12,13 del L293D a masa.

PROYECTO “CONTROL DE MOTORES DC” 9


INGENIERIA DE CONTROL

-Juntar las masas del Arduino y de la fuente de alimentación externa.


-Pin 8 del L293D a 9V de la fuente de alimentación externa. Es el voltaje que
proporciona al motor.
-Pin 16 del L293D a 5V. Es la alimentación del L293D, pude alimentarse
directamente desde la alimentación que proporciona el Arduino.
-El potenciómetro pude ser de cualquier valor.

PROGRAMA
1
2
3 /*
4 Control velocidad y sentido motor DC
5
6 int pin2=9; //Entrada 2 del L293D
7 int pin7=10; //Entrada 7 del L293D
8 int pote=A0; //Potenciómetro
9
10 int valorpote; //Variable que recoge el valor del potenciómetro
11 int pwm1; //Variable del PWM 1
12 int pwm2; //Variable del PWM 2
13
14 void setup()
15 {
16 //Inicializamos los pins de salida
17 pinMode(pin2,OUTPUT);
18 pinMode(pin7, OUTPUT);
19 }
20
21 void loop()
22 {
23
24 //Almacenamos el valor del potenciómetro en la variable
25 valorpote=analogRead(pote);
26
27 //Como la entrada analógica del Arduino es de 10 bits, el rango va de 0 a 1023.
28 //En cambio, la salidas del Arduio son de 8 bits, quiere decir, rango entre 0 a 255.
29 //Por esta razón tenemos que mapear el número de un rango a otro usando este código.
30 pwm1 = map(valorpote, 0, 1023, 0, 255);
31 pwm2 = map(valorpote, 0, 1023, 255, 0); //El PWM 2 esta invertido respecto al PWM 1
32
33 //Sacamos el PWM de las dos salidas usando analogWrite(pin,valor)
34 analogWrite(pin2,pwm1);
35 analogWrite(pin7,pwm2);
36
37 }
38
39

PROYECTO “CONTROL DE MOTORES DC” 10

Das könnte Ihnen auch gefallen