Interferencia entre muestras de ADC con XBee y fotorresistencia

Estoy usando un módulo XBee serie 2 para muestrear los valores de tres sensores, un fotorresistor (LDR), un sensor de humedad y un sensor de temperatura (LM35). Cuando no hay brillo la fotorresistencia tiene el valor máximo (1023), pero si el ambiente es muy muy oscuro el valor es el mismo 1023, pero los demás sensores empiezan a ser inestables dando valores mayores a lo normal. ¿Tal vez un problema de muestreo de XBee ADC? o podría ser un problema de circuito?

El módulo XBee que estoy usando para el muestreo, usa un modo de suspensión cíclica: se despierta durante 100 ms y permanece dormido durante 3 minutos. Intenté usar un tiempo de activación mayor como 1 s, pero el problema siempre está ahí.

Este es el esquema:

esquemático

simular este circuito : esquema creado con CircuitLab

Esta es una imagen: https://dl.dropboxusercontent.com/u/9029111/IMG_4712.JPG

Creo que es un problema de potencia, porque si pongo una resistencia de 1Kohm cerca de R2 el sensor de humedad está bien, y la temperatura varía muy poco para variar el brillo.

¿Los tres sensores comparten un ADC común a través de un multiplexor? Si es así, intente muestrear las diferentes entradas con un intervalo de tiempo mayor entre ellas.
Por favor, sea más preciso quegiving values ​​greater than normal
jippie, quiero decir que cuando hay brillo tengo valores como este: brillo=300, temperatura=440, humedad=150; y esto es correcto; pero cuando no hay brillo, tengo valores como: brillo = 1023, temperatura = 990 y humedad = 1005. el brillo es correcto porque cuando está oscuro el valor está al máximo, pero la temperatura y la humedad deben permanecer con su valor original
Andy alias, no sé; estoy usando solo un módulo XBee para el muestreo; solo he vinculado los sensores al pin D0, D1 y D2 del módulo XBee.
Agregue una imagen de su configuración y un diagrama de circuito (presione Ctrl-M mientras edita su pregunta).
Intente sustituir un potenciómetro de 10K a lo largo de los rieles para cada uno de los sensores y verifique que puede enviar buenos valores. Si son ruidosos, intente agregar capacitores de .1uF entre las entradas y tierra, ya que no necesita medir señales de alta frecuencia. Además, probablemente debería usar una resistencia de límite de corriente con su LED, de lo contrario, puede sobrecargar la salida del módulo, lo que quizás incluso podría afectar su rendimiento analógico.
¿Qué voltaje de referencia ADC está usando para el Xbee?

Respuestas (1)

Consulte la hoja de datos del ATmega que está en su Arduino para ver el "modo de reducción de ruido ADC".

Para ingresar a cualquiera de los seis modos de suspensión, el bit SE en SMCR debe escribirse en uno lógico y debe ejecutarse una instrucción SLEEP. Los bits SM2, SM1 y SM0 en el registro SMCR seleccionan qué modo de suspensión (inactivo, reducción de ruido ADC, apagado, ahorro de energía, espera o espera extendida) se activará mediante la instrucción SLEEP.

Desafortunadamente, por lo que puedo ver, tendrá que escribir su propia alternativa, ya analogRead();que la biblioteca estándar parece no admitir el comando de suspensión.

Consulte este artículo en arduino.cc para obtener detalles sobre el sueño.

Gracias, Jippie, pero para el muestreo no estoy usando Arduino sino solo el módulo XBee. Este módulo envía los valores a un Arduino con un XBee Shield; ¿Crees que el problema debería estar en el Arduino?
Lo siento, entendí mal entonces.