Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Joerg Newsgroups: de.sci.electronics Subject: Re: GPIO Eingang bei langer Leitung schuetzen Date: Mon, 10 Feb 2020 14:26:31 -0800 Lines: 61 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net SL/IGj8T96tIRIHzJIHCTQpBn79N/u8Y3MoKybBN/5XK6tehGr Cancel-Lock: sha1:0ivvVXNBazNmU9z2sVDy8Dk1ou0= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070728 Thunderbird/2.0.0.6 Mnenhy/0.7.6.666 In-Reply-To: Xref: csiph.com de.sci.electronics:275171 On 2020-02-09 22:54, Marc Haber wrote: > Hallo, > > ich habe einen Regenmesser mit Wippe am Gartenhaus montiert. Aktuell > erfolgt die Abfrage des an der Wippe angebauten Reedkontakts in der > Nähe mit einem Arduino. > > Ich möchte das nun mit einem eh vorhandenen Banana Pi im Haus machen. > Zwischen dem Gartenhaus und dem Haus gibt es eine unbenutzte > Telefonleitung von ca 25 Metern Länge. > > Der Banana Pi hat einen GPIO-Eingang mit eingebautem > Pull-Up-Widerstand. Was kann mir denn da passieren, wenn ich diesen > Pin einfach über die Telefonleitung und den Reedkontakt nach Masse > ziehe? > > Wird das funktionieren oder brauche ich irgend eine Art an > Signalaufbereitung? Ist vielleicht gar eine galvanische Trennung > (Optokoppler) angezeigt? Wenn ja, kann ich dann wenigstens die > Spannungsversorgung für die "lange" Seite der Verbindung aus dem > Banana Pi ziehen? > Wenn das Kabel nicht als Freileitung laeuft, mache ich das meist so: VCC | - ^ 10k | 100 Zum Sensor ___ o ___ Port Pin o------------------o-|___|-o-o-o|___|-o-------o o | - ^ BAV99 oder aehnlich | GND (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de) Links ist Deine Telefonleitung. 10k, falls Dein Pull-up 100k ist, sonst entsprechend kleiner waehlen. Der 100ohm Widerstand dient dazu, dass die BAV99 den Loewenanteil einer Spitze abfaengt und nur ein kleiner Teil davon ueber die ESD-Dioden des Prozessor-IC laeuft. Falls im Arduino (vermutlich ist da ein ATMega drin) kein Schmitt Eingang vorliegt, muesste man thoeretisch noch einen Schmitt-Buffer oder Inverter zwischensetzen, aber oft geht es auch ohne. Zur Software: Bei 25m wird es einiges an Bouncing wegen Kabelreflexion geben. Man koennte die Telefonleitung mit ihrer Nennimpedanz per AC-Terminierung abschliessen, aber wenn man die Impedanz nicht kennt, kann das Gebastel werden. Ansonsten gutes De-Bouncing in der SW machen, z.B. durch Blanking, wo die Ausschwinger ignoriert werden. -- Gruesse, Joerg http://www.analogconsultants.com/