Você está na página 1de 12

CONTROL DE UN MOTOR DC Y UN

SERVOMOTOR MEDIANTE PWM (VHDL)


William Caar, Hctor Segura, Dario Manobanda
Universidad Nacional De Chimborazo
Facultad de Ingeniera
Escuela De Electrnica Y Telecomunicaciones

lian_will@hotmail.com, 654hector1@gmail.com, xavi9319@gmail.com

Abstract This report aims to provide the basic concepts of artculos. En esta etapa final, abordaremos los mtodos ms
PWM (pulse width modulation) made in the program and apropiados para controlar mediante la modulacin de ancho de
xiling card and connected to a H-BRIDGE in order to reverse pulsos (PWM) la velocidad, el sentido de rotacin y el frenado
the direction of a motor, using npn and pnp transistors to de un motor CC. Haciendo un breve repaso de los conceptos
power To control the speed and position of DC motors, in elementales a tener en cuenta en nuestro desarrollo, donde ser
addition to analyzing and demonstrating their operation in the necesario controlar la velocidad, el sentido de giro y el frenado
laboratory to be able to apply them in the chair of digital de un motor de corriente continua, podemos citar los
systems. principales fundamentos:
La velocidad ser controlada mediante modulacin de
ancho de pulsos (PWM).
Index Terms Modulation By Width Of Wrists, La inversin de giro ser supervisada por un puente H.
Comparators, Counters, Decoders. Para un frenado dinmico del motor, utilizaremos los
transistores de las ramas inferiores del puente H con
Resumen Este informe tiene como objetivo proporcionar inclusin de PWM para variar la intensidad del
los conceptos bsicos de PWM (modulacin mediante el frenado.
ancho de pulsos ) realizado en el programa y tarjeta xiling y
conectado a un PUENTE H con el fin de invertir el sentido de
un motor, mediante transistores npn y pnp para poder hacer el
II. MARCO TERICO
control de velocidad y posicin de motores DC, adems de
analizar y demostrar su funcionamiento en el laboratorio para A. Control de Velocidad PWM y puente H de un motor
poder aplicarlos en la catedra de sistemas digitales. DC
ndice De Trminos Modulacin Por Ancho De Pulsos,
Control de velocidad PWM
Comparadores, Contadores, Decodificadores.
Para poder nosotros controlar la velocidad de un motor DC se
utiliza un trmino que nosotros conocemos como PWM que
I. INTRODUCCIN se describe como la Regulacin por Ancho de Pulso de un
Un circuito Lgico es cualquier circuito que se comporta de motor DC y est basada en el hecho de que si se recorta la
acuerdo con un conjunto de reglas lgicas. Maneja la corriente continua de alimentacin en forma de una onda
informacin en forma de "1" y "0", dos niveles lgicos de cuadrada, la energa que recibe el motor disminuir de
voltaje fijos. "1" nivel alto o "high" y "0" nivel bajo o "low". manera proporcional a la relacin entre la parte alta, en la
Los circuitos lgicos estn compuestos por elementos digitales cual circula corriente, y baja en donde la corriente es cero, del
como las compuertas lgicas, que son una serie de condiciones ciclo de la onda cuadrada. Controlando esta relacin se logra
que ayudan a manejar el flujo de la informacin. Ms adelante variar la velocidad del motor de una manera bastante
se detallarn. Cuando trabajamos con motores de corriente aceptable.
continua no siempre las aplicaciones se limitan a una funcin
de marcha plena en alguno de los dos sentidos posibles. La modulacin por ancho de pulsos tambin conocida como
PWM, de una seal o fuente de energa es una tcnica en la
En la mayora de los diseos debemos controlar las que se modifica el ciclo de trabajo de una seal, ya sea para
revoluciones por minuto de los motores de acuerdo al transmitir informacin a travs de un canal de
desarrollo efectuado y el sentido de giro que esta rotacin debe comunicaciones o para controlar la cantidad de energa que se
tener. Es por esto que, cuando necesitamos invertir el enva a una carga.
movimiento mecnico del sistema debemos apelar a utilizar un Es una tcnica utilizada para regular la velocidad de giro de
puente H, en consecuencia, utilizaremos el mismo sistema que los motores elctricos de induccin o asncronos. Mantiene el
comenzamos a delinear en la segunda parte de esta serie de motor constante y no supone un desaprovechamiento de la
energa elctrica. Se utiliza tanto en corriente continua como en
alterna, como su nombre lo indica, al controlar: un momento Puente H de un motor DC
alto (encendido) y un momento bajo (apagado), controlado
mediante el uso de contadores y compradores de una seal de Un puente H es un circuito electrnico que permite a un
ADC y una seal CLOCK. [1] motor elctrico DC girar en ambos sentidos. Son
ampliamente usados en robtica y como convertidores de
potencia. Los puentes H estn disponibles como circuitos
integrados, pero tambin pueden construirse a partir de
componentes discretos.
Un puente H se construye con 4 interruptores mecnicos o
mediante transistores. Estos transistores permiten aplicar una
tensin positiva en el motor, hacindolo girar en un sentido o
invertir el voltaje, permitiendo el giro en sentido inverso del
motor.

Figura 1. Modulacin de ancho de pulso

Comparador

Un comparador realiza la prueba entre dos palabras binarias


del mismo formato y cdigo, y determina si el resultado es
mayor, menor o igual. Al no ser conmutativa la comparacin,
se debe especificar el orden de la comparacin.
Figura 3. Representacin del funcionamiento de giro de un
Este activa la salida de mayor, menor o igual dependiendo de
motor.
los dos valores de entrada. Dispone de bit de habilitacin.

Tabla 1. Puertos de I/O de un comparador de 1 bit.

Cuando la entrada de habilitacin esta en 0 lgico, las


salidas estarn desactivadas, dando nivel bajo en todas sus
salidas. Cuando se activa la habilitacin el sistema compara a Figura 4. Puente H simulado en Proteus
con b y dependiendo del caso el sistema entregar un 1
lgico en la salida correspondiente. El sentido de giro del motor DC depende de los niveles de
voltaje que existan en los puntos del circuito etiquetados
como: Avance y Retroceso. Slo uno de estos dos puntos
puede estar a nivel alto para activar los transistores
correspondientes.
Si el nivel de voltaje en una posicin del switch est en
nivel alto se satura los transistores Q2 y Q5. Estos dos
transistores permiten la circulacin de corriente por el motor
DC en un sentido.
Y si el nivel de voltaje la otra posicin del switch est en
Figura 2. Comparador de un 1 bit nivel alto entonces se saturan los transistores Q3 y Q4. Estos
dos transistores permiten la circulacin de corriente por el
Para realizar nuestro trabajo se utiliz 8 comparadores de 1 motor DC en el sentido contrario.
bit en cascada ya que poseemos nmeros que contienen 8 bits A nuestro circuito podemos aumentarle unos diodos para
que son aquellos que se van a comparar. [2] proteger los transistores, porque se cambia la polaridad en las
bobinas del motor DC, lo cual podra quemar nuestros ejemplo, asumiremos que la frecuencia va
transistores. [3] de 0.5 a 2.5ms.
B. Control de un servomotor Cmo empezamos a desarrollar los dos divisores de
frecuencia necesarios para esta seal? Primero que nada, es
Un Servomotor es un tipo especial de motor que permite necesario encontrar el rango de operacin:
controlar la posicin del eje en un momento dado. Esta
diseado para moverse determinada cantidad de grados y
luego mantenerse fijo en una posicin., entre otros muchos,
que puede manejarse inyectndole una seal PWM.
Ahora es necesario saber la resolucin del servomotor, o
cantidad de posiciones que puede tomar. Por lo tanto, la
La electrnica del servo coloca al motor en cada posicin
frecuencia mnima necesaria es:
dependiendo del tiempo en que el pulso que le inyectamos
permanece en alto. Si el tiempo que dura en estado alto dura
exactamente 1.5 milisegundos entonces el Servo va y se coloca
en el centro de su recorrido, si dura exactamente 0.5
milisegundos el servo retrocede desde el punto medio unos 90
y se coloca en su extremo izquierdo y si, por ltimo, dura
exactamente 2.5 milisegundos el servo avanza desde el punto
medio unos 90 y se coloca en su extremo derecho. Al tiempo Si nuestro servomotor puede tomar 256 posiciones tenemos
en que permanece en alto un pulso le llamamos Duty Cicle. que :

Decir que los pulsos estn separados unos de otros 20


milisegundos es exactamente lo mismo que decir que se envan
con una frecuencia de 50 Herzios, ya que 50 hz son 50 pulsos
por segundo y por lo tanto 1000 milisegundos (que tiene un
segundo) dividido entre 50 son exactamente eso: 20
milisegundos. O sea aplicamos la formula f (frecuencia en
Herzios) = 1 / t (Periodo en Segundos). [4] Por tanto con el valor obtenido se procede a realizar el
contador, para realizar este proceso se toma en cuenta la
frecuencia calculada, en este caso los 128000 Hz equivalen a
1ms, pero como se mencion anteriormente el servomotor
funciona con periodos de 20ms, entonces se procede a
multiplicar la frecuencia de reloj por 20ms dndonos un valor
de 2560, este valor ser el valor mximo al cual debe llegar
nuestro contador. [5]

Con estos valores calculados se procede a realizar el diseo


de controlador PWM para servomotor. Para realizarlo tuvimos
que utilizar comparador de 8bits, de esta manera obtenemos
los dos nmeros de longitudes iguales y se puede lograr la
comparacin entre s.

Tambin fue necesario realizarle al controlador la suma de un


nmero x para compensar y poder obtener un estado inicial
Figura 5. Trenes de pulsos para las posiciones 180, 90 y 0 en el de 0.5ms. Esto se logr sabiendo que el mximo rango de
eje de un servomotor operacin es 2.5ms y que para comenzar a operar necesitamos
que se encuentre en la posicin 0 el cual es un valor de 0.5ms
lo cual nos faltara 2ms para llegar a su mximo valor,
C. Diseo del control entonces de esta manera sabemos que necesitamos 4 periodos
La seal de control para el servomotor se compone de dos de 0.5ms ms. Para ello se dividi el valor del control para 4
frecuencias: periodos que necesitamos dndonos un valor de 64, por lo
tanto este es valor x que necesitamos para comenzar a operar
el servomotor.
Frecuencia de actualizacin de 20ms.
Por lo que nuestro PWM contendrn los parmetros del
Ancho de pulso que controla la posicin del contador y la frecuencia de operacin del mismo.
servomotor, provista por el fabricante. Para este
D. Contador Por lo tanto, el contador para el divisor de frecuencia
Es todo circuito o dispositivo que genera una serie de tiene como funcin generar la seal de salida de 1KHz
combinaciones a sus salidas sincronizadas por una seal de cada 60000 ciclos. [6]
reloj externa.

Clasificaciones: III. DESARROLLO EXPERIMENTAL


Segn el comportamiento con la seal de reloj:
Contadores asincrnicos. Despus de haber investigado como funciona un servomotor
Contadores sincrnicos. procedemos a construir la programacin en nuestra plataforma
Segn el formato de salida del conteo: de xiling para la tarjeta ARTIX 7, el programa que
Binario. corresponde a la tarjeta antes mencionada utiliza VIVADO.
BCD (Decimal Codificado en Binario)
Arbitrario. Implementacin de un divisor de frecuencia de 1khz.
Segn sentido de conteo:
Conteo ascendente progresivo.
Conteo descendente regresivo.
E. Divisor de frecuencia
Dividir la frecuencia de una seal entre 2 es muy
sencillo: colocamos un prescaler de 1 bit. En general, para
dividir entre cualquier potencia de 2 (2, 4, 8, 16...2^N) nos
basta con un prescaler de N bits. Para el resto de
frecuencias necesitamos el divisor de frecuencias

Figura 6. Esquema de bloques del divisor de frecuencia

Es un componente que tiene una seal de entrada


(clk_in), con frecuencia fin y periodo Tin. Como salida
tiene otra seal (clk_out) cuya frecuencia es la de la
entrada dividida entre M. O si lo vemos con el periodo,
el de la seal de salida es M veces mayor que el de la
entrada. [6].

1) Clculos para la frecuencia deseada.

El divisor de frecuencia es un componente simple,


cuyo objetivo es reducir la frecuencia de entrada. ste se
implementa con ayuda del factor de escalamiento y un
contador. Primeramente, el factor de escalamiento es la
relacin entre la frecuencia de entrada y la frecuencia de
salida deseada:

Asumiendo que tenemos una frecuencia de 12MHz y


deseamos una salida de 1kHz, tenemos que: Figura 7. Esquema de bloques del divisor de frecuencia de 1khz
Implementacin de un contador de 0 255 a) Componente Divisor de frecuencia de 128 khz

Finalmente, sabemos que con un reloj de 128


kHz tenemos 1ms cada 128 iteraciones. Para tener la
frecuencia de 20 ms basta multiplicar 128 * 20, implementado
con un contador de 0 a 2560.

Para poder implementar la variacin de ancho de pulso


debemos crear dos entidades, una que realice la divisin de
frecuencia y la otra que nos permita variar la salida por medio
de los valores de entrada q a esta entidad llegan.

El divisor de frecuencia est hecho para que nos permita


obtener una frecuencia de 45hz a partir de la frecuencia de
Figura 8. Esquema de bloques de un contador de 0 255. 12Mhz de la tarjeta Artix7.

Este cdigo describe el funcionamiento del pwm, lo que hace


Implementacin del control PWM para el servomotor. es que toma los valores de entrada de la entidad y
dependiendo de la frecuencia de reloj va contando estos
Para la implementacin en VHDL tenemos tres entradas: reloj nmeros y asignndolos a una variable de salida llamada
de 128kHz, reset, y un vector que puede tomar valores de 0 a pwm_out la cual se va se va actualizando por cada ciclo de
256. La nica salida es la seal de control para el servomotor. reloj.
Despus de haber realizado estas dos entidades y instanciarlas
en una entidad total para que funcionen de acorde con las
especificaciones necesarias se debe comprobar el
funcionamiento de estas por medio de la simulacin. completo
ya que el mximo valor que toma el ADC es 255, en ese caso
el ancho de pulso ser total, y el motor estar a su mayor.
b) Componente contador de 0 - 2560

Figura 9. Componente U1 - Control del servomotor

Implementacin del U2 comparador de 8 bits

Para realizar este comparador se ha utilizado comparadores de


1 bit en cascada.

d) Comparador de 1 bit.

c) Componente U1 manejo del servo

Figura 10. Comparador de 1 bit


e) Comparador completo de 8 bits

Figura 1. Componente U2- Comparador completo de 8 bits.

Implementacin del U3 decodificador para mostrar el


numero en el display

f) Decodificador de binario a hexadecimal


b) Divisor de frecuencia para el PWM motor

a) Decodificador completo para dos display

c) Contador de 0-254 para motor DC

Figura 12. Componente U3- Decodificador de 7 segmentos de


BCD- HEXADECIMAL

Implementacin del U4 control para motor DC.


d) Control PWM para motor DC

Figura 15. Banco de pruebas del controlador de PWM mediante el


contador

Figura 16. Banco de pruebas del controlador de PWM del motor


DC.

Figura 13. Componente U4- control para motor DC

IV. SIMULACIONES REALIZADAS


Para la frecuencia de 20 ms se obtuvo una frecuencia
de 19.9936 ms, para la frecuencia mnima se
obtuvo 0.4920 ms y para la frecuencia mxima se obtuvo
una frecuencia de 2.4835 ms.
Figura 17. Banco de pruebas del comparador de 8bits.

V. CONCLUSINES
Uno de los problemas ms crticos en este proyecto es el
contador que tiene muchas restricciones que impiden que la
sinterizacin, implementacin y hasta el funcionamiento en
hardware, ya que el contador debe actualizarse cada segundo y
Figura 14. Banco de pruebas del controlador de PWM para al ser valores demasiado rpidos tiende a dar errores. que nos
servomotores. permitir no perder tanta informacin ya que la lectura de los
pulsos del motor se realiza de una forma asincrnica que
simula un reloj de entrada a la tarjeta

La tarjeta Artix 7 tiene pines especficos que permiten tener


un ingreso de reloj externos, estos pines son exclusivamente
asignados por el usuario, si se asignan a diferentes pines sin
estas especificaciones la implementacin no se realizar
porque tendr fallas en el funcionamiento de la tarjeta
llegando a ser crticos cuando se utilizan de una forma no VIII. BIOGRAFA
adecuada.
Debemos tomar en cuenta que para que un motor DC gire Hctor Segura Medranda naci en Esmeraldas-
debe vencer la inercia en la que esta, por lo cual debemos Ecuador el 29 de mayo de 1994. Realizo sus
tener en cuenta esto en nuestro circuito para que este sea estudios secundarios en el colegio Tecnico
Fiscomisional Monseor Angel Barcidotti de la
eficiente y funcione de una forma correcta.
cuidad de Esmeraldas donde obtuvo el ttulo
bachiller en Tecnico Electricista. Actualmente
El puente H es un circuito se utiliza para controlar el sentido
estudia en la Universidad Nacional de Chimborazo en la carrera de
de giro de un motor de corriente continua. Ingeniera Electrnica Y Telecomunicaciones. 4er Semestre.

El sentido de giro del motor DC depende de los niveles de


voltaje que existan en los puntos del circuito. Willian Caar naci en Ambato en 1994 ubicado
en la provincia de Tungurahua, sus estudios
Algo importante que debemos resaltar de esta experiencia es primarios los realiz en la escuela Unidad
que el Duty Cicle de un servomotor segn el datasheet es 0.5 Nacional se gradu en el Instituto Superior
ms y la frecuencia que opera ser de 50-60 Hz.Por esta razn Tecnolgico Docente Guayaquil donde obtuvo
su ttulo en Electrnica de Consumo actualmente
alimentamos el motor directamente desde el pwm del motor
est cursando el cuarto semestre de Ingeniera
DC. Electrnica y Telecomunicaciones en la Universidad Nacional de
Chimborazo de la ciudad de Riobamba, ha participado en los
programas de Aprender a Emprender de la Cmara de Comercio de
Ambato.
VI. RECOMENDACIONES
Dario J. Manobanda Pilco, Naci en
Estabilizar el efecto de parada del motor para que este no
Ambato-Ecuador el 19 de Agosto de 1993.
trabaje cuando no haya pulsos. Realizo sus estudios secundarios en la
Instituto Superior Tecnolgico Docente
Acoplar adecuadamente el PWM y el puente H mediante Guayaquil de la ciudad de Ambato donde
resistores y transistores. obtuvo el ttulo de Bachiller en Electrnica
de consumo. Ahora estudia en la
Observar en el osciloscopio la onda generada por el PWM Universidad Nacional de Chimborazo,
para as verificar su correcto funcionamiento. Ingeniera Electrnica y
Telecomunicaciones, 4to Semestre.

VII. REFERENCIAS IX. ANEXOS

[1] DIGILENT, Digilent A National Instrument Company,


14 06
2017. [En lnea]. Available:
http://store.digilentinc.com/cmod-a7- breadboardable-
artix-7-fpga-module/.
[2] M. M. Mano, Diseo digital, Mexico: PEARSON
EDUCATION,
2003.
[3] Thomas L. Floyd, Fundamentos de Sistemas Digitales,
Ed. Prentice
Hal, 2000.
[4] R. E. y. H. Haskell, Learning by Example Using VHDL
- Basic Digital Design with a Basys FPGA Boa, Darrin
M.: Michigan: LBE Books., 2008.
[5] J. C., Github, 11 12 2016. [En lnea]. Available:
https://github.com/Obijuan/open-fpga-verilog-
tutorial/wiki/Cap%C3%ADtulo-15:-Divisor-de- Figura 18. Visualizacin del estado 0 en que se encuentra el PWM
frecuencias. [ltimo acceso: 15 06 2017]. (servo y motor)
[6] C. Ramos, ESTADOFINITO, 26 07 2012. [En
lnea]. Available: http://www.estadofinito.com/divisor-
frecuencia-vhdl/. [ltimo acceso: 06 14 2017].
Figura 19. Onda de salida del PWM en estado 0 (servo canal 1 y
Figura 22. Visualizacin del estado final FF en que se encuentra
motor canal 2).
el PWM (servo y motor).

Figura 23. Onda de salida del PWM en estado final FF (servo


canal 1 y motor canal 2).
Figura 20. Visualizacin del estado medio en que se encuentra el
PWM (servo y motor).

Figura 21. Onda de salida del PWM en estado medio (servo canal
Figura 24. Onda de salida del PWM del servomotor con un
1 y motor canal 2).
periodo de 2.5 ms.
Figura 25. Onda de salida del PWM del servomotor con un
periodo de 1 ms.

Figura 26. Firma de revisin

Você também pode gostar