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 ?