Interferenz zwischen ADC-Proben mit XBee und Fotowiderstand

Ich verwende ein Modul der XBee-Serie 2 zum Abtasten der Werte von drei Sensoren, einem Fotowiderstand (LDR), einem Feuchtigkeitssensor und einem Temperatursensor (LM35). Wenn keine Helligkeit vorhanden ist, hat der Fotowiderstand den Maximalwert (1023), aber wenn die Umgebung sehr, sehr dunkel ist, ist der Wert der gleiche 1023, aber die anderen Sensoren beginnen instabil zu werden und geben Werte größer als normal. Vielleicht ein XBee ADC-Sampling-Problem? oder könnte es ein Schaltungsproblem sein?

Das XBee-Modul, das ich zum Sampling verwende, verwendet einen zyklischen Schlafmodus: Es wacht für 100 ms auf und bleibt 3 Minuten lang im Schlaf. Ich habe versucht, eine längere Weckzeit wie 1 s zu verwenden, aber das Problem ist immer da.

Das ist das Schema:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Dies ist ein Bild: https://dl.dropboxusercontent.com/u/9029111/IMG_4712.JPG

Ich denke, es ist ein Stromversorgungsproblem, denn wenn ich einen 1-kOhm-Widerstand in die Nähe von R2 stelle, ist der Feuchtigkeitssensor in Ordnung und die Temperatur variiert nur sehr wenig, um die Helligkeit zu variieren

Teilen sich alle drei Sensoren über einen Multiplexer einen gemeinsamen ADC? Wenn dies der Fall ist, versuchen Sie, die verschiedenen Eingänge mit einem größeren zeitlichen Abstand zwischen ihnen abzutasten
Bitte seien Sie genauer alsgiving values ​​greater than normal
Jippie, ich meine, wenn es Helligkeit gibt, habe ich Werte wie diese: Helligkeit = 300, Temperatur = 440, Umidität = 150; und das ist richtig; aber wenn es keine Helligkeit gibt, habe ich Werte wie: Helligkeit = 1023 und Temperatur = 990 und Umidity = 1005. Helligkeit stimmt, denn im Dunkeln ist der Wert maximal, aber Temperatur und Luftfeuchtigkeit sollten auf dem ursprünglichen Wert bleiben
Andy alias, ich weiß nicht; ich verwende nur ein XBee-Modul zum Abtasten; Ich habe die Sensoren nur mit dem D0-, D1- und D2-Pin des XBee-Moduls verbunden.
Bitte fügen Sie ein Bild Ihres Setups und einen Schaltplan hinzu (drücken Sie Strg-M, während Sie Ihre Frage bearbeiten).
Versuchen Sie, einen 10K-Poti über die Schienen für jeden der Sensoren zu ersetzen, und überprüfen Sie, ob Sie gute Werte senden können. Wenn sie laut sind, versuchen Sie, 0,1-uF-Kondensatoren zwischen den Eingängen und Masse hinzuzufügen, da Sie keine Hochfrequenzsignale messen müssen. Außerdem sollten Sie wahrscheinlich einen Strombegrenzungswiderstand mit Ihrer LED verwenden, da Sie sonst den Modulausgang überlasten, was möglicherweise sogar seine analoge Leistung beeinträchtigen könnte.
Welche ADC-Referenzspannung verwenden Sie für den Xbee?

Antworten (1)

Überprüfen Sie das Datenblatt für den ATmega, der sich auf Ihrem Arduino befindet, für den „ADC-Rauschunterdrückungsmodus“.

Um in einen der sechs Schlafmodi einzutreten, muss das SE-Bit im SMCR auf logisch Eins geschrieben und ein SLEEP-Befehl ausgeführt werden. Die SM2-, SM1- und SM0-Bits im SMCR-Register wählen aus, welcher Schlafmodus (Leerlauf, ADC-Rauschunterdrückung, Abschalten, Energiesparen, Standby oder erweitertes Standby) durch den SLEEP-Befehl aktiviert wird.

Leider müssen Sie, soweit ich sehen kann, Ihre eigene Alternative für schreiben, analogRead();da die Standardbibliothek diesen Befehl sleep nicht zu unterstützen scheint.

Lesen Sie diesen Artikel auf arduino.cc für Details zum Schlaf.

Danke Jippie, aber für die Probenahme verwende ich kein Arduino, sondern nur das XBee-Modul. Dieses Modul sendet die Werte an ein Arduino mit einem XBee-Schild; Glaubst du, das Problem sollte im Arduino liegen?
Entschuldigung, dann habe ich das falsch verstanden.