control de velocidad motor dc

29
República Bolivariana de Venezuela Universidad del Zulia Facultad de Ingeniería Escuela de Ingeniería Eléctrica Departamento de Electrónica y Control Realizado por: Apellidos, Nombres Correo 1 Briceño León, Ali Alejandro [email protected] om 2 Villalobos Bravo, Gesibel [email protected]

Upload: zombey22

Post on 31-Jul-2015

184 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: control de velocidad motor dc

República Bolivariana de VenezuelaUniversidad del Zulia

Facultad de IngenieríaEscuela de Ingeniería Eléctrica

Departamento de Electrónica y Control

Realizado por:

Nº Apellidos, Nombres Correo1 Briceño León, Ali Alejandro [email protected] Villalobos Bravo, Gesibel Loriany [email protected]

Maracaibo, abril de 2011

Page 2: control de velocidad motor dc

Introducción

En el siguiente informe se mostrará cómo se puede llegar a controlar la velocidad de un motor DC mediante una serie de dispositivos electrónicos que ya se han usado anteriormente y otros que han sido necesarios para la ejecución de este nuevo proyecto.

Dentro de los objetivos generales y específicos se tiene como propósito:

Interactuar directamente con los dispositivos electrónicos integrados y analógicos que se utilizaran en esta práctica.

Mejorar las habilidades, métodos y técnicas conocidas para el análisis y diseño de circuitos lógicos combinacionales.

Aprender a realizar las conexiones de los de los circuitos integrados utilizando el manual electrónico de reemplazo ECG.

Comprobar que las simulaciones y cálculos realizados concuerden con las observaciones y pruebas experimentales de laboratorio.

Aprender a realizar la configuración del microcontrolador o PIC 16F84, de manera que mediante su programación , estructura y formación externa este pueda cumplir con los propósitos de esta práctica de poder controlar mediante maniobras manuales la velocidad de un motor de corriente continua, implementando una serie de interruptores, que se conocen con el nombre de Dip Switch.

Para llevar a cabo todos estos objetivos introductorios es necesario conocer teóricamente la estructura y configuración interna de ciertos dispositivos electrónicos a utilizar especialmente la del Pic16F84, el cual debe estar polarizado con una fuente de voltaje DC y además de eso utiliza un una configuración externa conformada por un circuito oscilador, un pin de reset y la programación editada para cumplir con el propósito ya anteriormente mencionado.

Page 3: control de velocidad motor dc

1. Descripción del montaje

a. PIC16F84

Es un MICROCONTROLADOR con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere de borrado con luz ultravioleta como las versiones EPROM sino, permite reprogramarlo nuevamente sin ser borrado con anterioridad. El pic16f84 es un microcontrolador de la familia pic, fabricada por la empresa microchip.

Estructura

Se trata de uno de los microcontroladores más populares del mercado actual, debido a su arquitectura de 8 bits, 18 pines, y un set de instrucciones RISC muy amigable para memorizar y fácil de entender, internamente consta de:

Memoria Flash de programa (1K x 14).

Memoria EEPROM de datos (64 x 8).

Memoria RAM (68 registros x 8).

Un temporizador/contador (timer de 8 bits).

Un divisor de frecuencia.

Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8 pines el puerto B).

Otras características son:

Manejo de interrupciones (de 4 fuentes). Perro guardián (watchdog). Bajo consumo. Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que

necesitan dos. Pila con 8 niveles de profundidad. Modos de direccionamiento directo, indirecto y relativo. ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando

que puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código de instrucción.

1.000.000 de ciclos de borrado/escritura de la memoria EEPROM. 40 años de retención de la memoria EEPROM.

Page 4: control de velocidad motor dc

Frecuencia de reloj externa máxima 10MHz. (Hasta 20MHz en nuevas versiones). La frecuencia de reloj interna es un cuarto de la externa, lo que significa que con un reloj de 20Mhz, el reloj interno sería de 5Mhz y así pues se ejecutan 5 Millones de Instrucciones por Segundo (5 MIPS)

No posee conversores analógicos-digital ni digital-analógicos. Pipe-line de 2 etapas, 1 para búsqueda de instrucción y otra para la ejecución de la

instrucción (los saltos ocupan un ciclo más). Repertorio de instrucciones reducido (RISC), con tan solo 30 instrucciones

distintas. 4 tipos distintos de instrucciones, orientadas a byte, orientadas a bit, operación

entre registros, de salto.

Características eléctricas máximas (no deben ser superadas y de mantenerse por un tiempo en algún máximo puede dañarse al PIC):

Temperatura ambiente máxima para funcionamiento de -55°C to +125°C. Tensión máxima de VDD respecto a VSS de -0,3 a +7,5V. Tensión de cualquier patilla con respecto a VSS (excepto VDD, MCLR, y RA4) de -

0,3V a (VDD + 0.3V). Tensión en MCLR con respecto a VSS -0,3 a +14V. Tensión en RA4 con respecto a VSS -0,3 a +8,5V. Disipación de potencia total de 800 mW. Máxima corriente de salida a VSS 150 mA. Máxima corriente de salida de VDD 100 mA. Máxima corriente del puerto "A" como fuente, 50 mA. Máxima corriente del puerto "A" como sumidero, 80 mA. Máxima corriente del puerto "B" como fuente, 100 mA. Máxima corriente del puerto "B" como sumidero, 150 mA. Máxima corriente que puede suministrar una sóla salida como fuente o sumidero,

25 mA.

Page 5: control de velocidad motor dc

Descripción de sus pines

Figura 1

En la siguiente tabla se muestra la funcion de cada pin y su respectiva numeracion dentro del PIC16 F84.

Tabla 1

Nombre Nº PIN Tipo DescripciónOSC1/CLKIN

16 I Entrada del oscilador a cristal/Entrada de la fuente de reloj externa

OSC2/CLKOUT

15 O Salida del oscilador a cristal. En el modo RC, es una salida con una frecuencia de ¼ OSC1

MCLR 4 I/P Reset/Entrada del voltaje de programación.RA0 17 I/O Puerto A bidireccional, bit 0RA1 18 I/O Puerto A bidireccional, bit 1RA2 1 I/O Puerto A bidireccional, bit 2RA3 2 I/O Puerto A bidireccional, bit 3RA4/T0CKI

3 I/O También se utiliza para la entra de reloj para el TMR0

RB0/INT 6 I/O Puerto B bidireccional, bit 0Puede seleccionarse para entrada de interrupción externa

RB1 7 I/O Puerto B bidireccional, bit 1RB2 8 I/O Puerto B bidireccional, bit 2RB3 9 I/O Puerto B bidireccional, bit 3RB4 10 I/O Puerto B bidireccional, bit 4

Page 6: control de velocidad motor dc

Interrupción por cambio de estadoRB5 11 I/O Puerto B bidireccional, bit 5

Interrupción por cambio de estadoRB6 12 I/O Puerto B bidireccional, bit 6.

Interrupción por cambio de estado

RB7 13 I/O Puerto B bidireccional, bit 7Interrupción por cambio de estado

Vss 5 P Tierra de referenciaVdd 14 P Alimentación

- OSC1/CLKIN y OSC2/CLKOUT: son para el oscilador Los tipos de osciladores más usados son el XT (cristal de cuarzo) y el RC (resistencia y condensador) el modo de conexionado es el siguiente:

Figura 2

En este caso utilizaremos como oscilador TX con las siguientes características:

- C1=C2=22pF- Crystal de cuarzo = 4MHz

- Versiones para bajo consumo, de 4 MHz (PIC16F84A-04). Un ciclo máquina del PIC son 4 ciclos de reloj, por lo cual si tenemos un PIC con un cristal de 4 MHz, se ejecutarán 1 millón de instrucciones por segundo.

Page 7: control de velocidad motor dc

Arquitectura Interna

Las altas prestaciones de los microcontroladores PIC derivan de las características de su arquitectura. Están basados en una arquitectura tipo Harvard que posee buses y espacios de memoria por separado para el programa y los datos, lo que hace que sean más rápidos que los microcontroladores basados en la arquitectura tradicional de Von Neuman.

Otra característica es su juego de instrucciones reducido (35 instrucciones) RISC, donde la mayoría se ejecutan en un solo ciclo de reloj excepto las instrucciones de salto que necesitan dos.

Posee una ALU (Unidad Aritmético Lógica) de 8 bits capaz de realizar operaciones de desplazamientos, lógicas, sumas y restas. Posee un Registro de Trabajo (W) no direccionales que usa en operaciones con la ALU. Dependiendo de la instrucción ejecutada, la ALU puede afectar a los bits de Acarreo, Acarreo Digital (DC) y Cero (Z) del Registro de Estado (STATUS).

La pila es de 8 niveles. No existe ninguna bandera que indique que esté llena, por lo que será el programador el que deberá controlar que no se produzca su desbordamiento.

Este microcontrolador posee características especiales para reducir componentes externos con lo que se reducen los costos y se disminuyen los consumos. Posee 4 diferentes modos de oscilador, desde el simple circuito oscilador RC con lo que se disminuyen los costos hasta la utilización de un oscilador a cristal.

En el modo SLEEP el consumo se reduce significativamente y puede ‘despertarse’ al microcontrolador utilizando tanto interrupciones internas como externas y señal de reset. Además posee la función Watchdog Timer (Perro Guardian) que protege al micro de ‘cuelgues’ debido a fallos software que produzcan bucles infinitos.

Page 8: control de velocidad motor dc

Figura 3. Arquitectura interna del PIC16F84

b. Mosfet IRFZ44N

Antes de comenzar a definir lo que de verdad interesa, vale mencionar él porque de cada estructura y/o configuración de este dispositivo en el proyecto.

Primeramente se considera que cuando se necesita controlar cargas de manera variable, es decir, atenuando o incrementando su régimen de trabajo, de manera habitual se recurre a la modulación por ancho de pulsos (Pulse-Width Modulation). El control de velocidad de motores y la intensidad de iluminación incandescente (o de LEDs) son las aplicaciones por excelencia para esta técnica ampliamente utilizada.

Se tratara de enfocar en este informe la manera más eficiente de controlar la velocidad de un motor mediante este método, el cual basa su funcionamiento en conectar de manera controlada y durante tiempos ajustables la alimentación del motor, y de esta forma poder variar la velocidad sin perder capacidad de tracción, o fuerza "torque".

Page 9: control de velocidad motor dc

Para obtener un funcionamiento suave, sin golpes, parpadeos ni sonidos extraños, se debe trabajar con frecuencias superiores a las que un bobinado de motor pueda "resonar". Estas frecuencias se ubican, en la mayoría de los casos, por encima de los 10Khz. Una vez encontrada la frecuencia apropiada de funcionamiento para dicho sistema, se observa que quizás sean demasiadas conexiones en un segundo para la velocidad mínima deseada. Aunque es probable que el motor gire demasiado rápido y sencillamente se necesite una velocidad de este menos rápida o más lenta. Bajar la frecuencia de conmutación es impracticable porque comenzarían los ruidos, entonces, se recurre a la modulación por ancho de pulso.

En este caso se utiliza un microcontrolador, para obtener mediante su programación, una secuencia de "unos" y "ceros" que respetarán una frecuencia fija pero que pueden tener un ciclo de trabajo variable. Este término, también conocido como Duty, hará variar el ancho del impulso de conexión para obtener así un funcionamiento controlado desde la detención absoluta hasta la marcha a máxima potencia. Para un duty igual a cero, el motor estará detenido. A pesar de ser impulsos enviados al motor que poseen su tensión nominal de trabajo y que se ejecutan a una frecuencia de más de 10Khz, no tendrán el ancho suficiente para entregar la energía necesaria que el motor necesitaría para comenzar a girar.

Para el tipo de conmutación mencionado hasta aquí y para obtener un funcionamiento satisfactorio a una frecuencia tan elevada, una llave mecánica o un relé se vuelven imposibles de utilizar. Es aquí donde hace su presentación el mosfet IRFZ44N.

¿Qué es el IRFZ44N?

Es un transistor de tecnología MOS-FET (Metal–Oxide–Semiconductor – Field Effect Transistor) que posee destacadas características que lo hacen ideal para este tipo de aplicaciones. Se quiere también aclarar que esta tecnica se puede realizar con transistores bipolares (NPN - PNP), con tiristores, triacs, o IGBT según la conveniencia de la aplicación, es decir, que esta aplicación no se hace sólo con un transistor MOS-FET, como se utilizará en este caso sino que se pueden encontrar aplicaciones que utilizan sistemas electrónicos de conmutación muy variados y como se ha mencionado antes, ajustables a las necesidades de la aplicación.

Page 10: control de velocidad motor dc

Figura 4

Algunas características son:

Entre las características más destacadas de este transistor encontramos que es capaz de manejar corrientes de hasta 50 Amperes ofreciendo una resistencia tan baja como 0,017 Ohms. Esto permite un régimen de trabajo extraordinario ya que trabajando al máximo de sus posibilidades no desarrollará una potencia mayor a los 45 Watts.

Una sencilla y práctica explicación del funcionamiento de un transistor MOS-FET puede resumirse a comprender el comportamiento de la circulación de corriente dentro del transistor. Al aplicar una determinada tensión sobre la compuerta, puerta o Gate (positiva respecto a GND), se genera dentro del transistor un campo eléctrico que permite la circulación de corriente entre el terminal identificado como Drain y el terminal Source. Tan simple como eso.

Al aplicar tensión al Gate, el campo eléctrico aporta huecos o lagunas, hecho que favorece y activa la circulación de electrones entre Drain y Source.

Cuando la tensión en Gate se interrumpe o se coloca a un bajo potencial, la corriente entre Drain y Source se interrumpe. Tenemos de este modo una llave electrónica comandada por tensión (no por corriente, atentos a este punto) que no tendrá inconvenientes en conmutar a frecuencias tan altas como las que necesitamos para controlar una carga.

Otro de los detalles importantes a considerar en un diseño que utilice PWM con un MOS-FET es el manejo de los tiempos y las formas de los flancos de subida y bajada de la señal aplicada al Gate. No respetar con fidelidad la forma de onda con la que se debe activar el Gate de un MOS-FET puede llevar a disipaciones anormales de temperatura y funcionamientos al límite de los márgenes de seguridad térmica.

Page 11: control de velocidad motor dc

c. Cristal de Cuarzo de 4Mhz

Figura 5

La importancia de los cristales de cuarzo es el resultado de su extremadamente alto factor de calidad “Q” , tamaño relativamente pequeño y excelente estabilidad en temperatura.

Los cristales de cuarzo están compuestos de dióxido de silicio.

La aplicación de un campo eléctrico sobre un cristal genera una fuerza en la estructura del cristal, haciendo que este vibre a una frecuencia determinada. Los cristales de cuarzo proveen una fuente fiable de aplicaciones en crono-medición.

El cristal de cuarzo es utilizado como componente de control de la frecuencia de circuitos osciladores convirtiendo las vibraciones mecánicas en voltajes eléctricos a una frecuencia específica. Esto ocurre debido al efecto "piezoeléctrico". La piezo-electricidad es electricidad creada por una presión mecánica. En un material piezoeléctrico, al aplicar una presión mecánica sobre un eje, dará como consecuencia la creación de una carga eléctrica a lo largo de un eje ubicado en un ángulo recto respecto al de la aplicación de la presión mecánica.

En algunos materiales, se encuentra que aplicando un campo eléctrico según un eje, produce una deformación mecánica según otro eje ubicado a un ángulo recto respecto al primero. Por las propiedades mecánicas, eléctricas, y químicas, el cuarzo es el material más apropiado para fabricar dispositivos con frecuencia bien controlada.

Una característica interesante de un cristal de cuarzo es su capacidad de presentar un comportamiento resonante. De la misma manera que un péndulo o un columpio oscila con una frecuencia propia si, tras darle impulso, se le deja moverse libremente, un cristal de cuarzo sometido a un estímulo eléctrico puede continuar vibrando a una cierta frecuencia (dependiente de la propia naturaleza del cristal), hasta perder ese impulso

Page 12: control de velocidad motor dc

inicial. Si se mantiene el estímulo de manera periódica y sincronizada, tendremos una señal a una frecuencia extraordinariamente precisa, en lo que podría considerarse la contrapartida electrónica de un reloj de péndulo.

Todo microprocesador o microcontrolador requiere de un circuito que le indique a qué velocidad debe trabajar. Este circuito es conocido por todos como un oscilador de frecuencia. Este oscilador es como el motor del microcontrolador por lo tanto, este pequeño circuito no debe faltar. En el caso del microcontrolador PIC16F84 el pin 15 y el pin 16 son utilizados para introducir la frecuencia de reloj.

El microcontrolador PIC16F84 requiere de un circuito externo de oscilación o generador de pulsos de reloj. La frecuencia de reloj máxima es de 20 Mhz; sin embargo, en este caso se hizo uso de este generador con una frecuencia de reloj de 4 MHz, ya que es más práctico y está más extendido.

El PIC16F84 puede utilizar cuatro tipos diferentes de reloj oscilador externos. El tipo de oscilador dependerá de la precisión, velocidad y potencia que requiramos. En el momento de programar el microcontrolador se deberá especificar en los parámetros el tipo de oscilador que utilizamos en nuestro proyecto electrónico. En la siguiente figura se muestra la conexión que se debe realizar al momento de tener el cristal de cuarzo junto con el PIC16F84.

Figura 6. Conexiones Básicas para un Cristal de Cuarzo.

d. Dip Switch

Page 13: control de velocidad motor dc

Interruptor DIP viene del inglés "dual in-line package" en electrónica y se refiere a una línea doble de contactos. Consiste en una serie de múltiples micro interruptores unidos entre sí.

Los interruptores DIP permiten al usuario configurar un circuito impreso para un uso específico. Las instrucciones de instalación deben decir perfectamente cómo fijar los interruptores del DIP. Los interruptores DIP son siempre interruptores de tipo palanca, en los cuales los centrales tienen dos posiciones posibles "ON" o "OFF". (En vez de por intervalos, y generalmente se puede ver los números 1 y 0.)

Figura 7. Dip Switch de 4 interruptores

En este caso se utilizara este dispositivo como medio de maniobra del motor DC, siendo cada interruptor un nivel de velocidad del motor, diseñado de manera que el motor vaya desde un estado de parada hasta el de velocidad máxima o de 100%, de igual manera se explicará con mayor detalle a medida se vaya necesitando de ello.

2. Funcionamiento

A continuación se explica el funcionamiento de dicho circuito controlador de velocidad para un motor DC.

El objetivo de dicho circuito es controlar la velocidad de giro del motor utilizando un circuito integrado programable en este caso el PIC16F84, en el lo que se busca es llevar a cabo una programación sencilla en el dispositivo y además una configuración de componentes analógicos sencillos y conocidos.

Se pensó en regular la velocidad del motor por secciones divididas mediante porcentajes, es decir controlar a que porcentaje de velocidad está trabajando el motor ya

Page 14: control de velocidad motor dc

sea 10%, 20%, 30% y así sucesivamente hasta llegar a la velocidad máxima del motor al 100%.

Para programar en un PIC esta idea es necesario pensar cómo deben ser las instrucciones indicadas a dicho integrado para que el mismo pueda llevar a cabo esta tarea.

Partiendo de que los circuitos integrados digitales reciben instrucciones de operación en leguaje binario, entonces una manera efectiva de indicar instrucciones es mediante paquetes de bytes que representen un número binario.

En este caso como lo que se quiere es controlar la velocidad del motor desde 0 a 100% se esquematiza la siguiente tabla:

Tabla 2

Numero binario de entrada

Porcentaje de velocidad en motor

0000 0%0001 10%0010 20%0011 30%0100 40%0101 50%0110 60%0111 70%1000 80%1001 90%1010 100%

Como se puede observar los datos de entrada son números binarios desde el 0 hasta el 10 en paquetes de 4 dígitos, por lo tanto el primer dispositivo seleccionado para controlar los datos de entrada al integrado es el dip switch.

El mismo se conecta a las entradas RA0, RA1, RA2 Y RA3 del PIC16F84 cuyos pines desde RA0 a RA3 fueron configurados en la programación como entradas.

A su vez estos pines también se conectan a una resistencia cada uno de 10KΩ con la finalidad de generar una caída de tensión a la entrada de alguno de los pines cuando su respectivo interruptor se conecte a tierra.

Page 15: control de velocidad motor dc

Figura x. conexión del Dip switch

En la figura se puede apreciar la conexión del dip switch, cuya configuración está diseñada para determinar los datos de entrada al PIC16f84.

Posteriormente se necesita crear un algoritmo de programación para que este dispositivo pueda cumplir con la tarea deseada a determinados bit de entrada.

Dicha programación fue diseñada con la implementación de la técnica más conocida en electrónica de potencia para regular y controlar la velocidad de un motor, la modulación por ancho de pulso, la cual consiste en enviar una señal cuadrada a la alimentación del motor mediante uno de los pines de salida en este caso el utilizado es el RB7 en el pin numero 13.

Directamente este pin va a ser conectado a la entrada del motor, y como es sabido esta máquina rotativo necesita altas cantidades de corriente para generar el torque adecuado que produce el giro en el eje del mismo; dichas cantidades de corriente pueden dañar el dispositivo integrado por lo cual se coloca a la salida de RB7 o pin 13 un transistor de potencia Mosfet polarizado mediante una resistencia en la puerta que se representa con la letra G, el pin Source o fuente se conecta a tierra y el Drenador o pin D se conecta directamente al motor ya que en estos dispositivos es el pin D quien está en la capacidad de entregar grandes cantidades de corriente.

Page 16: control de velocidad motor dc

Figura x. identificación de los pines en el transistor mosfet

Figura x. Símbolo circuital del transistor de potencia mosfet IRFZ44N

De esta manera se conecta el motor al pin Drenador del mosfet, debido a que el pin source o fuente esta conectador a tierra, luego se conecta el motor a 5Vdc de manera que el transistor controlado por el pic entra en estado de conmutación instantánea ya que la señal cuadrada de alimentación llega a la puerta del mosfet a voltaje constante, con variaciones en el ancho de frecuencia.

Finalmente se recurre a la ejecución, edición, compilación, quemado y pruebas de la programación de un algoritmo de regulación de velocidad de un motor de corriente continúa mediante la modulación de anchura de pulso por cantidades porcentuales de trabajo.

A continuación se da una breve explicación de cómo fue programado el PIC y se mencionan las características y funcionalidades de los comandos más resaltantes:

Primeramente se definan las entradas y las salidas del PIC en este caso y como comúnmente se hace se han tomado los pines desde RA0 RA3 como entradas y las líneas del puerto B como salida

Finalmente se muestra el plano del circuito que llevara a cabo:

Page 17: control de velocidad motor dc

Inicio:BSF STATUS, RPOMOVLW b'00001111'MOVWF TRISA CLRF TRISB BCF STATUS, RPO

Luego en la segunda parte de la programación el bloque que se estudiará es el bloque de acciones principales, en el cual se constituye la acción de encendido y apagado del motor DC.

movf PORTA,W andlw b'00001111' movwf GuardaEntrada btfsc STATUS,Z

Primeramente se mueven copias del registro PORTA al destino W que es el acumulador para guarda los datos de la instrucción anterior, es decir, del acumulador en el comando señalado (GuardaEntrada).

Posteriormente se condiciona el seguimiento mediante la revisión de Prueba en el bit Z del registro STATUS. De esta manera se mantiene la instrucción si bit Z es 1, y continua la subrutina si Z cambia a 0 (RAO:RA3=0 el motor se detiene).

Esto se logra dado que internamente en el PIC La compuerta and por medio de su característica determina el resultado agregándolo en el acumulador, esto se realiza luego

Page 18: control de velocidad motor dc

de comparar cada bit del registro dado con el acumulador, solo saldrá un 1 cuando para ambas entradas exista un 1 de resto será cero.

Como se ha mencionado anteriormente la intención de la programación es hacer que el dispositivo funcione a ciertos porcentajes de operación, entonces lo que se trata es de conseguir que a determinados bits de entrada el motor tenga una respuesta diferente según la tabla N°2 mostrada anteriormente.

goto DC_CeroPorCiento = de esta manera salta a la etiqueta DC_CeroPorCiento.

sublw MaximaEntrada = de esta manera realiza la resta entre MaximaEntrada - acumulador. En este caso como la máxima entrada para el motor es el numero 10 entonces la resta sería: 10 - (PORTA).

Este paso se hace con la intención de comparar los datos de entrada con el paquete máximo de bits al que buede operar el motor destacando que si es mayor a 1010 es decir 10 en decimal que representa el 100% de trabajo en la maquina, pues la misma deberá detenerse.

btfsc STATUS,Z = Prueba el bit Z del registro STATUS. De esta manera se mantiene la instrucción si bit Z es 1, y continua la subrutina si Z cambia a 0 (RAO:RA3=0 el motor se detiene).

goto DC_CienPorCiento

De esta manera salta a la etiqueta DC_CeroPorCiento. Ya que en el análisis inverso si el paquete de bits que llegan a la entrada son menores a 10 decimal el motor debería arrancar a determinado porcentaje de trabajo según lo defina la entrada

btfss STATUS,C= Prueba el bit C del registro STATUS, de esta manera salta la siguiente instrucción si bit C es 1, es decir, chequea el bit C que sea 1 y que el acumulador (PORTA) sea menor o igual a 10 para que el motor arranque a un determinada velocidad.

Esto es para cuando el puerto A tenga un valor mayor a 10, es decir, un valor mayor al valor máximo de funcionamiento del motor. Para esta instrucción el motor está apagado.

MOVWF Ciclos_Off

De esta manera se transfiere una copia de lo que este guardado en el acumulador hasta el momento, al registro llamado Ciclos_Off. Este es para el caso donde la resta sea 10 - PORTA y PORTA sea mayor a 10, para este caso también el motor está apagado.

Page 19: control de velocidad motor dc

movf Guardaentrada,W = guarda el valor que lleva hasta ahora el acumulador W, en el registro señalado (GuardaEntrada).

movwf Ciclos_On = Mueve una copia del acumulador W al registro Ciclos_On. De esta manera carga RA0:RA3 en Ciclos_On.

Esta programación ofrece una ventaja al utilizar el dip switch de cuatro posiciones, para manipular el motor ya que permite de variar la velocidad de 0% a 100%, ingresando números binarios en el Puerto A en un rango de 0 a 10, si es mayor a 10 entonces automáticamente se detiene, el código está desarrollado en Mplab 8,

De esta manera se culmina esta subrutina y nos dirigimos a la subrutina de encendido del motor, denominada Motor_On.

movlw b'10000000' = movwf PORTB call Retardo_1ms decfsz Ciclos_ON,F goto Motor_ON clrf PORTB call Retardo_1ms decfsz Ciclos_ON,F goto Motor_OFF goto FIN

Primeramente se ordena que el número dicho binario se guarde al acumulador, en el acumulador. De esta manera habilita los drivers y un sentido de giro para posteriormente guardar el valor que lleva hasta ahora el acumulador W, en el registro señalado (PORTB), que representa la salida que controla al mosfet que lleva la corriente al motor.

Salta a una subrutina en la etiqueta Retardo_1ms y Decrementa el registro Ciclos_ON. El resultado de la operación se coloca en el destino F. En otras palabras si Ciclos_ON =0 se coloca en el destino Motor_OFF.

En este caso salta a la etiqueta Motor_ON y realiza su subrutina y El contenido del registro PORTB se pone en ceros. De esta manera inhabilita los drivers y el motor se muestran parados.

En el caso contrario Salta a la etiqueta Motor_OFF y realiza su subrutina para Finalizar.

Por la línea de salida se genera una onda cuadrada de frecuencia constante s 100 Hz (periodo de 10 ms) y ciclo de trabajo variable desde 0% a 100%, dependiendo del valor de

Page 20: control de velocidad motor dc

la entrada del Puerto A. Es decir, el tiempo en alto varía entre 0 ms (0%) y 10 ms (100%) de acuerdo con la siguiente tabla:

Numero binario de entrada

Porcentaje de velocidad en

motor

Ciclos_ONSemiperiodo

alto

Ciclos_OFSemiperiodo

BAJO0000 0% 0ms 10ms0001 10% 1ms 9ms0010 20% 2ms 8ms0011 30% 3ms 7ms0100 40% 4ms 6ms0101 50% 5ms 5ms0110 60% 6ms 4ms0111 70% 7ms 3ms1000 80% 8ms 2ms1001 90% 9ms 1ms1010 100% 10ms 0ms>10 0% - -

DC_CeroPorCiento

clrf PORTB = El contenido del registro PORTB se pone en ceros. De esta manera inhabilita los drivers y el motor se muestra parado.

goto FIN = finaliza la subrutina.

DC_CienPorCiento

movlw b'10000000' = mediante este comando ordena que coloque el numero binario indicado en él, en el acumulador. De esta manera habilita los drivers y un sentido de giro.

movwf PORTB = guarda el valor que lleva hasta ahora el acumulador W, en el comando señalado (PORTB).

FIN:goto Principal = Inicia la subrutina nuevamente.

Finalmente lo que se quiere lograr mediante esta técnica es asignar cierta duración de tiempo en alto o en bajo a un dato digital de n bits que se considera salida de la etapa procesadora.

Conclusión

Page 21: control de velocidad motor dc

Mediante la especificación detallada de cada dispositivo utilizado en el proyecto, y con ayuda de una buena ubicación y programación de estos, se obtuvo de manera efectiva el circuito montado en la práctica, obteniendo los resultados deseados y así de esta forma poder culminar de manera provechosa el montaje realizado.

Fue necesario además de contar con cada dispositivo, el programar el microcontrolador utilizado para este proyecto, como lo fue el PIC16F84, ya que por medio de este es que se pudo realizar la configuración o estructura externa del circuito montado, además de contar con el datasheet para la correcta conexión de cada pin con los dispositivos necesarios para el respectivo funcionamiento.

Este PIC se utilizó por ser de bajo costo, además de poseer varias características que lo hacían un candidato perfecto, por mencionar algunas de ellas se tiene que este microcontrolador posee una cantidad baja de instrucciones lo cual lo hacen aun más accesible para procesos de razonamiento a los principiantes como es nuestro caso, por otra parte se tiene que este pic posee versiones de bajo consumo y de esta manera al ejecutarse un ciclo máquina del PIC son 4 ciclos de reloj, por lo cual si tenemos un PIC con un cristal de 4 MHz, se ejecutarán 1 millón de instrucciones por segundo, de esta manera genera cada instrucción de forma veloz, también vale mencionar que este pic viene de una familia con características de vida de larga duración, siendo esta aproximadamente de 40 años, y de esta manera se obtienen algunas características de este y el porqué de su utilización en este proyecto.

Dentro de los dispositivos utilizados y explicados con anterioridad, se tiene el Dip Switch, el cual posee una serie de interruptores que se encargaron de funcionar de manera correcta al ingresar los bits necesarios para el arranque efectivo del motor DC , y de esta manera poder mediante la maniobra de estos el controlar a este por medio de su velocidad, siendo esta controlada por números binarios presentes en cada interruptor y que por medio de la formación de los 4 interruptores de manera de formar el valor máximo de velocidad el motor pudiese trabajar a su valor máximo que en este caso es del 100% o 10 en binario que seria 1010 cuando así se quisiera.

Cada entrada y salida del pic está destinada para tal fin, de manera que las entradas se conectaron a su respectiva posición y dispositivo asociado y las salidas de igual manera se realizó su formación, obteniendo de manera provechosa la culminación de este proyecto.