Mikrocontroller mit langem Kabel für digitalen Eingang


16

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:

Tiefpassfilterschutz für einen Eingang

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?


1
Fügen Sie Ihrer Türklingel eine Sicherheitstastatur hinzu. Nur wer den richtigen vierstelligen Code eingibt, kann ihn zu jeder Tageszeit anrufen.
Kaz

Antworten:


15

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;

  1. Twisted Pair bevorzugen
  2. bevorzugen Sie ausgeglichene Linien
  3. Vermeiden Sie hochohmige Eingänge
  4. bevorzugen angepasste Impedanzen
  5. Vermeiden Sie übermäßigen LPF (lange Zeitkonstanten)
  6. RF-Kappe zur Unterdrückung von Transienten einschließen.
  7. Verwenden Sie Ferritperlen (CM-Drossel)
  8. Vermeiden Sie Masseschleifen (dh direkte ungenutzte Verbindung zum Stromkreis)
  9. Kontaktbenetzungsschaltung verwenden (polrichtige 10uF-Kappe über nicht vergoldeten Kontakten)
  10. Bevorzugen Sie Koaxialkabel für sehr raue EMI-Umgebungen.

Da viele Optionen nicht zur Verfügung stehen. Mach das;

  • Entfernen Sie die große Kappe an Bord und bewegen Sie sich zu den Kontakten des Fernschalters. (Muss)
  • Entfernen Sie den 3K (1k) Serienwiderstand und fügen Sie eine Ferrit CM Hülse oder ähnliches hinzu
  • Fügen Sie eine kleine HF-Kappe über dem Eingang an Bord hinzu. zB 0,001 ~ 0,01 uF oder ein Typ mit niedriger Induktivität.
  • Ersetzen Sie 100K durch 1k ~ 10K.
  • Fügen Sie große Ferritperlen mit mehreren Windungen zu beiden Drähten hinzu. (CM-Filter)

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. Bildbeschreibung hier eingeben

-Auf die gleiche Versorgungsspannung wie uC mit guter HF-Abdeckung über den Chip ziehen.


Ich muss eine Ferrit-CM-Hülse finden, aber ansonsten sieht das sehr machbar aus. Glauben Sie, dass dies funktioniert ? Digikey.com/product-detail/de/KR50TA251512B1/P11400-ND/409505 . Vielen Dank!
Matt Ruwe

wird ohne funktionieren, aber zusätzliche Versicherung für Streufrequenz-Bursts. Diese sind besser. Digikey.com/product-detail/de/FB73-287-RC/M8708-ND/775247 erhalten ein Dutzend oder mehr für die zukünftige Verwendung.
Tony Stewart Sunnyskyguy EE75

falsche ID lesen digikey.com/product-detail/de/35T0231-30P/240-2586-ND/1587459 oben sind zu klein. Ihre wird auch in Ordnung sein, aber veraltet.
Tony Stewart Sunnyskyguy EE75

Vielen Dank. Ein paar andere Fragen. Woran sollte ich in einem Wohnumfeld wie dem meinen die Gemeinsamkeiten knüpfen? Eine nahegelegene elektrische Erdung oder Sanitärinstallation?
Matt Ruwe

Die in der Nähe befindliche Steckdose oder die an die Steckdose angeschlossene Computergehäusemasse ist in Ordnung. Lange Drähte erhöhen die Induktivität um mehr als 1 m.
Tony Stewart Sunnyskyguy EE75

8

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):

Bildbeschreibung hier eingeben

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.


1
Keine schlechte Idee, aber es nimmt dem Konzept einen Teil des Spaßes. Ich würde immer noch gerne wissen, wann der Schalter nach Stunden gedrückt wird, damit ich die vorderen Lichter des Hauses einschalten und den Scherzen ein wenig von ihrer eigenen Medizin geben kann.
Matt Ruwe

Vielleicht ertönt eine entfernte Polizeisirene, die mit einem Taser am Schalter näher kommt.
Tony Stewart Sunnyskyguy EE75

1
Mein Lieblingsvorschlag stammte von einem Freund, der die Idee hatte, ein elektrisches Zündholz zu verwenden, das mit einem Feuerwerk verbunden war, das beim Drücken der Taste ausgelöst wurde. =) Am Ende war diese Idee aber einfach zu gefährlich.
Matt Ruwe

@Matt siehe mein Update für eine andere Lösung. Anstelle von Feuerwerkskörpern benutzte ich einmal eine Sirene und ein Blitzlicht, weil Kinder an der Seite meines Hauses rauchten. Ich habe es auch auf Video aufgenommen, was es so viel besser gemacht hat!
Garrett Fogerlie

6

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.


Wenn Sie bei berührungslosen metallischen Schaltern nicht 10% oder Nennstrom verwenden, kann der Startvorgang bei Strömen mit Logikpegel nicht intermittierend erfolgen. Aus diesem Grund ist die niedrige ESR-Überkappung (Pref-Film-Überkappung) wichtig, um die Oxydation bei niedriger ESR-Überkappung mit hohem Strom zwischen den Kontakten zu reduzieren.
Tony Stewart Sunnyskyguy EE75

@Richman - ein möglicher Ausfall ist möglich, ja - auch bei Verwendung eines elektromechanischen Summers. Man könnte den theoretischen Strom erhöhen, um die Idee eines Impulskondensators zu testen. Einige Designs von Klingeltasten können implizit einen Gleitkontakt aufweisen, wenn die Blätter gedrückt werden, was sehr hilfreich wäre. Ich habe den Verdacht, dass ein leicht zu behebender Fehler nach einigen Jahren kein Aushängeschild für ein Convenience-Gerät ist, das jemand für sein eigenes Haus baut. Praktisch ist es nützlich, wenn die Person an der Tür die Klingel zumindest leise hört.
Chris Stratton

0

Das 15 Meter lange Kabel wirkt wie eine Antenne. Sie müssen einen Durchgangskondensator (z. B. W2F11A4708AT1F ) verwenden, um die HF-Interferenz zu filtern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.