Beruflich Dokumente
Kultur Dokumente
: Control 2
: Ing. Martin Nombera Lossio
INTEGRANTES:
Guerrero Yrene Jemerson Dante
Estela Ramos Franklin
Heredia Espinoza Lenin
Snchez Guerrero Julio
I.
Ttulo:
II.
Situacin problemtica:
Vivimos en una era donde los detalles son los que marcan la diferencia en donde la
calidad, la eficiencia y el costo son factores muy importantes en el consumidor a la
hora de elegir un producto determinado.
Por ejemplo algunos productos como el azcar, el arroz, caf, conservas de frutas,
u otros productos ya elaborados como la gelatina en polvo; muchas veces su peso
no es exactamente igual al indicado en su envase, generando el descontento del
consumidor, y la preocupacin del empresario al observar que sus ventas
disminuyen.
III.
Antecedentes:
IV.
V.
Base terica:
Teora de la transformada Z
Muestreadores y Retenedores
Problema:
VI.
Hiptesis:
VII. Objetivos
IX.
Equipos
Multmetro Prasek
2 Fuentes Simetricas Regulables
Materiales
Vlvula proporcional
Galgas extensomtricas
2 recipientes
Embudo de aluminio
3 Protoboards
1 Pic 16F877A
TIP2955
TIP3055
AD620
LM311
2 1N4007
1 pot 10K
2 pot 20K
1 LCD 16x2
X.
Diagrama PI&D
XI.
1.
Voltaje de excitacin
3v
Capacidad
5kg
Rango de temperatura
de -10 a +400C
2.00.15 mV
Gramos
0
94,92
100,6
201,25
301,85
401,01
501,61
603,97
704,57
805,46
906,06
1000,98
Voltaje
2,43
2,49
2,5
2,56
2,62
2,69
2,75
2,82
2,88
2,95
3,01
3,07
Grafica
3. Circuito de potencia
4. Circuito Principal :
6. Programacin:
OUT
0X22
0X23
EQU
0x25
0X26
0X27
0X28
0X29
0X2A
0X2B
0X2C
0X24
PORTC,2
RELE PORTC,3
;RELE PARA CONTROLAR POTENCIA AL MOTOR
LCD_RS
PORTC,0
;DATO COMANDO
LCD_EN
PORTC,1
;ENABLE LCD
LCD_DATA
PORTB ;BUS DATOS LCD
0X00
GOTO START
START
MOVLW 0XCC
MOVWFMAX_OPEN
;CARGO VALOR MAXIMO PARA APERTURA
MOVLW 0X51
MOVWFMIN_CLOSE
;CARGO VALOR MIN PARA CIERRE
MOVLW .124
MOVWFOFFSET
;CARGO OFSET DE 0 KILOS
CALL C_PORTS
CALL LCD_INI
CALL LCD_ON
CALL LCD_CLR
CALL C_ADC
CALL LINEA_1
;************** RUTINA PRINCIPAL *********************************
MAIN
CALL LEE_SP ;ADQUIERE VALOR SP
CALL LEE_PESO
;ADQUIERE VALOR PESO
MOVF DATO_SP,0
MOVWFAUX
;CARGA SP PARA CALCULAR Y MOSTRAR
CALL AJUSTES
CALL LINEA_1
CALL MENSAJE_1
CALL MUESTRA
MOVF DATO_PESO,0
MOVWFAUX
;CARGO PESO PARA CALCULAR Y MOSTRAR
CALL AJUSTES
CALL LINEA_2
CALL MENSAJE_2
CALL MUESTRA
MOVF DATO_SP,0
;CARGO SP AL W
SUBWF DATO_PESO,0 ;COMPARO CON REALIMENTACION DE PESO
BTFSC STATUS,0
;VER SI ES MAYOR O NO
GOTO $+3
CALL ABRIR_V
;SI ES MENOR EL PESO (REALIMENTACION)
GOTO MAIN
CALL CERRAR_V
;SI ES MAYOR EL PESO (REALIMENTACION)
GOTO MAIN
;******************************************************************
AJUSTES
CLRF DECIMAL
CLRF UNIDAD
CLRF COUNT
MOVF OFFSET,0
SUBWF AUX,1 ;PARA TENER EL CERO KILOS (ELIMINA OFFSET)
MOVLW .3
MOVWFCOUNT2
;CARGO 3 EN EL CONTADOR2
ACA
MOVF AUX,0
SUBWF COUNT,0
BTFSC STATUS,2
RETURN
INCF
COUNT,1
;INCREMENTA CONTADOR PARA SEGUIR PROBANDO
DECFSZ
COUNT2,1
GOTO ACA
MOVLW .3
MOVWFCOUNT2
;CARGO DE NUEVO EL CONTADOR2
INCF
DECIMAL,1
MOVLW .10
SUBWF DECIMAL,0
BTFSS STATUS,2
;PRUEBO SI YA ESTA EN 9
GOTO ACA
CLRF DECIMAL
;DECIMAL A CERO
INCF
UNIDAD,1
;INCREMENTA EN 1 LA UNIDAD
GOTO ACA
;***********************************************************************
MUESTRA
BSF
LCD_RS
;INDICA DATO
MOVF UNIDAD,0
;CARGO UNIDAD PARA ESCRIBIRLA
ADDLW 0X30
CALL W_LCD ; LA ESCRIBO
CALL LOWDELAY
MOVLW '.'
CALL W_LCD
CALL LOWDELAY
MOVF DECIMAL,0
ADDLW 0X30
CALL W_LCD ;ESCRIBO EL DECIMAL
CALL LOWDELAY
MOVLW ' '
CALL W_LCD
CALL LOWDELAY
MOVLW 'K'
CALL W_LCD
CALL LOWDELAY
MOVLW 'g'
CALL W_LCD
CALL LOWDELAY
MOVLW '.'
CALL W_LCD
CALL LOWDELAY
RETURN
;*********************************************************************
ABRIR_V
CALL LEE_POS
;LEE LA POSICION ACTUAL DE LA VALVULA
MOVF DATO_POS,0
;CARGA EL VALOR DE LA POCISION
SUBWF MAX_OPEN,0 ;MEMORIA PARA VALOR MAX ABIERTO
BTFSC STATUS,0
;VER SI ES MAYOR EL MAX_ ABIERTO
GOTO SIGUE ;AUN POS ES MENOR Q MAX
GOTO PARA ;YA SE PASO UN POCO, POS ES MAYOR Q MAXIMO
SIGUE
BSF
OUT
;MANDA A VOLTAJE POSITIVO PARA Q ABRA VALVULA
BSF
RELE ;CONECTA POTENCIA AL MOTOR
RETURN
PARA
BCF
RELE ;DESCONECTA LA POTENCIA DEL MOTOR
RETURN
CERRAR_V
CALL LEE_POS
;LEE LA POSICION ACTUAL DE LA VALVULA
MOVF DATO_POS,0
;CARGA EL VALOR DE LA POCISION
SUBWF MIN_CLOSE,0 ;MEMORIA PARA VALOR MAX ABIERTO
BTFSC STATUS,0
;VER SI ES MAYOR EL MAX_ ABIERTO
GOTO PARA2 ;AUN POS ES MENOR Q MAX
GOTO SIGUE2 ;YA SE PASO UN POCO, POS ES MAYOR Q MAXIMO
SIGUE2
BCF
OUT
;MANDA A VOLTAJE POSITIVO PARA Q ABRA VALVULA
BSF
RELE ;CONECTA POTENCIA AL MOTOR
RETURN
PARA2
BCF
RELE ;DESCONECTA LA POTENCIA DEL MOTOR
RETURN
;********** RUTINAS DE CONFIGURACION ************************
C_PORTS
BCF
STATUS,6
BSF
STATUS,5
;BANK 1
BCF
OUT
;PIN OUT VALVULA COMO SALIDA
BCF
RELE ;RELE COMO SALIDA
CLRF LCD_DATA
;BUS COMO SALIDA
BCF
LCD_RS
BCF
LCD_EN
BCF
PORTD,0
BCF
STATUS,5
;BANCK 0
RETURN
;******************************************************************
;********** CONFIGURACION DEL ADC ***************************
C_ADC
BCF
STATUS,5
BCF
STATUS,6
MOVLW 0X41
MOVWFADCON0
;CHANNEL AN0, ADC POWER UP
BSF
STATUS,5
CLRF ADCON1
;ALL AS ANALOG INPUTS
BCF
STATUS,5
RETURN
;***********************************************************
;*********** RUTINAS PARA LEER CANALES DEL AD **************
LEE_SP
BCF
STATUS,5
;BANK 0
MOVLW 0X41
MOVWFADCON0
;CHANNEL AN0
CALL LOWDELAY
BSF
ADCON0,2
;STARTS CONVERSION
BTFSC ADCON0,2
GOTO $-1
;SI NO TERMINA VUELVE A TESTEAR
MOVF ADRESH,0
;CARGA RESULTADO
MOVWFDATO_SP
;PONE EN VARIABLE DE SP
RETURN
LEE_PESO
BCF
STATUS,5
;BANK 0
MOVLW 0X49
MOVWFADCON0
;CHANNEL AN1
CALL LOWDELAY
BSF
ADCON0,2
;STARTS CONVERSION
BTFSC ADCON0,2
GOTO $-1
;SI NO TERMINA VUELVE A TESTEAR
MOVF ADRESH,0
;CARGA RESULTADO
MOVWFDATO_PESO
;PONE EN VARIABLE DE PESO (REALIMENTACION)
RETURN
LEE_POS
BCF
STATUS,5
;BANK 0
MOVLW 0X51
MOVWFADCON0
;CHANNEL AN2
CALL LOWDELAY
BSF
ADCON0,2
;STARTS CONVERSION
BTFSC ADCON0,2
GOTO $-1
;SI NO TERMINA VUELVE A TESTEAR
MOVF ADRESH,0
;CARGA RESULTADO
MOVWFDATO_POS
;PONE EN VARIABLE DE SP
RETURN
;***************************************************************************
;************** RUTINAS PARA MANEJO DEL MODULO LCD *************************
LCD_ON
BCF
LCD_RS
MOVLW 0x0C
CALL W_LCD
RETURN
LCD_CLR
BCF
LCD_RS
MOVLW 0x01
CALL W_LCD
RETURN
LCD_INI
BCF
LCD_RS
MOVLW 0x38
CALL W_LCD
CALL LOWDELAY
MOVLW 0x38
CALL W_LCD
CALL LOWDELAY
MOVLW 0x38
CALL W_LCD
CALL LOWDELAY
RETURN
LINEA_1
BCF
LCD_RS
MOVLW 0x80
CALL W_LCD
CALL LOWDELAY
RETURN
LINEA_2
BCF
LCD_RS
MOVLW 0xc0
CALL W_LCD
CALL LOWDELAY
RETURN
W_LCD
MOVWFLCD_DATA
BSF
LCD_EN
CALL LOWDELAY
BCF
LCD_EN
RETURN
MENSAJE_1
BSF
LCD_RS
MOVLW ' '
CALL W_LCD
CALL LOWDELAY
MOVLW 'S'
CALL W_LCD
CALL LOWDELAY
MOVLW 'E'
CALL W_LCD
CALL LOWDELAY
MOVLW 'T'
CALL W_LCD
CALL LOWDELAY
MOVLW ' '
CALL W_LCD
CALL LOWDELAY
MOVLW 'P'
CALL W_LCD
CALL LOWDELAY
MOVLW ':'
CALL W_LCD
CALL LOWDELAY
MOVLW ' '
CALL W_LCD
CALL LOWDELAY
RETURN
MENSAJE_2
BSF
LCD_RS
MOVLW ' '
CALL W_LCD
CALL LOWDELAY
MOVLW 'P'
CALL W_LCD
CALL LOWDELAY
MOVLW 'E'
CALL W_LCD
CALL LOWDELAY
MOVLW 'S'
CALL W_LCD
CALL LOWDELAY
MOVLW 'O'
CALL W_LCD
CALL LOWDELAY
MOVLW ' '
CALL W_LCD
CALL LOWDELAY
MOVLW ':'
CALL W_LCD
CALL LOWDELAY
MOVLW ' '
CALL W_LCD
CALL LOWDELAY
RETURN
;***********************************************************************
;********** PAUSAS **************************
LOWDELAY
CLRF M
MOVLW .3
MOVWFN
DEL1
DECFSZ
M,1
GOTO DEL1
DECFSZ
N,1
GOTO DEL1
RETURN
;********************************************
#INCLUDE <P16F877A.INC>
END
7. Simulacin:
En Proteus 7.8 Professional
8. Resultado Final:
XII. Conclusiones:
CIRCUI