Cablaggio interruttore reed


9

Mi sto facendo strada attraverso un progetto di porta da garage. Ho acquistato alcuni di questi, ma sarò a rischio se riesco a trovare una risposta coerente su come sono collegati a un Rpi.

Il mio pensiero era solo di iniziare ad agganciarlo e dargli una possibilità, ma sono preoccupato di far esplodere il mio pi.

Ci sono alcuni siti che dicono di usare un pull up, alcuni dicono di usare più resistori. Alcuni ti fanno connettere attraverso la terra (che per me ha il minimo senso) che l'interruttore reed non è alimentato, non ho idea di come funzioni l'esempio di Adafruit.

Ho pensato di aver bisogno di energia per il comune, quindi al di fuori del post NO / NC ho bisogno di catturare lo stato su un pin GPIO, ma non capisco davvero dove mettere il terreno? Si divide come il collegamento a più resistori? Mettere l'interruttore a terra coinvolge l'intero circuito in quel modo?

Ho provato a leggere alcuni dei post qui, ma non mi stanno davvero spingendo sul perché. Qualcuno può aiutarmi a demistificare un po 'questo? Se hai qualche risorsa per costruire alcuni fondamenti, lo apprezzerei sicuramente. Sono un programmatore di professione, quindi sono fuori dal mio elemento.

MODIFICARE:

Ho avuto un po 'di confusione sul NO / NC. Penso che si sia chiarito un po ', lo stavo guardando dal punto di vista della mia porta e non dal contatto dell'interruttore. Il SW dovrebbe essere normalmente aperto.

Ho tre diagrammi qui e sto cercando chiarimenti Come si configura pull up vs pull down con il resistore. Ho bisogno di un resistore aggiuntivo per "tirare" e garantire la sicurezza del mio coraggioso soldato GPIO n. 18? Lo spostamento del resistore modifica le proprietà / funzionalità del circuito?

Schema elettrico

Ho bisogno di una resistenza più piccola? Avevo già un 4.7 sul tabellone, quindi l'ho usato. C'è un modo per calcolarne uno appropriato? Non ricevo un cambio pin.

Quindi, capisco che si tratta di una violazione del protocollo SO, che pone una domanda su una domanda, ma preferirei capire cosa sta succedendo piuttosto che distruggere una delle tue risposte e chiamarlo fatto.

MODIFICA 2:

Quando ho trovato una soluzione funzionante, ho provato a ridimensionarla, ma avevo bisogno di un resistore su ogni linea e l'ho passato allo schema mostrato. Funziona e non ha fatto esplodere il mio pi né ha dato fuoco.

Sto usando un software pulldown e debounce.

Cosa farebbe spostare l'alimentazione dell'interruttore sul lato terra del resistore? Niente?

wireDiagram


1
I tuoi interruttori hanno contatti normalmente chiusi e normalmente aperti. Questo renderà il tuo progetto più semplice. Collegare la resistenza da 4,7 K al pin e alla guida da 3,3 V. Prendi un filo da terra e il pin GPIO e collegalo ai contatti normalmente chiusi (NC) e comuni (COM) dell'interruttore e il pin GPIO "bingo" 18 sarà basso fino all'apertura della porta. L'interruttore si apre e la resistenza di pull up da 4.7k "tira su" il pin GPIO a 3.3V per fornire l'ingresso che stai cercando. Questa è un'opzione molto più sicura per proteggere il pi dagli errori di cablaggio.
Bob Fk,

Risposte:


4

È un interruttore. Collegalo come faresti con qualsiasi altro interruttore. L'unica cosa da decidere è se si desidera utilizzarlo come normalmente aperto (normalmente letto come spento) o normalmente chiuso (normalmente letto come acceso).

Esistono due modi di base: collegare comune a terra o collegare comune a 3V3. Qualunque sia la scelta, è più sicuro effettuare tale connessione tramite un resistore per prevenire il rischio di cortocircuito. Qualcosa tra 1-5 mila ohm dovrebbe essere adatto.

Collegare l'altro contatto scelto a un set GPIO come input.

Collegamento comune a terra e normalmente chiuso a un GPIO

Imposta GPIO come input con il pull-up interno impostato su 3V3.

Il GPIO normalmente leggerà 0 (quando l'interruttore è spento). Si leggerà 1 quando l'interruttore è acceso.

Collegamento comune a terra e normalmente aperto a un GPIO

Imposta GPIO come input con il pull-up interno impostato su 3V3.

Il GPIO leggerà normalmente 1 (quando l'interruttore è spento). Si leggerà 0 quando l'interruttore è acceso.

Connessione comune a 3V3 e normalmente chiusa a un GPIO

Impostare GPIO come input con il pull-down interno impostato su ground.

Il GPIO leggerà normalmente 1 (quando l'interruttore è spento). Si leggerà 0 quando l'interruttore è acceso.

Connessione comune a 3V3 e normalmente aperta a un GPIO

Impostare GPIO come input con il pull-down interno impostato su ground.

Il GPIO normalmente leggerà 0 (quando l'interruttore è spento). Si leggerà 1 quando l'interruttore è acceso.

In tutto quanto sopra, la resistenza interna debole (circa 50k) verrà sostituita dalla connessione a terra o 3V3 attraverso la resistenza esterna più potente (meno resistente).


Inoltre, gli switch Reed hanno una frequenza di rimbalzo molto elevata. Quindi un certo debounce sarebbe molto utile nel software.
Piotr Kula,

4

Esatto, basta usarlo come interruttore. Suppongo che quando la porta è aperta o chiusa, il Pi vuole conoscerla tramite uno dei suoi pin di input. Il pi sta cercando un basso? Quindi collegare l'interruttore dal pin di ingresso a terra e portare un resistore di pull-up alla linea + 3.3V. Quando l'interruttore è aperto, cioè non è presente un magnete, l'ingresso sarà logicamente alto. Quando il magnete attiva l'interruttore, il pin di ingresso sarà logicamente basso. La resistenza di pull-up non è critica, inizia con un 4k7Ohm (giallo, viola, rosso, X). Misurare il pin con l'interruttore spento, dovrebbe essere vicino a 3,3 V se non provare un resistore con meno Ohm. dì 2k2. Non andare al di sotto di 1k, ciò richiederebbe 3,3mA. Se stai cercando un alto, usa i contatti normalmente chiusi dell'interruttore reed. Non eseguire 3,3 V su uno switch esterno. Un corto potrebbe uccidere il tuo chip regolatore Pi.


Grazie per aver risposto, penso che mi sto avvicinando. Ho apportato alcune modifiche alla mia domanda se vuoi dare un'occhiata.
Bmo,

1

Il diagramma a sinistra e al centro non è affatto buono GPIO è in corto e non può fare nulla.

Il diagramma a destra è corretto se il tuo programma pin 18 GPIO è alla ricerca di un input per andare in alto per fare il passo successivo. Tuttavia, normalmente non colleghiamo una barra di alimentazione, 3.3V, direttamente a un ingresso, normalmente la alimentiamo attraverso una resistenza di 2,2k o giù di lì. Prova 4.7k e vedi se il pin si alza. Vorrei collegare il resistore dal pin GPIO 18 allo switch e fare in modo che l'altro lato vada alla linea di alimentazione da 3,3 V. Non sono felice di avere la linea da 3,3 V che va alla porta del garage senza un resistore per limitare la corrente in caso di cortocircuito nel cablaggio. Se la resistenza da 4.7k è sufficiente per sollevare il pin in alto lo dividerei nel prodotto finale con 2,2k su entrambi i lati dell'interruttore all'estremità Pi per proteggere l'ingresso Pi e l'alimentazione Pi da cortocircuiti accidentali nel cablaggio esterno all'interruttore della porta del garage. Il resistore nel circuito di destra sarebbe chiamato pull down e di solito non sono necessari. Controllare di nuovo se con un voltmetro o una sonda logica se l'ingresso è normalmente basso fino a quando non viene tirato in alto dall'interruttore e assicurarsi che si avvicini a 3V. Sono il tuo contrario, bravo con l'hardware, non so nulla di programmazione, cerco di imparare un po 'di Linux.


Grazie ancora. Ho aggiunto un diagramma della mia configurazione attuale. Stai dicendo che dovrei spostare l'alimentazione a 3,3 V sul lato terra del resistore? Dovrei
sentirmi

0

Rimuovere la resistenza da 4,7 K a terra. Non è necessario. È solo un altro piccolo, inutile carico sull'alimentatore. Il tuo circuito attuale funzionerà così com'è, MA sarebbe meglio avere un resistore in serie dalla barra di alimentazione da 3,3 V a ciascuno degli interruttori per proteggere l'alimentatore nel caso in cui uno degli interruttori venga accidentalmente messo in corto a terra. Che taglia di resistenza? Prova un 10k, se funziona, ovvero hai circa> 3v sul pin GPIO, ottimo, se non prova un 4.7k o un 2.2k o anche un 1k


0

Funzionerà solo il circuito di destra. Le risposte che hai sopra sono probabilmente corrette (tentare di descrivere un circuito a parole è confuso, anche per un ingegnere elettrico).

Sento che offrono troppe opzioni. Raccomando quanto segue. http://elinux.org/RPi_GPIO_Interface_Circuits#Buttons_and_switches

Per motivi tecnici relativi a interferenze e sicurezza è preferibile un pull up a Vcc con un interruttore a terra, ma entrambi funzioneranno. (È possibile utilizzare un interruttore normalmente aperto o normalmente chiuso).

Se vuoi essere super sicuro, potresti includere un piccolo resistore in serie con il vantaggio del GPIO. Ciò è necessario solo se si collega uno switch a un pin configurato come output. Il Pi non verrà danneggiato anche se lo fai, in quanto ha una protezione interna da sovraccarico, ma potrebbe influire sul funzionamento di altri pin.

Gli interruttori reed PS rimbalzano come un bambino su un trampolino. Avrai bisogno di una tecnica anti-rimbalzo, sia hardware che software.


-1

Sono stato in grado di farlo funzionare seguendo questo esempio che utilizza la tensione dal pin GPIO e terra. Ho saltato le cose dello Streamer perché non mi interessava.

Tutorial sull'interruttore Reed


1
Si prega di inserire un breve riepilogo dal collegamento nel caso in cui si interrompa.
Umano
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.