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:
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
Ü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.
Andi aka
Jippie
giving values greater than normal
Nicola
Nicola
Jippie
Chris Stratton
Marc P