TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: pegasso en 04 de Junio de 2010, 02:43:25
-
hola miren tengo un proyecto con el pic16f877 estoy controlando el encendido y apagado de un motor por medio de un determinado rango de temperatura, es decir, tengo cierta temperatura y mi motor se apaga, despues si el motor se enfria vuelve a encender, el problema esta en que estoy adquiriendo los datos via puerto serial a travez de labview, pero al muestrearlos en labview, al llegar como a los 50 grados, el sensor, me muestra ciertos picos, indeseados, al igual que muestro los bits de conversion del adc, a travez del puerto B con 8 leds, estoy usando 8 bits para el adc, de aqui es importante notar que estoy usando un oscilador RC, con 100 picofaradios y una resistencia de 756khz, esto es para controlar la velocidad del motor, y llegar a un pulso de 16 ms, no se a que se deba que mi sensor me de esos picos, estoy usando el lm35, ya probe colocando un opamp y sigue igual, con un capacitor, de 100 picos entre el pin de entrada y masa y tampoco, probe colocando una resistencia, de 10kohm a la entrada y tampoco, por lo que no se si se deba al oscilador el problema? y de los tiempos para espera de conversion los respeto les adjunto la parte de la conversion a ver si alguien me podria ayudar saludos.
no se si el problema este en la transmision del dato, pero pues probando el adc con un potenciometro no tengo los brincos indeseados. asi que dudo sea eso.
inicio_ADC
call retardo ;TIEMPO DE ESPERA PARA LA ADQUISICION
bsf ADCON0,2 ;Inicia conversion
espera
btfss ADCON0,2
goto lectura
goto espera
lectura ;Lectura del Dato analogico
;Convertido
LEO ;CALL retardo ;OJO PUSE UN RETARDO INECESARIO
movf ADRESH, w
movwf datoA_H
bsf STATUS, RP0 ;Banco 1
movf ADRESL,w
bcf STATUS, RP0 ;Banco 0
movwf datoA_L
Transmitir
bcf STATUS,RP0
BCF STATUS,RP1
movfw datoA_H ;Leer dato en dato h
movwf datoA ;Guarda el dato en variable datoA
MOVFW datoA
;movWF PORTB
btfss PIR1,TXIF ;Verifica que el transmisor no este ocupado
goto $-1 ;espera hasta que se desocupa
movfw datoA
movwf TXREG ;transmite el dato
;call retardo ; TIEMPO PARA TRANSMITIR EL DATO
bsf STATUS, RP0 ;Banco 1
J btfss TXSTA,TRMT ; espera a que se desocupe. ( checar si el dato se ha enviado)
GOTO J
bcf STATUS, RP0
bcf T2CON, TMR2ON ;apaga tmr2
movfw datoA
movwf CCPR1L ;carga valor del adc para ancho del pulso
bsf T2CON, TMR2ON ;<- enciende tmr2