Wo kann man einen Kondensator platzieren, um den Messwert des IR-Sensors zu glätten?

Ich weiß, dass diese Frage bereits gestellt wurde, aber die Antwort, die ich hier suche, ist anders.

Ich habe von diesem Forumsbeitrag erfahren , in dem erklärt wird, wie man das Lesen eines scharfen IR-Sensors am besten glättet (es scheint wirklich großartig zu sein, basierend auf Fakten und Messungen).

Die Sache ist, dass ich nicht viel in Elektronik weiß, ich frage mich, wo ich den in diesem Beitrag beschriebenen Kondensator und Widerstand platzieren soll: 10uf ceramic capacitor and 530 ohm resistor parallel to the capacitor.

"Wo soll ich es hinstellen" bedeutet, wo schließe ich es an. Danke

@endolith hier: sparkfun.com/products/242 . Es gibt 3 Pins: VCC, Masse und Signalausgang.

Antworten (3)

Was Sie wollen, ist ein Tiefpassfilter . Ein Tiefpassfilter lässt langsame Signaländerungen durch, blockiert jedoch schneller wechselnde Signale. Der grundlegende Tiefpassfilter ist dieser RC-Filter :

RC-Filter

v ICH N ist das Signal vom Sensor. v C ist die Spannung des Kondensators, mit der Sie beispielsweise zum ADC (Analog-to-Digital Converter) eines Mikrocontrollers gehen könnten.
Der Kondensator wirkt als Spannungsspeicher, der über den Widerstand gefüllt oder entleert wird. Je höher der Wert des Kondensators, desto länger dauert dies. Ein höherer Widerstandswert bewirkt, dass weniger Strom zum und vom Kondensator fließt, und verhindert auch schnelle Änderungen.
Jetzt denken Sie vielleicht, je höher die Werte, desto besser die Glättung, und das stimmt, aber wenn Sie zu hoch gehen, verhindern Sie auch die normalen Änderungen aufgrund der Abstandsänderung vom Sensor. Und diese Änderungen sind erlaubt.
Der Schlüssel zum Finden der richtigen Werte ist die Cutoff-Frequenz, das ist die Frequenz, ab der das Filter ein Signal blockiert. Für den RC-Filter:

F C = 1 2 π × R C

Angenommen, Sie möchten Änderungen von 1 Hz zulassen, dh Änderungen, die in 1 Sekunde stattfinden. Dann nach der Formel

R C = 1 2 π × F C = 1 2 π × 1 = 0,16

Wenn Sie einen Wert von 1 wählen μ F für den Kondensator benötigen Sie 160k Ω für den Widerstand.

Wow tolle Antwort! Ich habe eine 0,1-uf-Keramikkappe, also habe ich Recht, ich brauche 16 kOhm für R, um eine Grenzfrequenz von 100 Hz zu erhalten (für einen IR-Abstandssensor für einen Roboter scheint es ungefähr richtig zu sein?). Hab ich recht?
@Matthieu - Freut mich, dass es dir gefällt. Ihre Werte stimmen für 100 Hz (obwohl 100 Hz wahrscheinlich mehr sind, als Sie für einen Roboter benötigen). Auch die Werte sind nicht sehr kritisch; 15k ist ein häufigerer Wert für einen Widerstand als 16k.
Es hat wirklich gut funktioniert! Ich habe 22K für den Widerstand verwendet, was ungefähr 70 Hz entspricht. Danke

Ich habe das Diagramm zu C.Zach Martins Antwort hinzugefügt. Ich habe seine Antwort nicht bearbeitet, da es beunruhigend ist, wenn der gesamte Sinn einer Antwort durch eine Bearbeitung geändert wird.

  • Mein Verständnis des ursprünglichen Beitrags, auf den verwiesen wird, ist, dass das Signal mit der Oberseite des Stromkreises und die Masse mit der Unterseite verbunden werden soll

  • Was CZR nicht empfohlen hat, schlägt in seiner Antwort eine Reihenschaltung vor - Sensorsignal oben, Ausgang z. B. an Arduino unten.

  • Und ich schlage vor, dass beide nicht optimal sind.

Was Sie wollen, ist ein "Tiefpassfilter", der die Hochfrequenzvariation und das Rauschen entfernt. So wird der Kondensator über den Widerstand geladen und entladen. Langsamer variierende Signale tun dies effektiver, schneller variierende Signale haben weniger Einfluss auf die Spannung des Kondensators.

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass dies sehr, sehr, sehr stark von der Eingangsquelle und der Last abhängt, wie gut dies funktioniert. Wenn Sie eine Sensor-Teilenummer oder besser noch einen Link zu einem Datenblatt sowie spezifische Arduino-Verbindungsinformationen (oder was auch immer die Last / Ausgabe ist) angeben, können wir eine bessere Antwort geben.

Mit R als 1 kOhm und C als 100 uF ergibt sich eine Zeitkonstante von 1 Millisekunde. Das ist vielleicht nicht gut genug. Größere Kondensatoren erzeugen einen niedrigeren Frequenzfilter. Größere oder viel größere Widerstandswerte (10k, 100k) können verwendbar sein - je nach Sensor und Last jedoch möglicherweise nicht. Helfen Sie uns, Ihnen zu helfen!.

Datenblatt - analoger Sensor GP2Y0A21YK

Datenblatt - Digitalsensor GP2Y0D21YK

Analog & Digital in einem Datenblatt


Dieser Sensor wurde von Endolith referenziert und kann (oder auch nicht) das sein, was Sie verwenden. Wenn es dann R in der Schaltung ist, die ich oben gezeigt habe, kann es nicht viel mehr als 1K sein, wenn der Ausgang (wie es scheint) "offener Kollektor" ist. Das Hinzufügen eines Kondensators vom Ausgang zur Masse hätte einen gewissen Effekt, aber der asymmetrisch angesteuerte Ausgang könnte Probleme verursachen. Sagen Sie uns also, was Sie wirklich verwenden möchten - Sensor und Last, und wir können die Antwort verfeinern.


Ihr Sensor kann einer von diesen sein. Ja?

Geben Sie hier die Bildbeschreibung ein

Es scheint großartig! Der Link zu meinem Sensor ist schon als Kommentar zu meiner Frage ;), er steht tatsächlich in der Liste. Ich habe eigentlich nur eine 0,1-uf-Keramikkappe, aber ich habe jede Menge Widerstände, also sollte das gut sein!
Teilen Sie uns die genaue Teilenummer des verwendeten Sensors mit. Es ist nicht ideal, wenn Leute sich durch Kommentare anderer Leute wühlen müssen, und kann zu Fehlern führen. Es gibt zwei Versionen dieses Sensors (A- und D-Versionen) - welche ist Ihre. Was ist deine Schaltung? Verwendest du einen Pullup-Widerstand am Ausgang? (in einem Fall laut Datenblatt). Was fährst du damit? (wie schon gefragt). Die Verwendung eines 15K-Widerstands kann Ihre Genauigkeit beeinträchtigen, je nachdem, was Sie fahren (wie ich angemerkt habe). Und es kann abhängig von anderen Faktoren zu einer stark reduzierten Leistung führen.
Wenn Sie einfach die Antworten nehmen, die Ihnen "gefallen", und andere technische Eingaben ignorieren (wie Sie es tun) und keine weiteren Details angeben, besteht eine angemessene Wahrscheinlichkeit, dass die Ergebnisse nicht Ihren Erwartungen entsprechen. Sie müssen versuchen, alle Fragen von Personen zu beantworten, die technisch kompetent erscheinen. Manchmal bringt dies ganz unerwartete Boni – oder eine ganz andere Antwort.
Russell, bist du eifersüchtig, dass ich bei einer anderen Antwort "Wow, tolle Antwort" gesagt habe? Deins ist auch toll, und ich vernachlässige es nicht, ich habe heute nur gearbeitet. Hier sind nun die Antworten, die Sie wollten: Das genaue Teil, das ich verwende, ist (wie ich in dem einzigen Kommentar gesagt habe) GP2Y0A21YK (also Version A). Meine Schaltung ist jetzt, dass ich den Signalausgang an einen analogen Arduino-Pin angeschlossen habe. Um die nächste Frage zu beantworten: kein Pull-up-Widerstand. Damit fahre ich einen Roboter: dh wenn ein Hindernis in einem Schwellenabstand erkannt wird, halte ich den Roboter an, um eine Kollision zu vermeiden.
Ich suche hier also nicht speziell nach Entfernungsmessung, sondern nach einer kritischen Entfernung, bei der ich anhalten muss. Was mir aufgefallen ist, und Sie werden es vielleicht interessant finden, ist, dass das Signal ziemlich korrekt ist, wenn nur der Sensor verwendet wird. Aber wenn ich den Staubsaugermotor am Roboter starte (ja, der Roboter ist ein Staubsauger), bekomme ich viel Lärm am Sensor. Zu Ihrer Information, der Arduino wird über USB mit Strom versorgt, aber die Motorbatterie und die USB-Masse sind verbunden. Vielleicht ist das die Ursache des Problems? Trotzdem vielen Dank für die Zeit, die Sie sich für mich nehmen, ich weiß das zu schätzen.
Der wichtige Punkt ist, dass Sie bei der Antwort, in der Sie "großartige Antwort" gesagt haben, meinen früheren technischen Beitrag effektiv ignoriert haben, der möglicherweise Ihr Ergebnis verändert hat - also sind Sie möglicherweise in die Irre gegangen. Und Sie haben auch nicht jedem (nicht nur mir) so viele Informationen wie möglich zur Verfügung gestellt. Die Informationen KÖNNEN dort in den Kommentaren vergraben sein, aber dies ist für andere (und mich) ungewiss. Ihre „Aufgabe“ ist es, eine klare Aussage über Ihre Anforderung und Ihre Schaltung zu treffen. Das hast du jetzt geschafft, aber es hat mehrere Tage gedauert und das hättest du am Anfang machen können.
Ich verstehe Ihren Standpunkt, aber direkte Fragen funktionieren oft viel besser als wirklich spezifische Fragen (um eine Antwort zu bekommen, meine ich). Ich wollte es zunächst nicht zu genau sagen, aber das war offensichtlich ein Fehler.

Stellen Sie sicher, dass Sie eine Keramikkappe verwenden, damit sie nicht polarisiert ist. Befestigen Sie die Seiten des Kondensators und die Seiten des Widerstands zusammen. Befestigen Sie eine Seite dieser Widerstands-/Kondensatorkombination am Signalausgang des Sensors. Befestigen Sie die andere Seite der Widerstands- / Kondensatorkombination an dem, was Sie verwenden möchten, um die Daten zu erhalten.

So was

Geben Sie hier die Bildbeschreibung ein

EDIT: Ich glaube, ich verstehe jetzt, was du fragst. Ich glaube, Sie sind sich nicht sicher, welcher Punkt die Vo-Leitung (Datenausgang) ist? Mein Vorschlag wäre, diesen Stecker einfach für 1,50 $ zu kaufen. Sie können dann einfach den oben erklärten Widerstand / die Kappe parallel an die gelbe Leitung löten / Steckbrett anschließen. Andernfalls müssen Sie es auf die Rückseite des Sensors löten.

Danke (ich habe jedoch den Stecker, also weiß ich, dass der gelbe das Signal ist). Obwohl ich nicht verstehe, was Sie mit "was auch immer Sie verwenden möchten, um die Daten abzurufen" meinen. Ich verbinde den Signalausgang des Sensors mit einem Arduino-Pin. Wo schließe ich also die andere Seite an, wenn 1 Seite des Widerstands / Kondensators "Parallel Combo" mit dem gelben Kabel (Signal) verbunden ist? :p Danke (und ich habe eine Keramikkappe).