Práctica 1 Sistemas de Control y Automatizacion IPN PDF

Title Práctica 1 Sistemas de Control y Automatizacion IPN
Author Mauro Antonio Rojo Cabrera
Course Sistemas De Control
Institution Instituto Politécnico Nacional
Pages 13
File Size 833 KB
File Type PDF
Total Downloads 8
Total Views 131

Summary

La relación entre las NOT y el ULN2803, es que las NOT sirven como complemento, es como un seguro. Ya que sí le llega menos voltaje que el que activa la compuerta, no va a registrar el pulso. De este modo, las NOT sirven justamente para asegurar que llegué el voltaje necesario para activar el ULN280...


Description

INSTITUTO POLITÉCNICO NACIONAL. CENTRO DE ESTUDIOS CIENTIFICOS Y TECNÓLOGICOS “JUAN DE DIOS BATIZ” “Reporte de Práctica 1: Control de Variables Físicas” Grupo: 6IV3. Materia: Sistemas de Control y Automatización. Profesor:

DESARROLLO:  INDICADOR DE NIVEL: Este proyecto es un detector de nivel de agua, con el apoyo visual de un display que nos mostrará en qué nivel se encuentra el líquido en el tanque de plástico.

Armar y simular el circuito de la figura 1, explique cómo se relacionan las compuertas NOT con el circuito integrado ULN2803.

Los indicadores de nivel suelen ser ocupados para visualizar el nivel de agua en un reservorio. Son fáciles de construir porque utilizan componentes relativamente sencillos de conseguir. El circuito está formado por estados lógicos, que van a representar los sensores que detecten el nivel de agua (sí durante el funcionamiento del circuito nosotros no los presionamos en el orden correcto no va mostrar los valores reales, debido a que les da prioridad a los valores mayores). Estos mismo van conectados a unas NOT y estas mismas NOT están conectadas al ULN2803. Dentro de este circuito integrado se encuentra una serie de transistores Darlington, hablando de transistores Darlington nos referimos a una forma específica de conectar los transistores, de modo que, nos permitirá que la corriente amplificada Figura 2: Estructura interna del ULN2803.

Figura 1: Simulación Indicador de Nivel Proteus.

que pasa por el primer transistor ingrese en la base del segundo transistor y se vuelva a amplificar nuevamente. La relación entre las NOT y el ULN2803, es que las NOT sirven como complemento, es como un seguro. Ya que sí le llega menos voltaje que el que activa la compuerta, no va a registrar el pulso. De este modo, las NOT sirven justamente para asegurar que llegué el voltaje necesario para activar el ULN2803. Después tenemos un arreglo resistivo, que conecta el ULN2803 y 74LS147. A grandes rasgos el 74LS147, es un codificador de 10 líneas a 4 líneas. El 74LS147, hace la codificación y las 4 líneas resultantes van a conectarse a las NOT, que invertirán los pulsos. Para después ingresar al 7447, que es un codificador a 7 segmentos, lo que nos permitirá visualizar los pulsos en el Display de 7 segmentos. Resultando el circuito en lo siguiente:

 TERMOMETRO DIGITAL: Figura 3: Representación gráfica de indicador de nivel. Arme el siguiente circuito, programe el PIC y verifique la variación de temperatura.

Figura 4. Esquema de conexión de un PIC16F877A para medir temperatura ambiental.

Figura 5: Circuito armado en Proteus

Funcionamiento del Circuito: En este circuito se ocupa el LM35, que es un sensor de temperatura. En el datasheet del dispositivo nos dice que el Pin de Salida tenemos una variación de 10 mV por °C y que su alimentación va de 4-30 V. Y es capaz de medir temperaturas de -55°C a 150°C. En el circuito la salida del LM35 está conectado al puerto A0 del PIC, este mismo puerto está programado como conversor A/D a 10 bits. Al iniciar la simulación el LED del puerto D4 va a parpadear 3 veces. Para después dar inicio al Termómetro Digital. En el LCD nos saldrá la temperatura mínima, actual y máxima. El rango inicial es de 20°C a 24°C, si la temperatura actual permanece entre ese rango de temperaturas ninguno de los sistemas regulados por los relés se activará. Si la temperatura actual se encuentra fuera del rango se activará el sistema correspondiente; sí es menor al rango se activa el sistema de Calefacción que es representado por una bombilla, sí es mayor al rango se activa el sistema de Enfriamiento que es representado con un motor (simula un ventilador). Sí deseamos modificar los rangos de temperatura debemos presionar el Botón de Selección, los otros dos Push Buttons nos permitirán subir o disminuir la temperatura a comparar y una vez estenos de acuerdo con la selección, presionamos nuevamente el Botón de Selección. Una vez establecidos los valores deseados el LED del puerto D4 encenderá 3 veces, indicando que los datos ya se han guardado.

Figura 6: Diagrama a Bloques de Termómetro Digital con PIC16F877A y LM35.

Caso 1:

Temperatura Actual dentro del Rango de Temperatura s.

Caso 2: Temperatura Actual por debajo del Rango de Temperatura s.

Caso 3: Temperatura actual por encima del Rango de Temperatura s.

(Ventilador y Bombilla apagadas).

(Bombilla encendida).

(Ventilador encendido, no se aprecia el movimiento)

Y el circuito funciona de este modo:

Y el proceso de programación del rango de temperatura es así:  Presionamos el botón de selección y el LED dará 3 pulsos para comenzar el proceso, después el LCD nos mostrará lo siguiente:

 Ya es decisión nuestra que rango de temperatura establecer. Para este ejemplo yo puse ambas temperaturas en el mismo valor:

Y así es como podemos programar el circuito y verificar lo que ocurre al variar la temperatura del mismo. Usé el código proporcionado, intenté hacerlo con lenguaje ensamblador en MPLAB, pero solo logré que mostrará la temperatura actual, ese código se lo anexo al final de este documento.

Conclusión: Al finalizar la práctica, entiendo conceptos básicos de la Instrumentación Industrial. De las que puedo destacar la Ajustabilidad de Rango que se ve aplicada en el circuito 2 al modificar el rango de temperatura. Las Entradas Deseadas que son representadas por los estados lógicos en el primer circuito y el pin de salida del LM35 en el segundo circuito. Y los errores, que en el segundo circuito luego pasaba que el LM35 medía un valor y en el LCD nos marcaba un grado más o menos del que el sensor detectaba y como sabemos un error es la diferencia entre el valor medido y el valor verdadero, concluyendo que el segundo circuito tenía ±1°C de error. También puedo entender la clasificación de los sistemas de control; Sistemas de Lazo Abierto y Lazo Cerrado. Puedo identificar que el primer circuito de esta práctica es de lazo abierto debido a que la salida no tiene efecto sobre la acción de control, mientras que el segundo circuito es un sistema de Lazo Cerrado porque la salida ejerce un efecto directo sobre la acción de control, hay una retroalimentación en el proceso. La importancia de conocer este tipo de conceptos es mucha, ya que podemos llegar a usarlos en nuestra vida profesional. A grandes rasgos enfrenté complicaciones en simulación y en programación, por lo que retomaré el resultado de está práctica y su repercusión en la elaboración de las prácticas futuras.

Referenci Just a moment... (s. f.). dePerú. Recuperado 19 de marzo de 2021, de https://www.deperu.com/electronica/circuitos-basicos/indicador-denivel-de-agua-con-circuito-integrado-uln2803-37 (2020, 24 abril). ULN2803: todo sobre el par de transistores Darlington. Hardware libre. https://www.hwlibre.com/uln2803/

Código: Este es el código que hice en MPLAB que le mencioné previamente: ;INSTITUTO POLITECNICO NACIONAL. ;CECYT 9 JUAN DE DIOS BATIZ.

unidades

equ 0x32

decenas

equ 0x33

centenas equ 0x34 resto

equ 0x35

; ;ROJO CABRERA MAURO ANTONIO ;GRUPO: 6IV3. ;Sistemas de Control y Automatización.

org 0h goto INICIO org 05h

; ;Práctica 1 ;--------------------------------------------------------------------------------------------

INICIO: clrf PORTA

;Limpia el puerto A

clrf PORTC

;Limpia el puerto C

processor 16f877a

clrf PORTD

;Limpia el puerto D

list p=16f877a

bsf STATUS,RP0

include

bcf STATUS,RP1

;Variable para el DELAY del ADC ;--------------------------------------------------------------------------------------------

val equ h'20'

;Variables para el DELAY del ENABLE LCD val2 equ 0x30 val1 equ 0x31

LCD

;Cambio la banco 1

;Configuración de puertos C-D para el

clrf TRISC salida

;Configura PORTC como

clrf TRISD salida

;Configura PORTD como

;Configuración del puerto A para ADC movlw 00h movwf ADCON1 y E como analógicos

;Configura puerto A

movlw 3fh

;Variables para separar el resultado de ADC en valor BCD

movwf TRISA como entrada movlw h'0'

;Configura el puerto A

bcf STATUS,RP0

;Regresa al banco 0

bcf PORTC,0 INSTRUCCION

; RS=0 MODO

movlw 0x01 ; El comando 0x01 limpia la pantalla en el LCD

;Inicio del programa

movwf PORTD

START call START_LCD ;Inicializa LCD goto START_ADC del Conv. A/D

;Comienza la lectura

call COMANDO comando bsf PORTC, 0

; Se da de alta el

; Rs=1 MODO DATO

return ;Inicia LCD ;Configuración Convertidor A/D

START_LCD: bcf PORTC,0 INSTRUCCION

; RS=0 MODO

movlw 0x01 ; El comando 0x01 limpia la pantalla en el LCD movwf PORTD call COMANDO comando movlw 0x0C línea

; Se da de alta el ; Selecciona la primera

movwf PORTD call COMANDO comando movlw 0x3C

; Se da de alta el ; Se configura el cursor

movwf PORTD call COMANDO comando bsf PORTC, 0

START_ADC movlw b'11000001' ;Configuración ADCON0 movwf ADCON0 ;ADCS1=1 ADCS0=1 CHS2=0 CHS1=0 CHS0= GO/DONE=0 - ADON=1

CICLO: bsf ADCON0,2 progreso GO=1 call DELAY1 conversión

;Conversión en

;Espera que termine la

ESPERA btfsc ADCON0,2 ;Pregunta por DONE=0? (Terminó conversión) goto ESPERA preguntar

; Se da de alta el

movf ADRESH,0

;No, vuelve a ;Si

; Rs=1 MODO DATO ;Rutina que muestra temperatura

return

PRINT_TEMP

;Rutina para enviar un dato ENVIA: bsf PORTC, 0

DATO

; RS=1 MODO

call ERASE_LCD

;Limpia LCD

M1: movlw 'T' movwf PORTD

el comando

call COMANDO

; Se da de alta

movlw 'E'

return

movwf PORTD

;Rutina para enviar comandos COMANDO: bsf PORTC, 1 en 1 call DELAY2

; Pone la señal ENABLE

call ENVIA movlw 'M' movwf PORTD call ENVIA movlw 'P'

; Tiempo de espera movwf PORTD

call DELAY2 bcf PORTC, 1

call ENVIA

; ENABLE=0

call ENVIA movlw 'E'

call DELAY2 return

movwf PORTD call ENVIA

;Rutina para limpar pantalla LCD ERASE_LCD

movlw 'R' movwf PORTD call ENVIA

movlw 'A'

movlw 'C'

movwf PORTD

movwf PORTD

call ENVIA

call ENVIA movlw 'T'

movwf PORTD call ENVIA movlw 'U'

goto CICLO lectura ADC

;Repite el ciclo de

;Rutina que obtine el valor de la temperatura ;a partir del resultado del Conv a/D

movwf PORTD

READ_TEMP:

call ENVIA movlw 'R'

clrf centenas

movwf PORTD

clrf decenas

call ENVIA

clrf unidades movlw 'A'

movwf PORTD

movf ADRESH,W ;Dupilca el valor de ADRESH para addwf ADRESH,W ;obtener un valor de temperatura real aprox

call ENVIA

movwf Resto ADRESH en Resto

movlw '=' movwf PORTD

;Guarda el valor de

call ENVIA ;Comienza el proceso de otención de valores BCD

movlw ' ' movwf PORTD

;para Centenas, Decenas y unidades atraves de restas

call ENVIA

call READ_TEMP que obtine el

;sucesivas. ;Llamada a rutina

;valor de la temperatura a

partir

;del resultado del Conv a/D

CENTENAS1 movlw d'100'

;W=d'100'

subwf resto,W

;Resto - d'100' (W)

btfss STATUS,C d'100'? goto DECENAS1

M2: movf centenas,W de las centenas

;Imprime el dígito

call ENVIA

DECENAS1 movlw d'10' ;Imprime el dígito

btfss STATUS,C

movwf resto

movlw ' '

;Resto menor que ;Si

;No, Salva el resto

incf decenas,1 contador de centenas BCD

movwf PORTD

goto DECENAS1

call ENVIA

call ENVIA

;Resto - d'10' (W)

goto UNIDADES1

call ENVIA

movwf PORTD

;W=d'10'

subwf resto,W d'10'?

movwf PORTD

movlw h'DF'

;Realiza otra resta

;Imprime el dígito

call ENVIA

"°"

;NO, Salva el resto

goto CENTENAS1

movwf PORTD

movf unidades,W de las unidades

;SI

incf centenas,1 ;Incrementa el contador de centenas BCD

movwf PORTD

movf decenas,W de las decenas

movwf resto

;Resto menor que

;Incrementa el

;Realiza otra resta

;Imprime el simbolo UNIDADES1 movf Resto,W; Unidades BCD

;El resto son la

movwf unidades; ;clrf Resto ASCII

;Rutina que obtiene el equivalente en

OBTEN_ASCII movlw h'30' iorwf unidades,f; iorwf decenas,f; iorwf centenas,f; return; ;Rutina que genera un Delay microSeg aprox. para el Conv. A/D

de

20

DELAY1 movlw h'30' movwf val; Loop

decfsz val,1; goto Loop; return;

;Subrutina de retardo para ENABLE_LCD

DELAY2 movlw 0xFF movwf val1 Loop1 movlw 0xFF movwf val2 Loop2 decfsz val2,1; goto Loop2; decfsz val1,1; goto Loop1;

return; ;-------------------------------------------------------------------------------------------en...


Similar Free PDFs