CONTROL DE UN MOTOR C.C

[Escriba texto] CONTROL DE UN MOTOR C.C. Trabajo realizado por: Erick Benjamín Chávez Torrez. Javier Antonio Gaitán Carlos Rene Siles Vado Managua, ...
17 downloads 1 Views 527KB Size
[Escriba texto]

CONTROL DE UN MOTOR C.C. Trabajo realizado por: Erick Benjamín Chávez Torrez. Javier Antonio Gaitán Carlos Rene Siles Vado

Managua, Nicaragua, 14 de agosto del 2014.

Resumen: El presente proyecto consiste en el control de un motor de corriente continua (C.C.), se controla el giro del motor comparando la temperatura medida por dos sensores que simula la comparación de la temperatura en una habitación con respecto del medio ambiente así el motor simula un ventilador que introduce aire del exterior a la habitación o viceversa según se requiera, el micro controlador que se uso es un PIC 16F877A y los sensores son dos LM35, la simulación del circuito fue hecha en Proteus 7 y el PCB Wizard se utilizó para hacer las pistas impresas. Se recomienda que ha futuro se mejore el puente H para que sea más eficiente y se modifique el programa para agregar un teclado con el fin de que los usuarios programe la temperatura a las que responde el motor para hacer los giros ya que en la actualidad dichos valores están predefinidos en el programa sin admitir cambios por el usuario.

Índice de términos LM35, PIC, C.C, puente H, socket.

I.

Introducción.

Este proyecto muestra la lógica de cómo funciona un sistema de control de un cuarto frio, ya que dicho proyecto nos motivó a realizarlo con el objetivo de mantener la temperatura en una habitación lo más agradable posible. Se puede decir que este proyecto tiene mucha aplicaciones ya se en un incubadora de huevos o la conservación de alimentos a una considerada temperatura o cualquier otra aplicación en la cual se requiera comparar una temperatura para tomar una decisión. Nuestro proyecto trata del control de un motor (C.C) el cual controlamos su inversión de giro usando la comparación de dos temperaturas con el propósito de calentar o enfriar una

habitación con respecto a la temperatura ambiente de dicho cuarto, ya que utilizaremos dos sensores que nos servirán para el manejo de la temperatura que logremos desear. Esto puede funcionar perfectamente con un solo sensor de temperatura y hasta controlar la velocidad y la temperatura deseada, pero al agregar un segundo sensor de referencia tenemos la opción de acercar a un punto medio la temperatura y apagar al motor ahorrando energía, si el exterior es más frio o caliente se saca aire o se introduce en dependencia de lo que se desee hacer para satisfacer la aplicación y eso lo puede realizar este sistema de manera automática tomando decisiones en dependencia a los criterios previamente programados.

[Escriba texto]

II.

Marco Teórico

El proyecto para su posible realización se necesitan de distintos conocimientos teóricos, los cuales ya han sido abordados en el trascurso de nuestra carrera ya que el proyecto requiere de varios conocimiento para lo que son los manejos y programación del PIC y su dicha compilación en C CCS1, el estudio de las hojas de datos de los sensores LM35 y el PIC16F877A2, además del manejo de conceptos básicos de electrónica analógica3 e n el manejo de los transistores y el cálculo de luminosidad de los leds que se llegaron a ocupar. El estudio del diseño de transistores en el diseño del puente H para el posible control y manejo del motor para la inversión de giro de dicho motor, 4 ya que para la compresión de este proyecto se necesitan de conocimiento electrónica y mostramos un método sencillo de la utilización de sensores para el manejo de temperatura y control de un motor para que un futuro sea más fácil para el usuario.

III.

Metodología

Procedimientos. En internet se encuentran innumerables circuitos que controlan el giro de motores y muchos otros que miden temperatura pero para practicar quisimos hacer nuestro propio diseño y al incluir un sensor más al sistema se logra cambiar aunque sea un poco los circuitos convencionales que se encuentran en la web. Para comenzar hicimos un algoritmo que simplifica el funcionamiento de nuestro programa, dicho algoritmo nos sirve de guía al programar y a la comprensión de manera más fácil que si se viera el programa en si, para que futuros estudiante que deseen estudiar o modificar este proyecto lo comprendan rápidamente.

Inicio

Declare: tem1, tem2

Censar las temperaturas, tem1 y tem2

Tem1== Tem2

Tem1T em2

Motor a la izquierda

Algoritmo.

En segundo lugar desarrollamos el software partiendo de la idea básica que nos planteamos en el algoritmo, se diseñó un circuito en Proteus tomando como base dicho software para que todo el sistema fuese congruente –que los pines coincidan en el hardware y el software-,ya con el programa y el circuito diseñados pasamos a realizar el PCB -circuito impreso en tarjeta- utilizando el PCB wizard, a continuación adjunto algunas imágenes de lo que he narrado.

[Escriba texto]

Imagen_1.Circuito

que a su vez se divide en dos tarjetas independientes cada una con su propio sensor LM35 y un LED que indica si la alimentación de los 5v está presente, 2. La Unidad Central de Procesamiento –UCP- que recoge los datos transmitidos por el sensor y evalúa que hacer con la información brindada, que en nuestro caso puede tomar una de tres opciones –detener, giro a la izquierda o derecha del motor-, 3. El modulo del motor que es donde se encuentra nuestro puente H compuesto por cuatro transistores –dos NPN 2N3906 y dos PNP 2N3904-. En la Imagen_3 se muestra los tres módulos diseñados.

Imagen_3. Sistema modular.

Materiales: 1 PIC 16f877A. 2 capacitores de cerámica de 22pF. 1 cristal de cuarzo de 4GHz. 4 LED Azules. 4 Resistores de 120 Ohmios. 6 Bloques conectores de 3 terminales. 8 Bloques conectores de 2 terminales. 1 tarjeta virgen. 1 rollo de Estaño. Cable UTP. I

Equipos:

Imagen_2. Pistas del circuito del UCP.

Un aspecto importante a destacar es que el diseño de todo el sistema ha sido modular, esto significa que se dividió el proyecto en tres partes, 1. El censado de la temperatura

Multímetro Cautín Quemador de PIC.

[Escriba texto]

IV.

Cálculos Matemáticos.

Intensidad de luminosidad de los LED.

Como deseo suministrarle al LED 200mA (Iled) y conozco el v=5v que es el voltaje con que alimento la resistencia R a al LED y conozco el voltaje (vled) del led que son 2v, procedo a despejar la formula anterior y encuentro la R.

V.

Al tener el PCB procedimos a imprimirlo en filmina para que luego se planchara dicha filmina sobre una tarjeta virgen.

Imagen_5

Después del planchado se procedió a introducir las tarjetas en acido nítrico diluido en agua, como se muestra en la imagen_6.

Análisis de Resultados:

El resultado final fueron 4 tarjetas electrónicas distintas la más compleja fue la tarjeta que contenía un socket de 40 pines donde se colocaría el micro controlador, puesto que teníamos que perforar con brocas tan finas como las de 1/16 y de 1/32 de pulgadas – estas brocas se quiebran con facilidad si se les hace mucha presión- la labor de construcción fue muy ardua y surgieron muchos imprevistos que nos retraso en la realización del montaje físico del proyecto.

Imagen_6

Luego se perforan los agujeros donde se introducen los pines de los componentes.

En la imagen_2 se muestra el circuito central del proyecto,a continuación dejo la imagen_4 que son dos PCBs e imagen_5 donde se observa el proceso de planchado. Imagen_7

Para finalizar se colocan los dispositivos en sus respectivos lugares y se sueldan con cautín y estaño, en la imagen_8 se muestra las tarjetas de los sensores y del UCP terminadas y la conexión de la LCD.

Imagen_4 de izquierda a derecha: Circuito del puente H, circuito del LM35.

[Escriba texto]

Esto bien puede usarse para una forma de mejorar dicho proyecto ya hacerlo más factible para el usuario, ya que se puede hacer un análisis de dicho giro e inversión del motor usando un integrado (L293) que realiza la misma función del puente H pero debido a falta de recursos monetarios y tiempo análisis en el diseño se nos hizo difícil tomar esta posible solución, por eso una recomendación seria la profundización del análisis del diseño.

Imagen_8

VI.

Conclusiones.

Al finalizar el proyecto y evaluar los resultados alcanzados y las dificultades con las que nos enfrentamos, pudimos detectar ciertas debilidades que nos amenazan no solo a nuestro grupo de trabajo sino que también a todo estudiante que desee realizar un proyecto de esta índole o parecido. Entre las múltiples amenazas –dificultades para realizar el proyecto- se encuentra la técnica que ocupamos para imprimir el circuito en la tarjeta ya que es un proceso tedioso y poco eficiente, ay otros métodos mucho mas eficientes que la misma UNI nos podría capacitar en el uso de la técnica de exposición de la tarjeta en rallos UV. –Ultra violeta-. Además también que el diseño del circuito del puente H para la inversión y giro de motor tuvo distintas dificultades las cuales para un futuro se necesitan más profundización en el análisis y mejora en el diseño de dicho circuito, ya que tanto en la simulación y práctica se obtuvieron resultados diferentes.

[Escriba texto]

5. Análisis de puente H, VII.

Referencias.

1. García, Eduardo: “Compilador C CCS y simulador Proteus para Micro controladores PIC”: Primera edición. 2. Hoja de datos del sensor LM35. 3. Hoja de datos del PIC 16f877A. 4. Paz, Felipe: “Conceptos básicos de la electrónica analógica.

VIII.

Apéndice.

- LM35: Sensor de temperatura. - PIC: Micro controlador fabricado por la empresa Microchip Technology Inc. -C.C: Corriente Continua. -Puente H: Arreglo de transistores para controlar la inversión de giro de un motor. Socket: Conexión o espera en la tarjeta electrónica para montar un dispositivo.

[Escriba texto]

IX.

Anexos

Código del programa. /////////////////////////////////////////////////////////// //// PROYECTO SISTEMAS DE MEDICION //////////////////////////////////////////////////////////

////

#include #deviceadc=10 #fuses XT, NOWDT #use delay(clock=4M) #include #use standard_io (B) //Declaración de las funciones. void stop(void); //parar el motor. void derecha(void); //giro a la Derecha (a favor de las manecillas del reloj.) void izquierda(void); //|| || || Izquierda (contra manecillas del reloj.) void emergencia(void); //Esta función se activa manualmente si fallan los sensores en la práctica. int bandera=0; long val, val_2; floattemp, vol, temp_2, vol_2; voidmain() { intop; SETUP_ADC_PORTS(AN0); SETUP_ADC(ADC_CLOCK_INTERNAL); //La fuente de reloj para la conversión sera lcd_init(); //Inicializo la pantalla. printf(lcd_putc,"\f **Encendido**"); delay_ms(500); while (TRUE) //Ciclo infinito. { SET_ADC_CHANNEL(0); //Seleccionamos canal 0 para leerlo. delay_us(20); //un tiempo para la preparación de lectura val=READ_ADC(); //Se lee y guarda el valor del ADC vol=5.0*val/1024.0; //Ecuación para convertir a unidades celsius temp=vol/0.01; SET_ADC_CHANNEL(1); //Seleccionamos canal 0 para leerlo. delay_us(20); //un tiempo para la preparación de lectura val_2=READ_ADC(); //Se lee y guarda el valor del ADC vol_2=5.0*val_2/1024.0; //Ecuacion para convertir a unidades celsius temp_2=vol_2/0.01; printf(lcd_putc,"tem= %f ",temp);

[Escriba texto]

if (((temp == (temp_2-1))||(temp == (temp_2+1))||(temp == temp_2))&&(input(PIN_B6) == 0)){ op=1; bandera=1; }//comparo las temperatura y les doy un marjen de error de +1,-1 if (((temp> temp_2)&&(input(PIN_B6) == 0))) { op=2; bandera=2; } if (((temp< temp_2)&&(input(PIN_B6) == 0))) { op=3; bandera=3; } if (input(PIN_B6) == 1) { op=4; bandera=4; } switch(op) { case 1: stop(); //--Establezco estacionado el motor.-bandera=1; break; case 2: derecha(); //--llamado de la función derecha.-break; case 3: izquierda(); //--llamado de la función izquierda.-break; case 4: emergencia(); //--llamado de la función emergencia.-break; }//Fin switch }//Fin while(TRUE) }//Fin main //++++++Cuerpo de las funciones++++++ void stop() { stop: lcd_gotoxy(1,1); printf(lcd_putc,"\fS1 Estado S2\n%f**D** %f",temp,temp_2); output_low(pin_B1); output_low(pin_B2); delay_ms(150); } void derecha() { if (bandera != 2){ stop(); delay_ms(1850); }//para saber de donde vengo. lcd_gotoxy(1,1); printf(lcd_putc,"\fS1 Estado S2\n%f->D-> %f",temp,temp_2); output_high(pin_B1); output_low(pin_B2); delay_ms(150); bandera=2; //digo estube en la funcion derecha. } void izquierda()

[Escriba texto]

{ if (bandera != 3) { stop(); delay_ms(1850); }//para saber de donde vengo. lcd_gotoxy(1,1); printf(lcd_putc,"\fS1 Estado S2\n%f

Suggest Documents