PCB "Touch" Button


10

Est-il possible d'utiliser un pad PCB comme bouton? Je pense à l'utiliser pour allumer un curcuit qui n'est censé être activé que lorsque l'utilisateur le tient entre ses mains.

Comme source d'inspiration, j'ai utilisé les pads utilisés sur les touches tactiles des claviers ou des calculatrices:

entrez la description de l'image ici

Je sais que le corps humain a une résistance assez élevée, alors quel serait un circuit approprié pour détecter l'entrée tactile? Matériel nu uniquement. Je ne veux pas utiliser de microcontrôleur ici.


6
Vous voulez dire un capteur tactile capacitif?
PlasmaHH

@PlasmaHH Cela pourrait être une autre possibilité, mais j'ai pensé à quelque chose comme amplifier le courant qui circule lors du pontage du pad ci-dessus avec votre doigt, le désactiver pour faire fonctionner un mosfet ou quelque chose
mxcd

1
Selon les exigences d'alimentation de votre conception, la détection capacitive peut être trop gourmande en énergie. Vous pouvez vous en sortir avec le 50Hz (probablement). Si vous touchez la porte d'un mos, vous allumez le mos. En outre, vous le cassez généralement, il doit donc être protégé d'une manière ou d'une autre, mais c'est un bon point de départ.
Vladimir Cravero

Réponses:


12

Pour des raisons de fiabilité, je n'opterais pas pour une conception à grille ouverte et je compterais sur le bruit à 50 Hz. Cela pourrait probablement fonctionner, mais votre idée d'utiliser des doigts entrelacés devrait fonctionner assez bien.

La résistance de la peau sèche se situe entre 1k et 100k, vous pouvez donc penser à un transistor NMOS (en trouver un avec protection ESD) et à un grand pull down par exemple de 1M ohm. Ensuite, vous pouvez utiliser le doigt comme résistance de rappel pour allumer le mosfet.

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Vous pouvez également utiliser un transistor bipolaire (ou Darlington), ils sont moins vulnérables aux défauts ESD, mais ne peuvent pas fournir un grand courant à la sortie si nécessaire, vous devrez donc tamponner la sortie.

Un capteur capacitif serait une solution alternative, mais nécessite un circuit plus compliqué.


2
J'envisagerais d'ajouter une résistance de 10k entre la cathode de D1 et la jonction entre R1 et le côté droit du capteur pour limiter le courant instantané dans la grille de M1 à partir d'une décharge statique et aider D1 à faire son travail en ralentissant généralement rapidement bords vers le bas. Si vous trouvez ce circuit particulièrement sujet au bruit, un condensateur de 100pF ou plus à travers R1 peut aider cela - vous devrez le construire et l'essayer!
stefandz

Bon point, je vais l'ajouter au schéma du circuit
Douwe66

12

Il est possible d'utiliser des plots de connexion résistifs comme vous le montrez, mais les plots capacitifs sont généralement meilleurs. Les plots résistifs laissent une connexion directe au circuit ouverte sur l'extérieur. Ils sont donc susceptibles d'être endommagés par les décharges électrostatiques et le bruit.

Les pads capacitifs sont une meilleure méthode, bien qu'ils nécessitent un peu plus de firmware pour détecter, au moins si vous voulez bien le faire. Notez que pour obtenir une immunité au bruit même rudimentaire, les pads résistifs nécessitent également un firmware. Connecter simplement deux pads à quelque chose de sensible, comme la porte d'un FET, est une mauvaise idée. Vous ne pourrez pas annuler le mode commun et les autres bruits ambiants.

Voici la disposition d'un petit tableau que j'ai fait récemment juste pour rechercher des boutons capacitifs:

Les coussinets sont de petits disques de 150 mils (3,8 mm) de diamètre et autrement entourés de terre sur la couche supérieure. Le microcontrôleur est un PIC 16LF1786. Elle et toutes les autres parties qui ne sont pas destinées à interagir directement avec l'utilisateur sont montées au bas de cette carte à deux couches.

Le PIC scanne continuellement les pads. Lorsqu'il détecte un changement dans le sens pressé / relâché d'un pad, il envoie un message sur le port série, met à jour les lumières en haut à droite et émet un bip sur une presse.

Pour les tests, je peux demander au PIC d'envoyer régulièrement ses valeurs internes pour la pression de chaque pad. Voici un tracé des cinq valeurs de sens brutes, en plus de l'état numérique global où quelque chose est pressé lorsque j'ai appuyé successivement sur chaque pad avec mon doigt:

Comme vous pouvez le voir, l'immunité au bruit est exceptionnelle. Même le signal le plus faible était bien supérieur à 300, tandis que le bruit était de ± 2 environ.

La trace magenta étiquetée «Pressé» montre le OU des états individuels des boutons pressés. Ses niveaux indiquent les seuils de presse et de libération. Il y a beaucoup de signal supplémentaire qui n'est pas utilisé dans ce cas. Ces seuils particuliers ont été modifiés pour pouvoir tolérer quelques couches de papier au-dessus des boutons.

Bien sûr, il y a une gestion intelligente des lignes de boutons et du traitement, même si je le dis moi-même, mais il est clair que les résultats sont réalisables avec un microcontrôleur assez modeste.

Je l'utilise dans un vrai produit où le même micro gère également un affichage de caractères. C'est un sous-système d'interface utilisateur de base que je prévois de réutiliser dans plusieurs futurs produits. Il s'interface avec le contrôleur système principal via un port série. Le contrôleur principal envoie des commandes pour écrire sur l'écran et reçoit des messages asynchrones chaque fois que l'état d'un bouton change.


Quelles sont les unités de l' Yaxe dans votre tracé? Les pads sont-ils simplement connectés aux broches, ou y a-t-il d'autres composants impliqués?
Dmitry Grigoryev

1
@Dmitry: L'axe des Y montre la mesure interne "combien le bouton est touché". Il est dérivé des valeurs A / D brutes, mais plusieurs lectures A / D sont impliquées et un traitement important est effectué sur ces lectures. Il n'y a eu aucune tentative de les conserver dans des unités particulières, car ces valeurs sont relatives les unes aux autres et à des seuils saisis arbitrairement. Très approximativement, ils sont en unités d'environ 800 uV différentiels entre la lecture. 350 signifie environ 280 mV, mais encore une fois, ce n'est pas vraiment aussi simple que cela.
Olin Lathrop du

Donc, vous conduisez les pads haut et bas et mesurez une sorte de taux de charge / décharge en utilisant l'ADC?
Dmitry Grigoryev

1
@Dmitry: Je conduis quelque chose d'autre haut et bas, puis je mesure le changement de pas dans les pads. Rien n'est basé sur le temps, laissant un temps de stabilisation suffisant pour prendre des lectures.
Olin Lathrop du
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.