Microcontrollore con filo lungo per ingresso digitale


16

Ho il pulsante del campanello in casa collegato a una scheda di sviluppo GHI EMX . Il software valuta l'ora del giorno e determina se il campanello deve suonare o meno.

Nota a margine: questo è stato implementato come un modo per affrontare gli scherzi ding-dong-ditch che stavo ricevendo.

Tutto funziona alla grande, tranne per un problema, il filo collegato alla scheda EMX è lungo circa 50 piedi (~ 15 metri) e genera abbastanza interferenza per la scheda da pensare che qualcuno abbia premuto il pulsante e quindi il mio campanello suona a intervalli casuali in tutto il giorno. Sia mia moglie che il mio cane non lo apprezzano (ma i bambini pensano che sia molto divertente).

Ho provato a risolvere il problema seguendo i consigli trovati in questo articolo e implementando il seguente circuito:

Protezione filtro passa basso per un ingresso

Questo non ha risolto il problema, ma ho scoperto che mettere un resistore da 3k nel per 1k e sostituire il condensatore .01uF con un 40uF ha funzionato un po 'meglio, ma qualcosa di più di 3k provoca un notevole ritardo quando si preme il pulsante prima del la campana suona. La differenza per il mio circuito è che la scheda funziona a 3.3V invece di 5V (che presumo peggiori il problema) e invece di collegarsi a terra l'interruttore completa il circuito (cioè due fili vanno tra il microcontrollore e l'interruttore).

Il filo che passa tra l'interruttore e il microcontrollore è un filo standard per campanello che non è schermato o attorcigliato. La sostituzione del filo del campanello con filo schermato non è, sfortunatamente, un'opzione poiché ciò richiederebbe di strappare il muro a secco.

Ho esaminato la seguente domanda qui , ma sembra che abbia a che fare con un ADC che potrebbe essere un po 'diverso dal mio problema. Qualsiasi aiuto sarebbe molto apprezzato.

Aggiornamento
Dopo aver letto più documentazione , sembra che sebbene il microcontrollore sia alimentato a 3,3 V, è tollerante a 5 V sui pin I / O. Posso regolare un valore di resistenza più alto se uso 5 V, ma questo sarà di aiuto?


1
Aggiungi una tastiera di sicurezza al tuo campanello. Solo chi inserisce il codice di quattro cifre corretto può squillarlo, a qualsiasi ora del giorno.
Kaz,

Risposte:


15

Ciò che lo schema non mostra è l'enorme ronzio a 60Hz della modalità comune e il modo in cui i motivi sono interconnessi con la vicinanza a linee CA e transitori di linea elettrica.

Il tuo esempio è un buon esempio di come non interfacciare fili lunghi.

Posso suggerire in futuro;

  1. preferisce la coppia intrecciata
  2. preferisce linee bilanciate
  3. evitare ingressi ad alta impedenza
  4. preferisce impedenze abbinate
  5. evitare eccessivo LPF (costanti di lunga durata)
  6. include il cappuccio RF per sopprimere i transitori.
  7. utilizzare perline di ferrite (strozzatore CM)
  8. evitare il circuito di terra (es. collegamento diretto non sfruttato al circuito)
  9. utilizzare il circuito di bagnatura dei contatti (cappuccio 10uF di polarità corretto tra contatti non dorati)
  10. preferire il coassiale per ambienti EMI molto difficili.

Dal momento che molte opzioni non sono disponibili. Fai questi;

  • rimuovere il tappo grande a bordo e passare ai contatti dell'interruttore remoto. (dovere)
  • rimuovere il resistore serie 3K (1k) e aggiungere manicotto CM in ferrite o simile
  • aggiungere un piccolo cappuccio RF a bordo attraverso l'ingresso. es. 0,001 ~ 0,01uF o qualsiasi tipo di bassa induttanza.
  • Sostituisci 100K con 1k ~ 10K.
  • aggiungere grosse perle di ferrite con più giri su entrambi i fili. (Filtro CM)

Con questa soluzione, l'impedenza del circuito di commutazione sarà a bassa impedenza in chiusura e bassa impedenza con cappuccio elastico attraverso l'interruttore quando aperto. Il ronzio CM verrà assorbito e il rumore RF differenziale verrà eliminato. inserisci qui la descrizione dell'immagine

-pullup alla stessa tensione di alimentazione di uC con buon limite RF sul chip.


Dovrò trovare una manica in ferrit CM ma per il resto sembra molto fattibile. Pensi che funzionerà: digikey.com/product-detail/en/KR50TA251512B1/P11400-ND/409505 . Grazie!
Matt Ruwe,

funzionerà senza, ma ha aggiunto l'assicurazione per le esplosioni RF vaganti. Questi sono migliori .. digikey.com/product-detail/en/FB73-287-RC/M8708-ND/775247 ne ottieni una dozzina o più per un uso futuro.
Tony Stewart Sunnyskyguy EE75,

ID errato digikey.com/product-detail/en/35T0231-30P/240-2586-ND/1587459 sopra sono troppo piccoli. Anche il tuo andrà bene ma diventerà obsoleto.
Tony Stewart Sunnyskyguy EE75,

Grazie. Un paio di altre domande. In un ambiente residenziale come il mio, a cosa dovrei legare il terreno comune? Una messa a terra o un impianto idraulico nelle vicinanze?
Matt Ruwe,

la presa elettrica nelle vicinanze o la custodia del computer collegata alla presa vanno bene. I fili lunghi aggiungono troppa induttanza> 1 m.
Tony Stewart Sunnyskyguy EE75,

8

Una soluzione semplice potrebbe essere quella di lasciare il sistema del campanello com'era prima di iniziare questo progetto e utilizzare semplicemente il microcontrollore per interrompere l'alimentazione dell'altoparlante del campanello della porta con un relè quando non si desidera ascoltare il campanello.

Aggiornare

Non ho molta familiarità con i sistemi di campanelli (oltre a un rapido google), quindi quanto segue presuppone che tu abbia almeno due conduttori che corrono dal tuo MCU allo switch.

La scheda GHI EMX che hai ha un ADC a 10 bit in modo da poter inviare 12vDc (o più) al campanello e utilizzare un semplice divisore di tensione in modo che la tensione all'MCU non superi i 5 volt max. Quindi, dal lato software, tutto ciò che dovresti fare è leggere l'ADC e se il valore è> 1000 (potresti dover giocare con questo numero e 1023 è il massimo su un ADC a 10 bit), allora il campanello è stato premuto.

Sarebbe simile a questo (cerca di non essere sopraffatto dalle mie fantastiche capacità di editing grafico):

inserisci qui la descrizione dell'immagine

Un'altra opzione simile è quella di utilizzare un trigger schmitt con una tensione di ingresso superiore. Ma ciò richiederebbe parti extra ed è uno sforzo maggiore rispetto all'opzione ADC.

modificare

La risposta di Chris Stratton ha fatto un buon punto sul flusso attuale. Se si cambia la resistenza di pull up da 100k a una di ~ 220ohm che potrebbe fare il trucco.


1
Non è una cattiva idea, ma toglie un po 'di divertimento al concetto. Vorrei ancora sapere quando l'interruttore viene premuto dopo ore in modo da poter accendere le luci anteriori della casa e dare ai burloni un po 'della loro medicina.
Matt Ruwe,

forse il suono di una lontana sirena della polizia che si avvicina con un taser sull'interruttore.
Tony Stewart Sunnyskyguy EE75,

1
Il mio suggerimento preferito è stato quello di un amico che ha avuto l'idea di usare un fiammifero elettrico collegato ad alcuni fuochi d'artificio che si sarebbero spenti quando si preme il pulsante. =) Alla fine quell'idea era semplicemente troppo pericolosa.
Matt Ruwe,

@Matt guarda il mio aggiornamento per un'altra soluzione. Invece di fuochi d'artificio, una volta ho usato una sirena e una luce stroboscopica perché i bambini fumavano sul lato della mia casa. L'ho preso anche in video, il che lo ha reso molto migliore!
Garrett Fogerlie,

6

In realtà esiste una soluzione molto semplice a questo problema.

La chiave per comprendere questa soluzione è pensare al motivo per cui un semplice campanello elettromeccanico non suona a causa di interferenze simili. La risposta ovviamente è che richiede che l'effettiva potenza dell'anello attraversi il circuito chiuso - l'interferenza non accoppierà abbastanza potenza nel circuito aperto per squillare falsamente.

È possibile creare una situazione simile utilizzando un resistore pullup di basso valore, con il pulsante del campanello collegato a terra. Un centinaio di ohm di resistenza significherebbe che circa 25 milliampere di corrente dovrebbero fluire prima che l'ingresso del microcontrollore sia sufficientemente basso da poter essere letto come "0". La comunicazione seriale a lungo raggio viene spesso eseguita con una corrente di 20 mA, quindi 25 mA dovrebbero essere sufficienti, ma è possibile regolare facilmente su o giù.

È possibile rifiutare ulteriormente le interferenze disponendo di software sul microcontrollore che richiede che il pulsante venga mantenuto chiuso - senza spazi vuoti - per circa 100 mS prima che venga riconosciuto come un anello valido.

Si potrebbe sostenere che questo metodo sta sprecando energia, tuttavia l'energia viene consumata solo durante il tempo in cui il cicalino viene tenuto premuto. Il resistore deve avere la capacità di gestione della potenza (termica) per la possibilità che il pulsante si blocchi in modo permanente chiuso, ma non sarebbe il caso normale di calcolare il consumo di energia.


a meno che non si usi il 10% o la corrente nominale su interruttori metallici a contatto non Au, alla fine non si avvierà intermittente con correnti di livello logico. Questo è il motivo per cui il limite inferiore di ESR attraverso (pref film cap) è essenziale per ridurre l'ossidazione con bassa dispersione di corrente elevata ESR tra i contatti.
Tony Stewart Sunnyskyguy EE75,

@Richman - possibile guasto, sì - lo è anche quando si usa un cicalino elettromeccanico. Si potrebbe aumentare la corrente sulla teoria che potrebbe aiutare o provare l'idea del condensatore di impulsi. Alcuni disegni di pulsanti per campanello possono implicitamente avere un contatto scorrevole poiché le foglie si abbassano, il che sarebbe di grande aiuto. Ho il sospetto che un fallimento facilmente risolto dopo un certo numero di anni non sarebbe uno spettacolo per un dispositivo di convenienza che qualcuno costruisce per la propria casa. A livello pratico, è utile se la persona alla porta può almeno sentire debolmente il campanello.
Chris Stratton,

0

Il cavo da 15 metri si comporta come un'antenna. È necessario utilizzare un condensatore passante (ad esempio W2F11A4708AT1F ) per filtrare l'interferenza RF.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.