PIC: MPX4115 e MPX4250
Este dois sensores são projetados para detectar a pressão absoluta do ar, utilizando-o como altímetro ou barômetro. Este sensor da Freescale integra on-chip, amplificadores operacionais e redes de resistores para fornecer um alto nível de sinal de saída analógica e compensação de temperatura.
MPX4115: opera em 5V e possui um range de 15 à 115 kPa ( ou 2.18 à 16.7 psi ).
MPX4250: opera em 5V e possui um range de 0 à 250 kPa( ou 0 à 36.3 psi ).
MPX4115: opera em 5V e possui um range de 15 à 115 kPa ( ou 2.18 à 16.7 psi ).
MPX4250: opera em 5V e possui um range de 0 à 250 kPa( ou 0 à 36.3 psi ).
É conectado, através do pino 1, em uns dos canais analógicos do microcontrolador. Os pinos 4, 5 e 6 não são utilizados. O pino 2 é o GND e o pino 3 é o VCC.
BIBLIOTECA
BIBLIOTECA
MikroC PRO PIC
#define MPX4250_ERROR 3.45
#define MPX4115_ERROR 1.3
//Vout = 5 (P x 0.009 - 0.095)
float MXP4115_Read( char channel )
{
float valor;
valor = ADC_Read(channel);
valor /= 204.8;
valor += 0.475;
valor /= 0.045;
return( valor - MPX4115_ERROR );
}
//Vout = 5 * (0.00369 * P + 0.04)
float MXP4250_Read( char channel )
{
float valor;
valor = ADC_Read(channel);
valor /= 204.8;
valor -= 0.2;
valor /= 0.01845;
return(valor - MPX4250_ERROR);
}
//Vout = 5 * (0.0012858 * P + 0.04)
float MXP5700_Read( char channel )
{
float valor;
valor = ADC_Read(channel);
valor /= 204.8;
valor -= 0.2;
valor /= 0.006429;
return(valor);
}
MikroC PRO PIC
//Habilitar as seguintes bibliotecas:
// - ADC
// - Lcd
// - Conversions e C_String
//Pinos do LCD
sbit LCD_RS at RB0_Bit;
sbit LCD_EN at RB1_Bit;
sbit LCD_D4 at RB2_Bit;
sbit LCD_D5 at RB3_Bit;
sbit LCD_D6 at RB4_Bit;
sbit LCD_D7 at RB5_Bit;
sbit LCD_RS_Direction at TRISB0_Bit;
sbit LCD_EN_Direction at TRISB1_Bit;
sbit LCD_D4_Direction at TRISB2_Bit;
sbit LCD_D5_Direction at TRISB3_Bit;
sbit LCD_D6_Direction at TRISB4_Bit;
sbit LCD_D7_Direction at TRISB5_Bit;
//Copie e cole o código da biblioteca aqui!!!
char string[16];
void main()
{
CMCON = 7;
Lcd_Init();
Lcd_Cmd( _LCD_CURSOR_OFF );
Lcd_Cmd( _LCD_CLEAR );
memcpy( string, "P: ", 3 );
while(1)
{
//Converte o valor em string
WordToStr( MXP4115_Read(0)*10, string+3 );
string[8] = string[7];
string[7] = '.';
memcpy( string+9, " kPa", 5 );
Lcd_Out( 1, 1, string );
//Converte o valor em string
WordToStr( MXP4250_Read(1)*10, string+3 );
string[8] = string[7];
string[7] = '.';
memcpy( string+9, " kPa", 5 );
Lcd_Out( 2, 1, string );
Delay_ms( 500 );
}
}


amigo para eu usar o MPX4250 como eu Faco?
ResponderExcluirJa atualizei o post!!
Excluiramigo, tem como vc tambem atualizar para o mpx5700 , valew
ResponderExcluir:-bd
ExcluirTiago, para o MPX4250 tenho um calculo mais rápido que talvez vc consiga adaptar aos outros:
ResponderExcluirvalor = ADC_Read(channel);
valor -=54; //Valor inicial de medição para 0 Kpa
return(valor / 3.77108);
Boa tarde como eu faria para pressão negativa?
ResponderExcluirDesde já agradeço
Leandro
e para o mpxh6400, como ficaria?
ResponderExcluirAgradecido
Rafael
como faria para medir o volume de combustivel usando este sensor MPX4250
ResponderExcluirBoa tarde Tiago.
ResponderExcluirTu pode colocar dados hex para download ?