You are on page 1of 29

Capitulo 3

OPERADORES
Introduccin a los Operadores Aritmticos.
El lenguaje PIC BASIC pose operadores para asignar valores, comparar objetos y eficientar las diferentes operaciones. Los objetos manipulados para tal propsito son llamados operandos. Las operaciones del lenguaje PIC BASIC pueden tener ms de dos operandos. Estos sirven para crear instrucciones y expresiones con variables, constantes y comentarios. 3.1 Expresiones Una combinacin de operadores y operandos son llamadas expresiones. Las expresiones realizan los clculos y guardan los resultados en las variables. PBP efecta todas las operaciones matemticas en orden jerrquico. Esto significa que existe precedencia para los operadores. Por ejemplo: Multiplicacin y divisin son efectuados antes que suma y resta. Para asegurarse que las operaciones son efectuadas en el orden que se desea, use parntesis para agrupar las operaciones. A = (B + C) * (D - E) Todas las operaciones matemticas se realizan sin signo y con una precisin de 16 bit.
Los operadores son numerosos, pero para el 90% de todos los conocer algunos de ellos. programas solamente son necesarios

Los operadores pueden ser clasificados dentro de las siguientes categoras: Operadores Aritmtico. Operadores de Bit. Operadores de comparacin. Operadores Lgicos.

3.2 Operadores Aritmticos Bsicos Los operadores soportados son:


Operador + * = ABS / // << >> REV Descripcin Suma Resta multiplicacin Asignacin de valor Valor absoluto de un numero Divisin Residuo left shift right shift bit reversing

Ing. Eduardo Snchez Arellano. - Pgina 37 -

3.2.1 Multiplicacin PBP efecta multiplicaciones 16 x 16 bits. El operador * devuelve los 16 bit inferiores del resultado de 32 bit. Esta es la multiplicacin tpica encontrada en los lenguajes de programacin. El operador ** devuelve los 16 bit superiores del resultado de 32 bit. Estos dos operadores pueden ser utilizados en conjunto para realizar multiplicaciones de 16 x 16 bit que produzcan resultados de 32 bit. Ejemplo: W1 var word W2 var word W3 var word W1 = W0 * 100 Multiplica el valor de W0 por 100 y coloca el resultado en W1 W2 = W0 ** 1000 W0 por 1000 y coloca los 16 bit superiores en W2

End

. Prctica 5
TRISB=0

Programa de multiplicacin para probar en el circuito de la figura No. 2.3


Configura el puerto B como salida.

X var Byte Led var Byte Loop: Led = 1 For X=1 to 8 PortB=Led Led=Led*2 Pause 500 Next X Goto Loop End

Declara una variable X tipo byte. Declara una variable Led tipo byte. Etiqueta Asigna un valor inicial a led Inica la estructuta de repeticin de 1 a 8 Manda al Puerto B el contenido de led Multiplica Led por 2 Retardo de .5 seg Regresa mientras X no sea igual a 8 Brinco incondicional a Loop Fin de programa.

3.2.2 Divisin PBP efecta divisiones de 16 x 16 bit. El operador / devuelve el resultado de 16 bit. El operador // devuelve el resto (mdulo del nmero).

Ejemplo:
W0 var word W1 var word W2 var word W1 = W0 / 1000 W2 = W0 // 1000

End

Divide el valor de W0 por 1000 y coloca el resultado en w1 Divide el valor de W0 por 1000 y coloca el resto en W2

Ing. Eduardo Snchez Arellano. - Pgina 38 -

. Prctica 6
TRISB=0

Programa de divisin para probar en el circuito de la figura No. 2.3


Configura el puerto B como salida.

X var Byte Led var Word Loop: Led = 255 For X=1 to 8 PortB=Led Led=Led/2 Pause 500 Next X Goto Loop End

Declara una variable X tipo byte. Declara una variable Led tipo byte. Etiqueta Asigna un valor inicial a led Inica la estructura de repeticin de 1 a 8 Manda al PuertB el contenido de led Divide Led entre 2 Retardo de .5 seg Regresa mientras X no sea igual a 8 Brinco incondicional a Loop Fin de programa.

3.2.3 Shift DESPLAZAMIENTO Los operadores << y >> desplazan un valor hacia la izquierda derecha respectivamente, 1 a 15 veces .Los bits desplazados se colocan en 0. Ejemplo: Main: B0 = B0 << 3 W1 = W0 >> 1 Goto main End

Desplaza B0 tres lugares a la izquierda (igual a multiplicar por 8) Desplaza W0 una posicin a la derecha y coloca el resultado en W1 (igual a dividir por 2)

. Prctica 7
TRISB=0

Programa de desplazamiento para probar en el circuito de la figura No. 2.3 Configura el puerto B como salida. Declara una variable X tipo byte. Declara una variable Led tipo byte. Etiqueta Asigna un valor inicial a led Inica la estructura de repeticin de 1 a 8 Manda al PuertB el contenido de led

X var Byte Led var Word Loop: Led = 1 For X=1 to 8 PortB=Led

Led=Led<<1 Desplaza Led una posicin a la izquierda. Pause 500 Next X Goto Loop End Retardo de .5 seg Regresa mientras X no sea igual a 8 Brinco incondicional a Loop Fin de programa.

Ing. Eduardo Snchez Arellano. - Pgina 39 -

3.2.4 REV Invierte el valor de los bits del operando REV Invierte el volor de los bits indicados por el valor. El nmero de bits a ser invertidos es de 1 a 16. Ejemplo: B0 var byte Main: B0 = %10101100 REV 4 setea B0 a %10100011 End 3.3 OPERADORES DE BITS INTELIGENTES (BITWISE) Estos operadores actan sobre cada bit de un valor en forma booleana. Pueden ser usados para aislar bits o para agregar bits dentro de un valor.

Operadores de Bit
Operador & | ^ ~ &/ |/ ^/ Descripcin AND Lgico sobre bits OR Lgico sobre bits XOR Lgico sobre bits NOT Lgico sobre bits NAND Lgico sobre bits NOR Lgico sobre bits NXOR Lgico sobre bits

B0 = B0 & %00000001 Asla el bit 0 de B0 B0 = B0 | %00000001 Setea el bit 0 de B0 B0 = B0 ^ %00000001 Invierte el estado del bit 0 de B0 3.4 OPERADORES LGICOS Los operadores lgicos difieren de las operaciones de bit inteligente debido a que estos entregan un resultado CIERTO / FALSO de su operacin. Valores 0 son tratados como falsos, cualquier otro valor es cierto. Se usan junto a operadores de comparacin en una declaracin IF .. THEN. Los operadores soportados son:
Operador AND && OR I I XOR ^ ^ NOT AND NOT OR NOT XOR Descripcin AND lgico OR lgico OR exclusivo lgico NAND lgico NOR lgico NXOR lgico

If (A == big) AND (B > mean) then Run

Ing. Eduardo Snchez Arellano. - Pgina 40 -

Asegurese de usar parntesis para indicarle a PBP el orden en que quiere que se realicen las operaciones. Example1: If A Or B THEN GOTO Lab Si la se cumple una de las condiciones (A o B es igual uno), entonces el programa brinca a la etiqueta denominada Lab. Example2: IF (Segundos >59) And (Minutos>59) THEN Horas=Horas+1 3.5 OPERADORES DE COMPARACIN Se usan en declaraciones IF ... THEN para comparar una expresin con otra. Los operadores soportados son:
Operador = o == <> != < > <= >= Descripcin Igual No igual Menor Mayor Menor o igual Mayor o igual

If i > 10 then loop

Ejemplo:
If Segundos = 60 then minutos = minutos + 1 Segundos = Segundos + 1 Si la variable "Segundos" es igual a 60 la condicin de la comparacin es verdadera y la instruccin "Minutos = Minutos + 1" se ejecuta. En caso que la expresin no se cumpla la instruccin "Segundos = Segundos + 1" es ejecutada.

SELECT-CASE: Programa de brinco con condicin mltiple.


Sintaxis: SELECT CASE Var CASE Expression1 {, Expression} Instructions... CASE Expression2 {, Expression} Instructions... CASE Expression3 {, Expression} Instructions... CASE ELSE Instructions... END SELECT

Ing. Eduardo Snchez Arellano. - Pgina 41 -

Descripcin: Mediante esta condicin SELECT-CASE se puede brincar como si fueran multiples instrucciones IF-THEN.

Ejemplo:

W var byte B var byte Main : FOR W=1 TO 9 SELECT CASE W CASE 0 B=1 PORTB=B Pause 3000 CASE 1,2,3 B=2 PORTB=B Pause 3000 CASE IS > 5 B=3 PORTB=B Pause 3000 CASE ELSE B=FF PORTB=B Pause 3000 END SELECT NEXT W END

WHILE...WEND
WHILE Condition Statement WEND Ejecuta las declaraciones Statement en forma repetida, mientras la condicin sea cierta. Cuando Condition deja de ser cierta, la ejecucin continua con la declaracin siguiente al WEND. Condition puede ser cualquier expresin de comparacin . I=1 WHILE i < = 10 Serout 0, N2400,[No:,#i,13,10] WEND

Ing. Eduardo Snchez Arellano. - Pgina 42 -

. Prctica 8 Display LCD


Una de las mejores soluciones cuando se re quiere la visualizacin de datos es el display LCD. En este dispositivo los datos son mostrados en un arreglo de puntos. Las dimensiones del font son de 7x5 puntos, El LCD puede contar con 8, 16, 20 40 caracteres. El display LCD puede tener 1, 2 4 renglones. El LCD puede ser conectado al microcontrolador via 8-bit or 4-bit (4 or 8 lneas). Usando un protoboard, Construya el circuito que se muestra en la Figura Siguiente.

El LCD contiene tres lneas de control denominadas, lnea E (enable), R/W (read/write) y RS (register select). La seal R/W es conectada a tierra, debido a que trabajaremos en comunicacin de un solo sentido hacia el display LCD. Algunos displays tienen integrada una luz de fondo (back-light) la cual podemos encender con el pin RD1 va un transistor PNP BC557. El siguiente programa utiliza las instrucciones de PIC BASIC llamadas Lcdout para imprimir datos en el display LCD. Al inicio del programa la directiva DEFINE es usada para configurar el LCD.

Progrmalo!

Ing. Eduardo Snchez Arellano. - Pgina 43 -

Ing. Eduardo Snchez Arellano. - Pgina 44 -

. Prctica 9 Usando los convertidores ADC internos.


Nuestro microcontrolador PIC 16F877 tiene integrado un convertidor Analgico Digital (abreviado ADC con ocho canales). Este convertidor ADC puede ser de 8 10 bits de resolucin lo que nos representa una sensibilidad de voltaje de 19.5mV con 8 bit de resolucin y 4.8mV con 10 bit de resolucin (asumiendo que el voltaje de referencia por default es de 5V). Los puertos que manejan estos convertidores son los puertos A y E, para poder utilizarlos estos se deben configurar como entradas. Otra cosa que se debe de tener en cuenta es la configuracin de los registros ADCON0, ADCON1, ADRESH, ADRESL. En la siguiente figura se muestra la configuracin del registro ADCON0 que tiene direccin de memoria 1FH

Los bit 7 y 6 nos permiten configurar el reloj de conversin para el convertidor analgico, cuando ADCS1:ADCS2 son 0:0, el reloj de conversin es igual a la frecuencia del oscilador sobre dos; cuando son 0:1 el reloj de conversin es igual a la frecuencia del oscilador sobre 8; cuando es 1:0 la frecuencia del conversin es la frecuencia del oscilador sobre 32 y cuando es igual a 1:1 la frecuencia es derivada de RC. Los bits CHS2:CHS1:CHS0 nos permiten seleccionar el canal y el pin por el que se leer el valor analgico, en la siguiente figura se muestra el valor de los bits para seleccionar el canal:

El bit GO/DONE nos indica el estado del convertidor, si este es igual a cero nos indica que el convertidor no esta convirtiendo o ya termino, por lo contrario, si este es igual a uno nos indica que la conversin est en progreso. El siguiente bit, el bit 1 no tiene funcin, o sea, cuando se lea sobre este bit se leer un cero. Por ltimo el bit 0 ADON, cuando este es cero el convertidor est apagado, cuando es uno est encendido. Se contina el estudio del siguiente registro que es el ADCON1, en la figura siguiente se muestra la configuracin del registro:

En este registro el bit 7 nos permite obtener la configuracin del resultado AnalgicoDigital, si este bit es igual a 1 el resultado de la conversin se justificara a la derecha y los 6 bits

Ing. Eduardo Snchez Arellano. - Pgina 45 -

ms significativos del registro ADRESH seran ledos como cero, de lo contrario si este es igual a cero se justificara a la izquierda y los 6 bits menos significativos del ADRESL seran cero. Los bit (0 al 3) de este registro, nos muestra la configuracin de los puertos.

En la siguiente figura se muestra el diagrama a bloques del convertidor analgico digital:

Este primer ejemplo del convertidor ADC utiliza 8-bit de resolucin y los 5V del voltaje de polarizacin del microcontrolador como voltaje de referencia. En este ejemplo mediremos el voltaje por el pin RA0 al cual es conectado un potencimetro como se muestra en la figura.

Ing. Eduardo Snchez Arellano. - Pgina 46 -

El Potencimetro esta conectado a 0V en una de sus terminales y a 5V en el otro, para digitalizar el voltaje se toma un valor entre un rango de 0 a 256 pasos para una resolucin de 8 bit. El siguiente programa lee el voltaje en el PIN RA0 y muestra la conversin por el Puerto B port B a travs de LEDs. Si ningn LED esta encendido, la lectura es zero y si todos los LED estn encendidos, el resultado es 255.

Ing. Eduardo Snchez Arellano. - Pgina 47 -

Al principio, es necesario inicializar adecuadamente los 2 bit de los registros ADCON1 y ADCON0. Posteriormente, solamente se requiere poner el bit ADCON0.2 a uno para inicializar la conversin y checar cuando regresa a cero para conocer si la conversin termino. Despus de que la conversin termina, el resultado es almacenado dentro del registro ADRESH y ADRESL de donde puede ser copiado. El siguiente ejemplo que usa una resolucin d e 10-bit y la circuito. instruccin ADCIN para el mismo

Ing. Eduardo Snchez Arellano. - Pgina 48 -

Como un puerto es insuficiente para mostrar 10 bits adems de impractico, un LCD puede ser usado para mostrar los 10 bits del resultado en un forma mas amigable para el usuario. El diagrama de conexin del LCD as como el programa es mostrado a continuacin.

Como se muestra en la figura anterior, el voltmetro digital es muy simple, solo se conecta el voltaje de entrada al canal por el cual se va a leer el valor analgico, este voltaje a medir fue hecha con un voltaje de referencia igual a Vcc, lo cual fue especificado en el ADCON1. El programa hecho es el siguiente:

Ing. Eduardo Snchez Arellano. - Pgina 49 -

A continuacin se explica lnea por lnea como funciona el programa anterior:


Ing. Eduardo Snchez Arellano. - Pgina 50 -

Programa Voltmetro Digital DEFINE LCD_DREG DEFINE LCD_DBIT DEFINE LCD_RSREG DEFINE LCD_RSBIT DEFINE LCD_EREG DEFINE LCD_EBIT DEFINE LCD_BITS DEFINE LCD_LINES Pause 500 DEFINE ADC_BITS X VAR WORD TRISA = $FF Adcon1 = $80 Inicio: ADCIN 0, X LCDOut $FE,1, " Pract ica " LCDOut $FE, $C0, "Volts : ", DEC X*48/10 Pause 500 GoTo Inicio End 10 DEFINE ADC_SAMPLEUS 50 PORTD 4 PORTC 6 PORTC 7 4 2 Se define al puerto D como el que contendr al LCD Se define al LCD a los 4 bits altos del puerto D Se define el pin RS por el puerto C Se define el bit anterior por el bit 6 del puerto C Se define el pin E por el puerto C Se define al pin anterior por el bit 7 del puerto C Define al LCD de 4 bits Define al LCD modo 2 lneas Pausa de 0.5 seg Define al ADC de 10 bits de resolucin Define 50 mS de muestreo Declara una variable X tipo Word Declara el puerto A como entrada Configura todos los canales como entrada justificado a la derecha Comienzo del programa Esta instruccin lee el canal 0 y lo guarda en X. Limpia el LCD y escribe el mensaje 1 En la segunda lnea escribe el mensaje y nos muestra el valor ledo Pausa de 0.5 seg Vuelve al comienzo del programa Final del Programa

Ing. Eduardo Snchez Arellano. - Pgina 51 -

Proyecto de Control Proporcional de Temperatura


Este es un sistema que consiste en un controlador (Proporcional) capaz detectar el error de la temperatura medida con respecto a la temperatura deseada y de corregir modificar el

ngulo de disparo de la Corriente Alterna mediante un TRIAC el cual puede controlar la velocidad de un Motor Monofasico de un enfriador, un cooler as como la bomba de agua el compresor de los mismos. Todo es controlado mediante un microcontrolador 16F877 que fue programado en el entorno de PICBASICPRO.

Control Proporcional
Mantener un proceso controlado involucra agregar continuamente la misma cantidad de energa que pierde el proceso. Si las prdidas del sistema fueran constantes, el control del proceso sera tan simple com o aplicar un nivel continuo de excitacin. Sin embargo, los factores que afectan un proceso siempre cambian en cantidades y a velocidades impredecibles.

Agregado a esto, deben entenderse las demoras en la reaccin del sistema. Un cambio instantneo en las prdidas, debido a una perturbacin, no se notar inmediatamente y tampoco lo har un cambio en la excitacin. El control del proceso puede ser considerado como un arte, adems de una ciencia.

El primer paso para entender el control Proporcional es que cada sistema tiene ganancias y prdidas de energa.

Esistema = Ein Eout


Se dice que un sistema est en equilibrio cuando la energa ganada (in) equivale a la energa perdida (out).

Equilibrio: Ein = Eout


Una vez en equilibrio, nuestro sistema mantendra u na temperatura constante. Esto sera difcil o casi imposible de lograr. Dependiendo de la excitacin del sistema y de las condiciones alrededor del mismo, la temperatura subir o bajar. A medida que cambian las condiciones, como la temperatura ambiente, cambios en el movimiento del aire, rayos de sol iluminando, o los

Ing. Eduardo Snchez Arellano. - Pgina 52 -

componentes electrnicos ponindose viejos, la cantidad de calor agregado y perdido rara vez permanece constante.

Un ejemplo de sistema a considerar es el automvil. Normalmente queremos que el auto mantenga una velocidad constante en la autopista. El motor compensa las prdidas de friccin de las llantas contra el pavimento y de la carrocera contra el aire. Cuando el auto mantiene velocidad constante, el sistema est en equilibrio y nuestro pie mantiene el acelerador en una posicin constante. Cuando cambian las condiciones, como cuando hay que subir una loma, la velocidad del auto cambia y comienza a disminuir. La aceleracin de la gravedad comienza a influir sobre el auto, hacindole perder parte de la energa que suministra el motor y el auto comienza a frenarse. Si no apretamos ms el acelerador, el auto se detendr en algn punto de la cuesta? No, reducir la velocidad hasta un valor constante ms bajo donde las prdidas igualen a la energa suministrada y se encontrar un nuevo equilibrio. Las condiciones o las perturbaciones de nuestro sistema pueden cambiar muy

rpidamente, como cuando una rfaga de viento sopla repentinamente sobre el sistema bajo control, o muy lentamente como cuando el calentador se deteriora por el paso del tiempo. El control Proporcional puede medir y tomar accin observando:

1) Qu tan lejos del punto de equilibro deseado est el sistema, o la magnitud del error. 2) El tiempo transcurrido desde que se present el error. 3) Qu tan rpido ocurre el error en el sistema, o la velocidad de cambio.

La suma de estas tres evaluaciones conforma la excitacin de salida que intentar mantener el sistema en equilibrio. La Figura 1 ilustra la evaluacin y control de un sistema con control PID. La frmula clsica de control PID para calcular la salida del controlador es esta:

CO P I D = (Kp * E) + (Ki * Et) + (Kd * E/t) Donde:


Co = salida del controlador o excitacin Kp = ganancia proporcional E = seal de error Ki = ganancia integral Kd = ganancia derivativa

La ecuacin de excitacin basada en la anterior es:


Ing. Eduardo Snchez Arellano. - Pgina 53 -

%Excitacin

Total

= Excitacin

PROP

+ Excitacin

INT

+ Excitacin

DERIV

Figura. 1 .- La temperatura ser controlada usando control PID,

Todos los microcontroladores tienen sus limitaciones, as como otros sistemas tales como los Controladores Lgicos Programables (PLCs) y las Computadoras Personales (PC). Al programar operaciones complejas como un control Prop PID, el cual contiene ecuaciones de integracin y diferenciacin, es importante comprender estas limitaciones y usar sistemas alternativos. Los valores de excitacin PID podrn ser negativos positivos dependiendo de si es necesario agregar o quitar excitacin del sistema. Tambin necesitaremos limitar los valores mximos de forma que no excedan el 100% bajo ciertas circunstancias, como con excitacin total.

Ing. Eduardo Snchez Arellano. - Pgina 54 -

Excitacin de Polarizacin Proporcional


Cuando se disea un sistema normalmente un buen Ingenieros deber determinar anticipadamente el promedio de prdidas del sistema. La Excitacin de Polarizacin es la que compensa las prdidas de energa promedio. Diseando el sistema de forma que una Excitacin de Polarizacin del 50% sea suficiente para compensar las prdidas promedio y nos da la capacidad de agregar o quitar hasta un 50% de excitacin para compensar otras prdidas o grandes perturbaciones del sistema. Este punto es el que nos permite ejercer mayor control. Para que la temperatura ambiente sea la optima, una excitacin del 50% en el enfriador debera proveer suficiente energa para mantener la temperatura del sistema alrededor de 73 F con prdidas promedio. Modificaremos nuestro punto de ajuste ptimo para operar el sistema a una temperatura de polarizacin del 50%. Observe que esta temperatura de po larizacin puede variar de acuerdo a las condiciones de la habitacin.

Co pid
%Excitacin
TOTAL

=B

= %Excitacin

POLARIZACIN

Agregando el Control Proporcional


La siguiente evaluacin en la ecuacin es el control proporcional del sistema. La cantidad de excitacin de control proporcional es una relacin directa con la cantidad de error del sistema. A mayor error mayor ser la excitacin proporcional. Coprop = B+(Kp*E) %ExcitacinTotal = %Excitacin +% Excitacin

POLARIZACIN

PROP

Ing. Eduardo Snchez Arellano. - Pgina 55 -

En nuestro sistema, queremos mantener una temperatura de 73F setpoint (punto de ajuste o deseado). Cuanto ms estable sea la temperatura, ms agradable ser habitacin. Igualmente es permisible una variacin de 10F por encima o por debajo de este punto. De esta forma nuestro setpoint ser 73F con una tolerancia de +/-10F, o lo que es lo mismo, de 63F a 83F grados. Si cualquier error alcanza los lmites superior o inferior, queremos que se tome una accin total al 0% 100% para regresar la temperatura al setpoint. Cualquier error entre el setpoint y los lmites de tolerancia proveer una accin de excitacin proporcional.

Temperatura Vs Exitacin
100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0

% de Exitacin

Prop SP 0% 100%

55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

Temperatura

La Figura 3 es una representacin grfica de la temperatura del sistema vs. La cantidad de excitacin necesaria para esa banda.

De la Figura 3, si la temperatura es de 73F, se usar una excitacin del 50% para agregar energa a nuestro sistema. Si la temperatura cae a 63F, se usar una excitacin del 0% para aumentar la temperatura y cualquier temperatura intermedia usar una cantidad proporcional de excitacin.

Ing. Eduardo Snchez Arellano. - Pgina 56 -

Si la temperatura sobrepasa los 73F, la excitacin aumentar proporcionalmente para disminuir la temperatura. A partir de 83F, la excitacin aumentara a 100%. Ahora observemos esto mismo matemticamente. El error de nuestro sistema es calculado restando la temperatura deseada (setpoint) de la actual:
Error = Temp. Actual - Setpoint

El porcentaje de error se encuentra dividiendo el valor del error por el rango de temperatura y multiplicando por 100%:
%Error = Error / Rango * 100

Para nuestro sistema el rango de temperatura es:


83F 63F = 20F.

Si la temperatura medida es 75F:


Error = 75 73 = 2 %Error (E) = 2/20*100% = 10%

La frmula general de ganancia es:

Ganancia =

salida entrada

En nuestro diseo, estamos usando el 100% del rango de excitacin sobre el 100% del rango permisible de temperatura:
Ganancia (Kp) = 100% / 100% = 1

Nuestro sistema tendra una ganancia proporcional (Kp) de 1.

Ing. Eduardo Snchez Arellano. - Pgina 57 -

La cantidad de excitacin proporcional a 75 grados sera:


%Excitacin = Kp*E = 1 * 10% = 10%

PROP

La excitacin total para nuestro sistema a esa temperatura sera entonces:


%Excitacin = B + (Kp*E)= 50%+10% = 60%.

TOTAL

Corresponde este valor al que se obtiene grficamente de la Figura 3 para una temperatura de 75F? Un trmino ms a considerar es Banda Proporcional. La Figura 3 se denomina Banda Proporcional del 100% debido a que se emplea el rango completo en la excitacin, del 100% de la banda permisible (63F, 83F). Esto simplemente signif ica que la respuesta dentro de esos lmites ser total, usando los valores mximos posibles en la accin de respuesta para lograr que la temperatura regrese al setpoint. Clculos de Error y Excitacin Proporcional Realicemos los clculos para analizar algunos de estos valores. El setpoint es 73F, la temperatura de polarizacin de nuestra prueba. A una temperatura de 81F la excitacin total fue del 90% con un 50% de excitacin de polarizacin y un 40% de la excitacin proporcional.
Error = Temperatura - Setpoint = 81F-73F=8F %Error = Error / rango * 100 = 8F/20F * 100 = 40% %ExcitacinPROP = Kd*%E = 1*40% = 40% %Excitacin Total = %Excitacin POLARIZACIN + %Excitacin PROP + %Excitacin INT + %Excitacin DERIV %Excitacin Total = 50% + 40% + 0% + 0% = 90%

Ing. Eduardo Snchez Arellano. - Pgina 58 -

Controlando la temperatura:
DEFINE LCD_DREG PORTD DEFINE LCD_DBIT 4 DEFINE LCD_BITS 4 DEFINE LCD_RSREG PORTD DEFINE LCD_RSBIT 2 DEFINE LCD_EREG PORTD DEFINE LCD_EBIT 3 DEFINE LCD_LINES 2 DEFINE LCD_COMMANDUS 2000 DEFINE LCD_DATAUS 40 DEFINE ADC_BITS 10 DEFINE ADC_CLOCK 1 X VAR BYTE temp_actual VAR WORD temp_Ex VAR WORD rango VAR BYTE signo VAR WORD t VAR BYTE ep VAR BYTE error VAR WORD porc_e VAR BYTE Kp VAR BYTE B VAR BYTE setpoint VAR WORD Copid VAR BYTE salida VAR WORD TRISA = %11111111 TRISC = %00011111 ADCON1 = %10000010 rango= 30 B= 50 Kp= 1 setpoint= 74 MAIN: ADCIN 0, temp_actual GoSub Proporcional GoTo MAIN Proporcional: IF PORTC.1 = 1 Then setpoint = setpoint + 1 EndIF IF PORTC.3 = 1 Then setpoint = setpoint - 1 EndIF Modifica el setpoint medinte Sw

Ing. Eduardo Snchez Arellano. - Pgina 59 -

temp_actual =temp_actual*49/100 error= setpoint - temp_actual signo = error GoSub PoneSigno


'********** Calcula %Error - Signo ajustado

porc_e= ABS error*100/rango IF signo=1 Then Copid= B+(Kp*porc_e) EndIF IF signo = -1 Then Copid =B-(Kp*porc_e) EndIF

GoSub POSIC_SERVO LCDOut $fe, 1,"T.Des.= ", DEC setpoint," % Err=",DEC porc_e LCDOut $fe, $C0, "T.Int:", DEC temp_actual,"F ","T.Ext.",DEC temp_Ex Pause 500 Return POSIC_SERVO: t= 174*Copid/100 salida= 80+t For X=1 to 10 Pause 10 Next X Pause 100 Return PoneSigno: IF signo.bit15 = 0 Then SignoPos signo= -1 Return SignoPos: signo=1 Return 'Se repite 10 veces PulsOut PORTB.7,salida

End

Fin del programa

Ing. Eduardo Snchez Arellano. - Pgina 60 -

Ing. Eduardo Snchez Arellano. - Pgina -

61

CONTROL DE VELOCIDAD DE MOTORES DE CC MEDIANTE PWM Circuito de Potencia:

Se ha elegido el uso de un microcontrolador en la etapa de control por los siguientes factores que se han tenido en cuenta: 1- En la mayora de las aplicaciones, el control del motor tiene algn tipo de interfaz con el operador: botones, potencimetros, display, comunicacin con PCs, etc. Donde el uso de un microcontrolador es ideal ya que actualmente tienen incorporados mdulos de conversores analgico-digitales, timers, contadores, USART, puerto paralelo esclavo, PWM, comunicacin serie I2 C, etc. 2- Permite un tiempo de diseo reducido. Debido a que el software de control contiene todas las caractersticas de la aplicacin, ser ms fcil y ms rpido realizar cualquier modificacin de la aplicacin con slo modificar el programa. Adems tiene la posibilidad de que el software de control posea una tabla de las caractersticas del motor, permitiendo que la aplicacin se adapte a diferentes tipos de motor. 3- Los microcontroladores permiten realizar cosas que son imposibles de otra manera. Como por ejemplo:
Ing. Eduardo Snchez Arellano. - Pgina -

62

Ejecutar una secuencia preprogramada de velocidades del motor, diagnosticar fallas y alertar al operador. (con sensores de temperatura, de velocidad, o sin la necesidad de estos, sino por medio del sensado de la corriente para determinar la velocidad o temperatura del motor, etc). Permite almacenar en una memoria no voltil las configuraciones y operaciones que deben ser guardadas cuando se apaga el motor.

Diagrama del Circuito de Control:

Valor_PWM:

Salida= 255*Copid/100 For X=1 to 5 PWM PORTB.7, Salida, 500 Next X Return

Convierte % de error a un dato binario 'Se repite 5 veces

Ing. Eduardo Snchez Arellano. - Pgina 63 -

3.6 Enable Habilitacin de rutina de interrupcin, La interrupcin puede ser habilitada colocando el bit GIE en el registro INTCON. Cuando la interrupcin es procesada y termina, la interrupcin debe habilitarse nuevamente mediante la instruccin "ENABLE". Ejemplo:

3.7 Disable Despues de activarse una rutina de interrupcin, es necesario apagar las banderas de interrupcin para evitar que una nueva interrupcin ocurra. Esto se logra de una manera fcil con la instruccin "DISABLE" la cual resetea el bit GIE en el registro INTCON.

3.8 On Interrupt On interrupt LABEL: Con la instruccin "On interrupt" es indicada la etiqueta a la cual el programa brincara "jump" cuando suceda una interrupcin.

3.9 Resume Regreso de una rutina de interrupcin hacia el programa principal.

Ing. Eduardo Snchez Arellano. - Pgina 64 -

Ing. Eduardo Snchez Arellano. - Pgina 65 -

You might also like