TODOPIC

Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: Kspids en 09 de Octubre de 2019, 09:05:23

Título: Problema lectura con pin analógico
Publicado por: Kspids en 09 de Octubre de 2019, 09:05:23
Hola compis! cómo van?

Verán, necesito ver a través de Arduino el nivel de CO2 que tengo en mi instalación. El sensor que utilizo es el Caudalímetro SD5100 (https://www.ifm.com/es/es/product/SD5100). El problema que tengo es que en el momento que conecto el sensor me aparece en "raw_adc" 1023 pulsos directamente y por ello en la pantalla del sensor no marca lo mismo que me aparece a mí en arduino. ¿Cuál es el fallo? porqué recibo 1023 pulsos? ¿Veis algo raro en la conexión?

Adjunto el esquema eléctrico. También os muestro a continuación la parte del código que pertenece a este sensor:

Código: [Seleccionar]
    int raw_adc = analogRead(Caudal_2);                   
    float value_adc = (raw_adc * (5.0 / 1023.0));

    Serial.print("  , Caudal_2= ,");
    Serial.print(value_adc);
    Serial.print("  , Nº= ,");
    Serial.println (raw_adc);

Espero vuestra ayuda! Llevo todo el día con ello y seguramente sea una chorrada de fallo pero no doy con la tecla...
Título: Re:Problema lectura con pin analógico
Publicado por: elreypic2 en 09 de Octubre de 2019, 11:50:38
Que tal kspids,

Buenos pues veo varios detalles en tu problema. El primero es que estás conectanod el pin del arduino directamente a gnd, eso por mas que cambie el valor del caudalímetro simpre leeras 0V.
Lo segundo es que mencionas pulsos, según pude leer en las especificaciones, la salida que usas OUT2 que está en el pin 2 y esa salida es analógica, la cual entrega una salida de corriente de 4 a 20mA a una carga máxima de 500 ohms. No entiendo cuando dices que te da siempre 1024 pulsos, si nunca recibes pulsos. Además en tu sketch de arduino es claro qeu estás usando el ADC.
Me imagino que tienes el manual de operación del caudalímetro y que lo has configurado para que la salida 2 actúe como salida analógica en lugar de salida de conmutación.
Ahora bien en tu caso estás usando una resistencia de 220 ohms, pero tu pin de medición del arduino debe ir conectado directamente al pin 2 del sensor y obviamente la resistencia de 220 ohm en paralelo con la salida, tal como la tienes. Por lo tanto, si el sensor te entrega una corriente de 4 a 20 mA, quiere decir que cuando te entregue 4mA el voltaje en la reistencia será:

Simple ley de ohm:  V= IR ; V=0.004A(220ohms)= 880mV

Y cuando el sensor te entregue 20mA, entonces el voltaje en la resistencia será: V=0.02(220)=4.4V

saludos,

elreypic.