Ich arbeitete mit einem Nucleo f411re (STM32 MCU), um mehrere analoge Sensoren zu lesen.
Ich fing an, einen einzelnen Temperatursensor (LM35) zu testen, und alles war in Ordnung. Als ich ein lineares Potentiometer zum Lesen seiner Verlängerung hinzufügte, geschah eine seltsame Tatsache: Die abgelesene Temperatur stieg proportional zur Verlängerung des Potentiometers. Hier ist die Schaltung:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
PA0 und PA1 sind analoge Pins, die mit stm32 ADC verbunden sind. Hier finden Sie das ADC-Datenblatt.
Also habe ich die Ausgangsspannung von LM35 mit einem Multimeter gemessen und sie war stabil, selbst wenn ich das Potentiometer verlängerte; während, wenn von Nucleo gelesen, die Temperatur dem abgelesenen Potentiometer "folgte".
Ich habe dieses Problem gelöst, indem ich einen 1-µF-Kondensator zwischen Masse und V_out von LM35 hinzugefügt habe. Aber ich bin nicht zufrieden, denn ich würde gerne den Grund für das seltsame Temperatur-Leseverhalten wissen. Irgendeine Idee?
BEARBEITEN : Ich habe etwas gefunden, das dieses Problem in Abschnitt 3.4.1 des ADC-Datenblatts erklären könnte. Es scheint ein bekanntes Problem zu sein, das auf den Abtastschalter in der internen Abtastschaltung des ADC zurückzuführen ist. Können Sie das bestätigen?
Es gibt viele Dinge, die dieses Problem verursachen können. siehe hier . Was jedoch am offensichtlichsten zu sein scheint, ist ein Problem mit der Abtastzeit.
Auf Seite 35 wird erwähnt, dass der ADC ein Sample-and-Hold-Wandler ist: Er hat einen Kondensator, der sich auflädt (oder entlädt), bis er die gleiche Spannung wie die Quelle hat, und dann diesen Wert liest. Die Zeit dafür wird durch die Zeit eingestellt, in der SW1 eingeschaltet ist: die "Abtastzeit". Wenn der Kondensator nicht genügend Zeit hat, sich auf die richtige Spannung zu entladen/aufzuladen, bevor Sie den Schalter ausschalten und den Wert ablesen (abhängig vom Widerstand der Quelle), erhalten Sie nicht den richtigen Wert.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Dies ist im Abschnitt über Probleme beim Lesen von Quellen mit hoher Impedanz. Der LM35 hat einen niederohmigen Ausgang, wenn er Strom liefert, er kann jedoch nur 1 µA Strom aufnehmen, was ihn zu einer Stromsenke mit sehr hoher Impedanz macht.
Wenn Sie mit dem Poti eine höhere Spannung einstellen, als Sie vom LM35 ablesen, muss der Strom vom Kondensator aus C_sh durch den LM35 fließen: Dies ist sehr langsam (wegen dieser Stromsenke von 1 µA) und somit Ihre Abtastzeit ist zu kurz.
Ein Kondensator hilft, dies zu glätten, verlangsamt aber auch die Reaktionszeit des LM35.
Eine schnelle Lösung besteht darin, einen >1kΩ-Widerstand parallel zum LM35 zu schalten. Dies senkt den Strom, wenn Sie ihn brauchen, und gibt einen Strompfad zur Erde für den Strom von C_sh.
Transistor
Bence Kaulics
pjc50
Bernherz
Rohr
Bernherz
Rohr
Spehro Pefhany
Bernherz
Scott Seidmann
Bernherz
Andreas Spott
Transistor
Bernherz