16f627 schakelen met reedcontact over lange afstand

Voor een eenvoudig alarmsysteempje (waar ik een PIC uC voor heb genomen) gebruik ik een reedcontact die via een input gedefinieerde poort met een pull down van 10k aan massa ligt. De interne pull down is uitgeschakeld.

Het probleem is het volgende: als het reedcontact zo'n 2 meter verwijderd is van de print, detecteert de PIC netjes of het contact open of gesloten is.
Zodra de afstand groter wordt (>5m), werkt het geheel niet meer betrouwbaar en wordt een '1' regelmatig niet gedecteerd (reedcontact is normally closed).

Ogenschijnlijk een simpel probleem maar ik kom er niet uit.

Wat moet ik doen?? Schmitt trigger?

Mogelijk pikt zo'n lange draad te veel storing op? Probeer het eens met een pull-down R van 1k. Verder is het meer gebruikelijk, pull-up weerstanden voor zoiets in te zetten, en het contact tussen ingangspin en GND te plaatsen. Dan komt de 5V-voedingsspanning niet op de draden te staan, waarmee je allerlei spullen op de pic aansluit.

Ik zou ook een ontstoringscondensator (100nF) gebruiken, die de storingen die op de ingangspin komen (wisselspanning) kortsluit naar de massa. Als je erg lange draden gaat gebruiken, voorzie dan ook een beveiliging tegen te hoge/lage spanningen (intern in de PIC zijn al diode's voorzien, maar die zijn enkel voor ESR, eigenlijk mag je er geen rekening mee houden), met een BAV99 na een serieweerstandje houd je de ingangspin netjes tussen 5,6 en -0,6V.

of een balanced signaal gebruiken

Heren, bedankt voor de tips (waarom ben ik daar zelf niet op gekomen??).
De oplossing is inderdaad pull-uppen en 100nF naar massa.

Op 27 september 2006 10:39:06 schreef plm:
Heren, bedankt voor de tips (waarom ben ik daar zelf niet op gekomen??).
De oplossing is inderdaad pull-uppen en 100nF naar massa.

Heel simpel: omdat je net als ons eerst eens met je kop tegen de muur moet lopen, voor je die dingen snapt (en nooit meer vergeet).
Wees gerust, er is hier niemand die alles weet, maar binnen onze beperkte kennis kunnen we wel leuke dingen doen. "If you know what you're doing, you're not learning anything!"

Nog een reed-relais aan de PIC kant aanbrengen wellicht?