Câblage du commutateur Reed


9

Travailler mon chemin à travers un projet de porte de garage. J'ai acheté quelques - unes des ces mais je vais danged si je peux trouver une réponse cohérente sur la façon dont ils sont câblés à un Rpi.

Ma pensée était juste de commencer à le brancher et à lui donner un coup de feu, je crains cependant de faire exploser mon pi.

Il y a certains sites qui disent utiliser un pull up, certains disent utiliser plusieurs résistances. Certains vous font connecter à la terre (ce qui est le moins logique pour moi) que le commutateur à lames n'est pas alimenté, je ne sais pas comment l'exemple d'Adafruit fonctionne.

J'ai supposé que j'avais besoin d'alimentation pour le commun, puis hors du poste NO / NC, j'ai besoin de capturer l'état sur une broche GPIO, mais je ne comprends pas vraiment où mettre le terrain? Est-il séparé comme le lien à plusieurs résistances? Est-ce que mettre l'interrupteur à la terre dynamise tout le circuit de cette façon?

J'ai essayé de lire certains des articles ici, mais ils ne m'amènent pas vraiment au pourquoi. Quelqu'un peut-il m'aider à démystifier un peu cela? Si vous avez des ressources pour construire certains fondamentaux, je l'apprécierais certainement. Je suis programmeur de métier donc je suis hors de mon élément.

ÉDITER:

J'ai eu une certaine confusion sur le NO / NC. Je pense que ça s'est un peu éclairci, je le regardais du point de vue de ma porte et non du contact de l'interrupteur. Le SW doit être normalement ouvert.

J'ai trois diagrammes ici et je cherche des éclaircissements Comment configurez-vous pull up vs pull down avec la résistance. Ai-je besoin d'une résistance supplémentaire pour «tirer» et assurer la sécurité de mon brave soldat GPIO # 18? Le déplacement de la résistance modifie-t-il les propriétés / fonctionnalités du circuit?

Schéma

Ai-je besoin d'une plus petite résistance? J'avais déjà un 4.7 sur la carte alors je l'ai utilisé. Existe-t-il un moyen de calculer celui qui convient? Je ne reçois pas de changement d'épingle.

Donc, je comprends que c'est une violation du protocole SO, poser une question sur une question, mais je préfère comprendre ce qui se passe que d'écraser une de vos réponses et de l'appeler terminée.

EDIT 2:

Lorsque j'ai obtenu une solution de travail, j'ai essayé de la faire évoluer mais j'avais besoin d'une résistance sur chaque ligne et je l'ai commutée sur le schéma illustré. Cela fonctionne et n'a pas explosé mon pi ni mis le feu.

J'utilise un menu déroulant et un anti-rebond de logiciel.

Que ferait le déplacement de l'alimentation du commutateur vers le sol de la résistance? Rien?

wireDiagram


1
Vos interrupteurs ont un contact normalement fermé et normalement ouvert. Cela facilitera votre projet. Câblez la résistance de 4,7 K à la broche et au rail de 3,3 V. Prenez un fil de terre et la broche GPIO et connectez-le aux contacts normalement fermés (NC) et communs (COM) du commutateur et la broche GPIO "bingo" 18 sera basse jusqu'à ce que la porte soit ouverte. Le commutateur s'ouvre et la résistance de rappel de 4,7 k "relève" la broche GPIO à 3,3 V pour fournir l'entrée que vous recherchez. Il s'agit d'une option beaucoup plus sûre pour protéger le pi contre les défauts de câblage.
Bob Fk

Réponses:


4

C'est un interrupteur. Connectez-le comme vous le feriez avec n'importe quel autre interrupteur. La seule chose à décider est de savoir si vous souhaitez l'utiliser comme normalement ouvert (normalement lu comme désactivé) ou normalement fermé (normalement comme comme activé).

Il existe deux méthodes de base: connecter le commun à la terre ou le commun au 3V3. Quel que soit votre choix, il est plus sûr de faire cette connexion via une résistance pour éviter le risque de court-circuit. Quelque chose entre 1-5 mille ohms devrait convenir.

Connectez l'autre contact choisi à un ensemble GPIO comme entrée.

Connexion commune à la terre et normalement fermée à un GPIO

Définissez le GPIO comme entrée avec le pull-up interne sur 3V3.

Le GPIO lira normalement 0 (lorsque le commutateur est éteint). Il indiquera 1 lorsque l'interrupteur est activé.

Connexion commune à la terre et normalement ouverte à un GPIO

Définissez le GPIO comme entrée avec le pull-up interne sur 3V3.

Le GPIO lira normalement 1 (lorsque le commutateur est éteint). Il affichera 0 lorsque le commutateur est activé.

Connexion commune à 3V3 et normalement fermée à un GPIO

Définissez le GPIO comme entrée avec le menu déroulant interne à la masse.

Le GPIO lira normalement 1 (lorsque le commutateur est éteint). Il affichera 0 lorsque le commutateur est activé.

Connexion commune à 3V3 et normalement ouverte à un GPIO

Définissez le GPIO comme entrée avec le menu déroulant interne à la masse.

Le GPIO lira normalement 0 (lorsque le commutateur est éteint). Il indiquera 1 lorsque l'interrupteur est activé.

Dans tout ce qui précède, la faible résistance interne (environ 50k) sera annulée par la connexion à la masse ou 3V3 via la résistance externe plus puissante (moins résistante).


De plus, les commutateurs Reed ont un taux de rebond très élevé. Donc, certains rebonds seraient très utiles dans les logiciels.
Piotr Kula

4

Exactement, utilisez-le simplement comme interrupteur. Je suppose que lorsque la porte est ouverte ou fermée, le Pi veut le savoir via l'une de ses broches d'entrée. Le pi recherche-t-il un faible? Câblez ensuite l'interrupteur de la broche d'entrée à la masse et placez une résistance de rappel vers la ligne + 3,3 V. Lorsque l'interrupteur est ouvert, c'est-à-dire sans aimant présent, l'entrée sera à l'état logique haut. Lorsque l'aimant active l'interrupteur, la broche d'entrée est logiquement basse. La résistance de pull-up n'est pas critique, commencez par un 4k7Ohm (jaune, violet, rouge, X). Mesurez la broche avec interrupteur éteint, elle devrait être proche de 3,3V sinon essayez une résistance avec moins d'Ohm. disons 2k2. Ne descendez pas en dessous de 1k, cela consisterait à 3,3mA. Si vous recherchez un haut, utilisez les contacts normalement fermés du commutateur à lames. N'exécutez pas 3,3 V sur un commutateur externe. Un court-circuit pourrait tuer votre puce de régulateur Pi.


Merci d'avoir répondu, je pense que je me rapproche. J'apporte quelques modifications à ma question si vous voulez y jeter un œil.
Bmo

1

Votre diagramme gauche et milieu n'est pas bon du tout GPIO est court-circuité et ne peut rien faire.

Le diagramme de droite est correct si votre programme GPIO pin 18 recherche une entrée à monter pour passer à l'étape suivante. Cependant, nous ne connectons pas normalement un rail d'alimentation, le 3,3 V, directement à une entrée, nous le faisons normalement passer par une résistance de 2,2 k environ. Essayez le 4.7k et voyez si la broche monte. Je câblerais la résistance de la broche GPIO 18 au commutateur et ferais passer l'autre côté à la ligne d'alimentation 3,3 V. Je ne suis pas content d'avoir la ligne 3,3 V allant à la porte du garage sans résistance pour limiter le courant en cas de court-circuit dans votre câblage. Si la résistance de 4,7 k est suffisante pour tirer la broche vers le haut, je la diviserais dans le produit final avec 2,2 k de chaque côté du commutateur à l'extrémité Pi pour protéger l'entrée Pi et l'alimentation Pi contre les courts-circuits accidentels dans le câblage externe à l'interrupteur de porte de garage. La résistance dans votre circuit de droite serait appelée un pull down et ils ne sont généralement pas nécessaires. Vérifiez à nouveau si avec un voltmètre ou une sonde logique si l'entrée est normalement basse jusqu'à ce qu'elle soit élevée par l'interrupteur et assurez-vous qu'elle se rapproche de 3V. Je suis votre opposé, bon en matériel, je ne sais rien de la programmation, j'essaie d'apprendre un peu de Linux.


Merci encore. J'ai ajouté un schéma de ma configuration actuelle. Voulez-vous dire que je devrais déplacer l'alimentation 3,3 V du côté de la masse de la résistance? Je devrais être plus à l'aise avec mon testeur ...
Bmo

0

Retirez la résistance de 4,7 K de la masse. Ce n'est pas nécessaire. C'est juste une autre petite charge inutile sur l'alimentation. Votre circuit actuel fonctionnera tel quel, MAIS il serait préférable d'avoir une résistance en série du rail d'alimentation 3,3 V à chacun des commutateurs pour protéger l'alimentation au cas où l'un des commutateurs serait accidentellement court-circuité à la terre. Quelle résistance de taille? Essayez un 10k, si cela fonctionne, c'est-à-dire que vous avez> 3v sur la broche GPIO, super, sinon essayez un 4.7k ou un 2.2k ou même un 1k


0

Seul votre circuit de droite fonctionnera. Les réponses que vous avez obtenues ci-dessus sont probablement correctes (tenter de décrire un circuit avec des mots est déroutant, même pour un ingénieur électricien).

Je pense que cela donne trop d'options. Je recommande ce qui suit. http://elinux.org/RPi_GPIO_Interface_Circuits#Buttons_and_switches

Pour des raisons techniques liées aux interférences et à la sécurité, une traction vers Vcc avec un interrupteur à la terre est préférable, mais l'une ou l'autre fonctionnera. (Vous pouvez utiliser un interrupteur normalement ouvert ou normalement fermé).

Si vous voulez être super sûr, vous pouvez inclure une petite résistance en série avec le fil du GPIO. Cela n'est nécessaire que si vous connectez un commutateur à une broche configurée en sortie. Le Pi ne sera pas endommagé même si vous le faites, car il a une protection interne contre les surcharges, mais peut avoir un impact sur le fonctionnement des autres broches.

Les interrupteurs à lames PS rebondissent comme un enfant sur un trampoline. Vous aurez besoin d'une technique anti-rebond, que ce soit au niveau matériel ou logiciel.


-1

J'ai pu le faire fonctionner en suivant cet exemple qui utilise la tension de la broche et de la masse GPIO. J'ai sauté les trucs du Streamer car cela ne m'intéressait pas.

Tutoriel sur le commutateur Reed


1
Veuillez mettre un petit résumé du lien au cas où il tomberait.
Humain
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.