Sensor SDP8xx-Analog

Buenas,

Estoy empezando en esto del arduino y estoy teniendo una serie de problemas y dudas al intentar leer las presiones del sensor SDP816-125Pa. El sensor es analógico así que entiendo que no debería ser muy complicado...

Datasheet: https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/8_Differential_Pressure/Datasheets/Sensirion_Differential_Pressure_Sensors_SDP8xx_Analog_Datasheet.pdf

Mi primera duda es, la resolución del sensor es de 16bit y yo lo estoy leyendo con un arduino UNO de 10 bit, entiendo que la medida que leo con mi arduino es menos precisa que la que puede dar el sensor, cierto?

Tengo el siguiente código:

void setup() {
 Serial.begin(9600); 
 analogReference(DEFAULT); 
}

void loop() {
 
 int valueSensor = analogRead(A0); 

 float voltage = valueSensor *   5.0 / 1023.0 ; 
 float DP = ((190.0 * voltage) / 5.0 ) -38.0;
 
 Serial.print(valueSensor);Serial.print(" ");
 Serial.println(voltage); ;Serial.print(" ");
 Serial.print("pressure,Pa:"); Serial.println(DP); 
 
 delay(1000);

}

Y lo que leo a traves del monitor es lo siguiente:

pressure, Pa:-28.71 0 0.00 pressure, Pa:-38.00 0 0.00 pressure, Pa:-38.00 0 0.00 pressure, Pa:-38.00 0 0.00 pressure, Pa:-38.00 0 0.00 pressure, Pa:-38.00 0 0.00 pressure, Pa:-38.00

Mientras soplo y paro, lo cual debería haber algun tipo de variación y no la hay...

Si alguien puede ayudarme, muchas gracias!!!

Hola @ptrvg, bienvenida al foro Arduino en Español.
Por favor, edita el enlace que has colocado como simple texto usando la etiqueta (hipervínculo) que corresponde para que el interesado pueda ir directamente al sitio en cuestión.
Así mismo, has colocado un código sin usar etiquetas para los códigos. Como ves, nada se postea como simple texto en este foro y en casi ninguno.
Asi que espero edites ambas faltas a las Normas del foro.

Respuesta:
Tu sensor es de 16 bits internamente. Lo que asegura estabilidad en la salida analógica. Hasta ahi, estamos bien.
Luego como se trata de un sensor diferencial, debes probar en ambas entradas de presión, la positiva y la negativa.

Yo me olvidaría de las cuentas y me concentraría solo en la salida cruda que toma el ADC del UNO o sea

 int valueSensor = analogRead(A0);

y aprovechando la función plot de tu Monitor Serie intentaría ver como se comporta el sensor.

Repasemos, lo tienes conectado a 5VDC

de izq a derecha

AOUT a la entrada A0
GND al GND del arduino
VCC a los 5V del arduino
OCS a GND o sea salida lineal.

ahora si tu sensor es de 125Pa o sea ± 0.5 inH2O = 12.7mmH2O

Te das cuenta lo sensible que es!!!
Apenas soplas y se va a fondo de escala.
Debes usar una manguera de agua y moverla con mucha suavidad y solo 1.27 cm de Agua, lo que es nada.
Hablamos de detectar diferencias de aire mínimas. Algo que se usa en laboratorios para saber si hay ingreso/egreso de aire.

Muchas gracias, lo siento, ya está editado.

Si tengo conectado el sensor como has dicho. He comprobado lo que dices, y apenas se ve cambio ... Si es un sensor muy sensible, pero si soplas debería verse algun cambio, ya que tengo otro de la misma marca pero de 25Pa y si que se ven esas variaciones ( es digital, no analógico.. ) Aun así si saturara, haciendo la conversión a medida fisica tal y como viene en el datasheet me debería de dar 125Pa no 0Pa no es así?

Muchas gracias

Como tienes conectado el pin 1? Debe estar en LOW para tener la salida lineal. No me has confirmado que está asi conectado.

De todas las versiones porque no compraste esta SDP810 > 125Pa con salida I2C digital y lo lees sin problemas? Mira el link

Perdona, si lo tengo al LOW, tb he probado a tenerlo a HIGH con la conversión pertinente... y nada...

Porque necesito poner 5 sensores iguales y leerlos a la vez. Estuve buscando y leí por el foto que al ser comunicación i2c si son iguales no se puede con un solo arduino, necesitaría creo que un multiplexor y tambien la programación será mas complicada que uno analógico... De ahí la elección de la versión analógica y no la digital.

Pero dijiste que tienes la versión ANALOGA no la versión DIGITAL. Con la versión DIGITAL si hay que usar el I2C pero arrancaste diciendo con tu título

Sensor SDP8xx-Analog

Asi que prueba a ver si resulta ser un digital en lugar de un análogo. Vi que en el digital no existe el pin que cambia la curva.