MPS20N0040D-D Sensor de Presión Integrado 0-5 psi (40kPa) DIP-6 para Arduino y Raspberry

[MPS20N0040D-D] MPS20N0040D-D Sensor de Presión Integrado 0-5 psi (40kPa) DIP-6 para Arduino y Raspberry

https://electrofranko.com/web/image/product.template/3705/image_1920?unique=c1409b2

S/ 13.00 13.0 PEN S/ 13.00

S/ 13.00

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: MPS20N0040D-D

Sensor de Presión Barométrica y Fluidos MEMS (MPS20N0040D-D)

Módulo transductor de presión manométrica de 0 a 40 kPa con convertidor ADC de 24 bits integrado.

El módulo MPS20N0040D-D es un sistema transductor piezo-resistivo basado en tecnología MEMS diseñado para la medición precisa de presiones neumáticas e hidráulicas de escala baja. Este módulo incorpora el sensor de presión de estado sólido MPS20N0040D junto con un chip convertidor analógico-digital (ADC) de 24 bits de alta ganancia (usualmente de la serie HX710B), el cual amplifica las sutiles variaciones de voltaje en milivoltios producidas por el puente de Wheatstone interno del transductor. Es ideal para aplicaciones de medición de nivel de líquidos por columna de agua, monitoreo de presión de aire en sistemas robóticos, equipos médicos de respiración y estaciones meteorológicas de rango medio, entregando una salida digital limpia y pre-filtrada a través de un bus serie serial síncrono de dos hilos.

Especificaciones Técnicas

Parámetro Detalle
Rango de Medición de Presión0 a 40 kPa (0 a 5.8 PSI o 0 a 300 mmHg)
Tensión de Operación (VCC)DC 3.3 V a 5 V (Módulo compatible con lógica digital)
Resolución del ADC Incorporado24 bits de alta precisión (Diferencial de bajo ruido)
Fluido de Trabajo AptoAire, gases no corrosivos y líquidos limpios
Impedancia de Entrada del Puente4 kΩ a 6 kΩ (Estructura interna puente completo)
Precisión de Escala Completa±0.3% a ±0.5% Span típico
Parámetro Detalle
Interfaz de ComunicaciónSerie de 2 hilos (Clock y Datos síncronos)
Temperatura de Operación-40 °C a +85 °C (Con compensación térmica básica)
Corriente de Consumo Nominal< 2.5 mA en estado de conversión activa
Diámetro de Boquilla Óptica2.5 mm (Para acoplamiento de manguera flexible)
Linealidad del Sensor±0.2% del rango completo medido
Asignación de PinesVCC, GND, OUT (Data), SCK (Clock)

Diagrama de Conexiones y Mapeo de Pines

Diagrama de Conexión MPS20N0040D-D

Ventajas del MPS20N0040D-D

Digitalización de 24 Bits en Placa: Integra el convertidor de alta ganancia directamente en el PCB, eliminando por completo el ruido electromagnético inducido que suele afectar las lecturas analógicas de mili-voltios en cables largos.

Estructura de Acoplamiento Mecánico Simple: La boquilla cilíndrica integrada de 2.5 mm permite una conexión estanca e inmediata con mangueras de silicona o poliuretano estándar de laboratorio, facilitando el diseño de trampas de aire para medir niveles de agua.

Alta Sensibilidad Neumática: Capaz de detectar sutiles variaciones en la columna de aire o de fluidos, ofreciendo un rango óptimo para proyectos educativos e industriales de baja presión donde transductores comerciales pesados carecen de resolución.

Código Arduino Completo y Optimizado

// Código Completo de Instrumentación para Sensor MPS20N0040D-D con ADC de 24 bits // Lee las señales digitales del chip amplificador mediante bit-banging síncrono directo // Configuración de Pines del Microcontrolador const int pinDatosOUT = 2; // Pin digital conectado a OUT (Data) del módulo const int pinRelojSCK = 3; // Pin digital conectado a SCK (Clock) del módulo // Variables globales para calibración de laboratorio y filtrado matemático long valorCeroCalibrado = 0; const int numeroMuestrasFiltro = 10; // Función de hardware de bajo nivel para extraer los 24 bits del convertidor serial long leerMuestraCrudaADC() { while (digitalRead(pinDatosOUT) == HIGH); // Espera activa hasta que la línea de datos baje (Conversión lista) unsigned long datoLeido = 0; // Lazo síncrono para desplazar los 24 bits de datos serie del bus for (byte i = 0; i < 24; i++) { digitalWrite(pinRelojSCK, HIGH); delayMicroseconds(1); // Retraso de estabilización de flanco datoLeido = datoLeido << 1; if (digitalRead(pinDatosOUT) == HIGH) { datoLeido++; } digitalWrite(pinRelojSCK, LOW); delayMicroseconds(1); // Retraso de retención de ciclo } // Pulso número 25 para liberar el registro del ADC y preparar la siguiente conversión digitalWrite(pinRelojSCK, HIGH); delayMicroseconds(1); digitalWrite(pinRelojSCK, LOW); delayMicroseconds(1); // Conversión matemática de complemento a dos para interpretar correctamente valores negativos if (datoLeido & 0x800000) { datoLeido |= 0xFF000000; } return (long)datoLeido; } // Función de promedio móvil para estabilización de fluctuaciones térmicas o físicas long obtenerPromedioMuestras(int muestras) { long sumaMuestras = 0; for (int i = 0; i < muestras; i++) { sumaMuestras += leerMuestraCrudaADC(); delay(10); // Breve retardo entre lecturas sucesivas del ADC } return sumaMuestras / muestras; } void setup() { Serial.begin(115200); // Velocidad de transmisión para el volcado de datos dinámicos Serial.println("--- Inicializando Sistema Transductor Neumático MPS20N0040D-D ---"); // Configuración de las líneas de entrada y salida digital pinMode(pinDatosOUT, INPUT); pinMode(pinRelojSCK, OUTPUT); digitalWrite(pinRelojSCK, LOW); // Proceso de Tara automática al encender el equipo (Asegurar que la boquilla no esté bajo presión) Serial.println("Estableciendo línea base (TARA)... Mantenga el sensor sin presión neumática."); delay(1000); valorCeroCalibrado = obtenerPromedioMuestras(20); Serial.print("Valor de calibración cero almacenado con éxito: "); Serial.println(valorCeroCalibrado); Serial.println("Sistema listo para operación continua."); Serial.println("-------------------------------------------------------------------------"); } void loop() { // Adquisición de la lectura promediada filtrada long lecturaActual = obtenerPromedioMuestras(numeroMuestrasFiltro); // Cálculo de la desviación respecto a la tara inicial long diferenciaPresion = lecturaActual - valorCeroCalibrado; // Factor de escala experimental (Debe ajustarse según las calibraciones de laboratorio específicas) // Este valor aproxima la conversión a kilo-pascales (kPa) basado en la escala del ADC float presionKPa = (float)diferenciaPresion / 12000.0; // Conversión secundaria a unidades milímetros de mercurio (mmHg) float presionMMHg = presionKPa * 7.50062; // Impresión de resultados de telemetría por puerto serie Serial.print("Lectura ADC Cruda: "); Serial.print(lecturaActual); Serial.print(" | Delta Corregido: "); Serial.print(diferenciaPresion); Serial.print(" | Presión Calculada: "); Serial.print(presionKPa, 3); Serial.print(" kPa"); Serial.print(" | "); Serial.print(presionMMHg, 2); Serial.println(" mmHg"); // Alerta diagnóstica en caso de sobrepresión del límite físico del componente if (presionKPa > 42.0) { Serial.println(" [ CRITICAL ALERT ]: Se ha excedido el rango nominal de diseño de 40 kPa."); } delay(500); // Frecuencia de actualización de la pantalla serial de laboratorio }