TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jorge_vallejos en 14 de Enero de 2014, 02:49:35

Título: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: jorge_vallejos en 14 de Enero de 2014, 02:49:35
Hola, estoy trabajando con un sensor de presion MPX4250 en la lectura de la presión atmosférica, utilizo el PIC16F877A y el CCS, pero, al realizar la simulación obtengo una lectura errónea en el LCD, me podrían decir cual es el error.


Adjunto el código. Gracias, son de mucha ayuda para los que estamos empezando a programar PIC's
Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: rivale en 14 de Enero de 2014, 11:43:47
intenta con esto

Código: [Seleccionar]
#include <16f877a.h>
#device adc=10
#FUSES XT NOWDT NOPUT NOBROWNOUT NOLVP PROTECT
#use delay(clock=4M)
#include <lcd.c>

void main(void)
{
int16 adc;
float voltaje, presion;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
set_adc_channel(0);
while(TRUE)
{

adc=read_adc();
voltaje= 5.0 * (float)adc / 1024.0;
presion=((0.2 + voltaje)/0.02);

lcd_putc("\f");
printf(lcd_putc,"\fP= %4.2f Kpa",presion);
delay_ms(500);

}
}

Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: MerLiNz en 14 de Enero de 2014, 11:59:33
tendrias que seguir paso a paso los calculos, asi ves donde esta fallando la ecuacion, es decir, si el "voltaje" te cuadra, pues entonces estara mal la ecuacion de la presion
Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: jorge_vallejos en 14 de Enero de 2014, 13:29:22
De acuerdo, mas tarde realizaré todas sus sugerencias!!!
Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: jorge_vallejos en 14 de Enero de 2014, 22:42:40
compilé el código que me dieron anteriormente, pero me da siempre el mismo problema, si tengo 20kPA en el sensor, en el LCD obtengo 41.49kPA, no se que estará pasando. Ayudaaaa!!! No se que anda mal.

Adjunto la simulación y el código.
Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: rivale en 15 de Enero de 2014, 11:06:16
que voltaje tienes a la salida de tu sensor? porque no haces la conversión manualmente y ves si tu ecuación esta bien
Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: xesc0 en 15 de Enero de 2014, 15:41:26

También puedes bajarte un programa para programar en C++ y ver el resultado (printf) que te genera cada operación para detectar dónde fallas de los cálculos ;-)
Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: jhozate en 15 de Enero de 2014, 20:49:27
cual es la ecuación que estas implementado para determinar el valor en Kpa? la hoja de datos brinda la función de transferencia y un grafico del comportamiento, cuando usé ese sensor lo que hice fue graficar un trozo de esa recta en excel y usar esa ecuación lineal que relaciona Kpa vs Vout
Título: Re: Ayuda, sensor de presion atmosferica MPX4250
Publicado por: jorge_vallejos en 15 de Enero de 2014, 22:19:13
Estoy usando la ecuación que me da la función de transferencia de la hoja de datos del sensor:
La programación la tengo de la siguiente manera:

Código: [Seleccionar]
adc=read_adc();
voltaje= (5.0 *adc / 1024.0);
presion= ((voltaje+0.131)/0.02)-0.015;


Algo importante, es que cuando al sensor de PROTEUS le pongo 0kPA, el LCD me muestra los 20kPA, que es lo mínimo que mide el sensor según la hoja de datos, además, al medir el voltaje de  salida del sensor, y comparar ese voltaje con la gráfica que me sale en la hoja de datos, la presión mostrada en el LCD está bastante próxima. Será que está corrompida la pantallita que tiene el sensor de PROTEUS? Porque el voltaje se corresponde con la medición obtenida en el LCD y en la gráfica de la hoja de datos, no así en lo que dice PROTEUS en la pantalla del sensor.

Saludos, y muchísimas gracias por todos sus aportes, me son de muchísima utilidad, ya que este es mi primer semestre en la introducción a la programación de los PIC con CCS.

 ((:-))