Problema con la lectura de dos sensores

Hola foro, bien resulta que estoy teniendo un pequeño problema a la hora de realizar la lectura de dos sensores. Uno de temperatura (LM35) y uno de humedad.
Estoy desarrollando un sistema de riego automatizado con un arduino nano, bueno tengo el sensor de temperatura estable, pero al conectar el sensor de humedad o estando este ya conectado, la lectura del sensor de temperatura se vuelve inestable demasiado, cuando lo desconecto la temperatura vuelve a la normalidad, no se porque sucede eso.

Bueno como sensor de humedad estoy usando dos pequeños alambres con una resistencia en pulldown.

Esto funciona para mi, pero pasa lo antes mencionado.

La explicación mas simple que tu sensor de humedad este consumiendo demasiado y haga fallar a tu arduino. Notas algun otro cambio en el comportamiento del Arduino?
Tienes un tester como para medir cuanta corriente consume el sensor de humedad. Deberían ser unos pocos mA.

Será esto posible? Bien trataré de medir el consumo del sensor, pero pasa igual si uso una fuente externa conectando gnd del arduino y pasa lo mismo.

Respecto al comportamiento del arduino no hay ninguno que no haya notado, todo funciona bien, sólo que genera inestabilidad.

Lo que hice fue usar una misma salida digital del arduino para activar el sensor, obtengo la lectura luego apago la salida.

Por ahora me está funcionando, pero me gustaría saber porque la inestabilidad al usar los dos sensores al mismo tiempo.

Saludos.

Okay. Olvida el consejo anterior ya que lo has probado con fuente externa y te falla del msimo modo.
Cual es el circuito que usas con el LM35?

Si, exactamente ese, es original según me dijeron el la tienda.

El circuito, no uso, lo tengo conectado al arduino con su alimentación normal(el lm35).
arduino-LM35-esquema-electrico

Medi la salida del sensor, conectando y desconectando el sensor de humedad, el valor se mantiene estable, el problema pasa a la hora de realizar la lectura.

Ya aquí, como puedo hacer para tener una lectura más estable. Me puedes dar un código de ejemplo de como realizar varias lecturas y sacar una sola sumando estas, bueno como sería para hacerlo?

Por ahora el método que estoy usando me funciona pero la lectura de la humedad varía un poco no es mucho pero me gustaria reducir ese margen de lectura para ser un poco exacto.

Con el método que te mencioné esta funcionando bastante bien, ya obtengo la temperatura estable. :slight_smile:

Pruebas a ver si mejora.

  1. Coloca una R entre Out y GND de 100k.
  2. Un capacitor electrolítico de 1uF 12V. Va a establizar la lectura.
    No soy de usarlos pero en este caso no veo mas remedio.
  3. Si esto no funciona probamos la promediacion o mejor aún la mediana.

IMPLEMENTAR UN FILTRO MEDIANA MÓVIL RÁPIDO EN ARDUINO

¿Y la conexión del sensor de humedad cómo es?

Bueno como mencioné uso como sensor dos pequeños conectores sin su aislante. ¿Como?

Bueno como estoy trabajando en una mazetera, metí los dos alambres a lo largo de la mazetera dentro de la tierra.
Y mientras más conduzca es porque hay muy buena humedad, hago la lectura lo convierto de 1023 a 100 con el método map.
Esto funciona quizá no precisamente pero obtengo una lectura y mientras más baja sea es porque la humedad es menos.

Bien esto funciona sin problemas.
El problema es al estar conectado el sensor lm35 y querer conectar el sensor de humedad.
Pero bien si conecto la entrada analógica directamente a la alimentación 5v pasa lo mismo, me desestabiliza la lectura de la temperatura.

Como al sensor? Donde iría el capacitor mencionado? Bueno informo que tengo uno de 100uf en la alimentación del arduino.

Pero no creo que sea por eso, pienso que por alguna razón al querer realizar la lectura de las dos entradas analógicas una lectura afecta a la otra.

En este caso el sensor de humedad o simplemente si conecto la entrada del sensor a los 5v pasa lo mismo.

Si entiendo bien, un cable a un pin ADC y otro a GND, ¿es así?

Lo único que se me ocurre es que se genere/detecte "ruido" eléctrico y eso afecte las lecturas.

Lo ideal sería hacer un circuito balanceado para tu sensor (generalmente se usan amplificadores operacionales) y de esa forma eliminar el ruido que pudiese entrar por el cableado, pero intenta con lo que te propuso @Surbyte que puede dar buenos resultados.

Tengo una resistencia pulldown, un cable a la tierra de la mazeta y el otro cable a VCC hacia la tierra de la mazeta igual.

Será que sea el ruido? Porque pasa lo mismo si conecto los 5v al pin ADC.

Trabaja bien usando sólo un sensor pero al usar los dos la lectura de la temperatura es inestable.

Probablemente debido a la impedancia de salida asimétrica del LM35.
El LM35 tiene una impedancia de fuente baja pero la impedancia del sumidero es alta.
Por lo tanto, no puede descargar el condensador de retención de muestras ADC.
Si se resuelve fácilmente, conecte LM35 a A0, higrómetro a A1 y A2 a GND.
Realice una lectura analogRead(A2) antes de medir, cada dato descargará completamente el condensador S/H.
(Originalmente, uC tiene un diagrama que conecta ADC a GND internamente, pero se usa A2 porque no se puede usar con Arduino analogRead).

EDITAR:
Ponga la lectura de A2 antes de cada lectura.

tmp = analogRead(A2); // Conecte GND para descargar el condensador S/H
tmp = analogRead(A0); // Leer LM35
hyd = analogRead(A2);
hyd = analogRead(A1);
2 Likes

Gracias me parece algo razonable, mañana haré las pruebas a ver que pasa.

Así sería: Conectar lm35 al pin A0, el sensor de humedad al pin A1 y para descargar el condensador A2 a GND.

Muchas gracias a todos, ya solucióne el problema al parecer era lo que mencionó @chrisknightley muchas gracias amigo, Saludos.

1 Like

Excelente!
Para conservar en un cajón "virtual" para futuros usos.

Buen aporte @chrisknightley

Saludos

2 Likes

Me alegro de que hayamos podido solucionar esto.
Espero que tengas una buena proyecto.

1 Like

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.