Ich habe den Türklingelknopf an meinem Haus mit einer GHI EMX-Entwicklungsplatine verbunden . Die Software wertet die Uhrzeit aus und legt fest, ob die Türklingel läuten soll oder nicht.
Randnotiz: Dies wurde implementiert, um mit Ding-Dong-Ditch-Streiche umzugehen, die ich erhielt.
Dies alles funktioniert hervorragend, bis auf ein Problem: Das an die EMX-Platine angeschlossene Kabel ist ungefähr 15 Meter lang und erzeugt so viele Störungen, dass die Platine den Eindruck erweckt, dass jemand auf den Knopf gedrückt hat, und daher klingelt meine Türklingel durchgehend in zufälligen Abständen der Tag. Sowohl meine Frau als auch mein Hund wissen das nicht zu schätzen (aber die Kinder finden es sehr lustig).
Ich habe versucht, das Problem zu beheben, indem ich den Ratschlägen in diesem Artikel gefolgt bin und die folgende Schaltung implementiert habe:
Dies hat das Problem nicht behoben, aber ich habe festgestellt, dass das Einsetzen eines 3k-Widerstands in den 1k-Kondensator und das Ersetzen des .01uF-Kondensators durch einen 40uF-Kondensator etwas besser funktioniert, aber alles, was über 3k liegt, führt zu einer merklichen Verzögerung, wenn der Knopf vor dem gedrückt wird Klingel läutet. Der Unterschied für meine Schaltung besteht darin, dass die Platine mit 3,3 V anstelle von 5 V betrieben wird (was das Problem vermutlich verschlimmert) und der Schalter die Schaltung abschließt, anstatt eine Verbindung mit Masse herzustellen (dh zwei Drähte verlaufen zwischen dem Mikrocontroller und dem Schalter).
Das Kabel, das zwischen dem Schalter und dem Mikrocontroller verläuft, ist ein Standard-Türklingeldraht, der nicht abgeschirmt oder verdrillt ist. Das Ersetzen des Klingeldrahtes durch einen abgeschirmten Draht ist leider keine Option, da dies das Abreißen der Trockenmauer erforderlich machen würde.
Ich habe mir hier die folgende Frage angesehen , aber das scheint mit einem ADC zu tun zu haben, der sich möglicherweise ein wenig von meinem Problem unterscheidet. Jede Hilfe wäre sehr dankbar.
Update
Nachdem Sie mehr in der Dokumentation gelesen haben , scheint es, dass der Mikrocontroller, obwohl er mit 3,3 V betrieben wird, an seinen E / A-Pins 5 V toleriert. Ich kann mich auf einen höheren Widerstandswert einstellen, wenn ich 5 V verwende. Aber hilft das irgendetwas?
quelle
Antworten:
Was der Schaltplan nicht zeigt, ist das riesige Gleichtakt-Brummen bei 60 Hz und wie die Erdung mit der Nähe zu Wechselstromleitungen und Stromleitungs-Transienten verbunden ist.
Ihr Beispiel ist ein gutes Beispiel dafür, wie lange Drähte nicht miteinander verbunden werden.
Darf ich in Zukunft vorschlagen;
Da viele Optionen nicht zur Verfügung stehen. Mach das;
Bei dieser Lösung ist die Impedanz des Schaltkreises beim Schließen niedrig und die Impedanz bei geöffnetem Elect-Cap-Schalter niedrig. CM-Brummen wird absorbiert und differentielles HF-Rauschen unterdrückt.
-Auf die gleiche Versorgungsspannung wie uC mit guter HF-Abdeckung über den Chip ziehen.
quelle
Eine einfache Lösung kann darin bestehen, das Klingelsystem so zu belassen, wie es vor Beginn dieses Projekts war, und die Stromversorgung des Türklingellautsprechers mit einem Relais über den Mikrocontroller zu unterbrechen, wenn Sie die Klingel nicht hören möchten.
Aktualisieren
Ich bin nicht sehr vertraut mit Türklingelsystemen (außer einem schnellen Google), daher wird im Folgenden davon ausgegangen, dass mindestens zwei Leiter von Ihrer MCU zum Switch verlaufen.
Die von Ihnen verwendete GHI-EMX-Karte verfügt über einen 10-Bit-ADC, sodass Sie 12 VDC (oder mehr) an die Türklingel senden und einen einfachen Spannungsteiler verwenden können damit die Spannung an der MCU nicht über maximal 5 V liegt. Auf der Softwareseite müssten Sie dann nur den ADC lesen. Wenn der Wert> 1000 ist (möglicherweise müssen Sie mit dieser Nummer herumspielen, und 1023 ist das Maximum bei einem 10-Bit-ADC), wurde die Türklingel gedrückt.
Es würde ungefähr so aussehen (versuchen Sie, sich nicht von meinen großartigen Grafikbearbeitungsfähigkeiten überwältigen zu lassen):
Eine ähnliche Option ist die Verwendung eines Schmitt-Triggers mit einer höheren Eingangsspannung. Dies würde jedoch zusätzliche Teile erfordern und ist aufwändiger als die ADC-Option.
Bearbeiten
Chris Strattons Antwort machte einen guten Eindruck über den aktuellen Fluss. Wenn Sie den 100k Pull-Up-Widerstand auf einen ~ 220 Ohm ändern, kann dies helfen.
quelle
Es gibt tatsächlich eine sehr einfache Lösung für dieses Problem.
Der Schlüssel zum Verständnis dieser Lösung besteht darin, darüber nachzudenken, warum eine einfache elektromechanische Türklingel aufgrund ähnlicher Interferenzen nicht klingelt. Die Antwort ist natürlich, dass die tatsächliche Ringleistung durch den geschlossenen Stromkreis fließen muss - durch Interferenzen wird nicht genügend Leistung in den offenen Stromkreis eingekoppelt, um falsch zu klingeln.
Sie können eine ähnliche Situation erstellen, indem Sie einen Pullup-Widerstand mit niedrigem Wert verwenden und die Klingeltaste mit Masse verbinden. Ein Widerstand von 100 Ohm würde bedeuten, dass etwa 25 Milliampere Strom fließen müssten, bevor der Mikrocontrollereingang niedrig genug ist, um als "0" gelesen zu werden. Die serielle Kommunikation über lange Strecken erfolgt häufig mit einem Strom von 20 mA. 25 mA sollten also ausreichen, aber Sie können die Einstellung einfach nach oben oder unten vornehmen.
Sie können Interferenzen weiter abweisen, indem Sie Software auf dem Mikrocontroller installieren, bei der die Taste für ca. 100 ms lückenlos geschlossen bleiben muss, bevor sie als gültiger Ring erkannt wird.
Man könnte argumentieren, dass diese Methode Strom verschwendet, der Strom jedoch nur während der Zeit verbraucht wird, in der der Summer gedrückt gehalten wird. Der Widerstand muss über eine (thermische) Belastbarkeit verfügen, damit die Taste dauerhaft geschlossen bleibt. Dies ist jedoch nicht der Normalfall, um den Stromverbrauch zu ermitteln.
quelle
Das 15 Meter lange Kabel wirkt wie eine Antenne. Sie müssen einen Durchgangskondensator (z. B. W2F11A4708AT1F ) verwenden, um die HF-Interferenz zu filtern.
quelle