Est-ce que cela peut fonctionner comme une configuration d'entrée ADC et est-ce courant?


8

Est-ce que cela fonctionnerait? Je suis assez sûr en théorie que cela devrait, mais je ne le vois pas souvent ou pas du tout. En théorie, le diviseur de tension de 2: 1 à 1: 2 devrait donner 3,3 V à une extrémité et 1,6 V à l'autre extrémité du pot, donnant à l'ADC une large plage de travail. Et si le bouton est enfoncé, le R1 + RV agira comme un pullup max 20k, donc la ligne serait descendue à 0v, que l'ADC peut être codé pour reconnaître comme un événement unique, permettant à la fois à un bouton et à un pot d'exister sur la même broche d'entrée, ce qui permet à l'ADC de remplir les deux fonctions.

Une broche d'entrée est enregistrée, sans aucun changement de code significatif, car l'adc est déjà interrogé pour le pot.

schématique

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

Est-ce que cela fonctionnerait, et si oui, par curiosité, pourquoi n'est-ce pas plus populaire.


3
Cela fonctionnerait bien. Ajoutez peut-être un petit condensateur à travers le commutateur, pour contourner les pointes de balayage de pot et fournir un certain rebond lors de l'utilisation du commutateur.
Anindo Ghosh

Pas exactement la même chose, mais regardez ce schéma de circuit et essayez de trouver quelque chose qui vous semble familier: sainsmart.com/zen/documents/20-011-901/schematic.pdf
jippie

@jippie non, je connais les échelles résistives comme plusieurs boutons, c'est assez courant (commandes radio au volant de voiture, commandes en ligne pour ipod / iphone). C'est spécifiquement l'utilisation d'un pot et de boutons sur le même ADC que je demandais, je ne l'ai jamais vu.
Passerby

2
Vous sacrifiez une certaine résolution dans la lecture de la position du pot de cette façon. Cela peut être parfaitement acceptable, selon votre application et la nature du contrôle que l'utilisateur pense qu'il tourne.
RBerteig

1
Vous pouvez identifier un deuxième interrupteur tirant l'entrée vers VCC, tant qu'il n'y a aucune chance que les deux interrupteurs soient enfoncés simultanément. Décoder un réglage analogique et deux fermetures de commutateur mutuellement exclusives avec une seule entrée ADC n'est donc pas mauvais, et peut être une astuce utile dans un micro à faible nombre de broches. Pensez au sens de la position avec des interrupteurs de fin de course rigides à chaque extrémité. Ensuite, ils sont mécaniquement exclusifs et même adaptés au signal analogique.
RBerteig

Réponses:


6

Oui, cela devrait fonctionner même s'il y a des problèmes à surveiller.

Le problème délicat est que vous devez être prudent pour détecter et ignorer les transistions entre le niveau de commutateur 0 V et le niveau de pot. Certains d'entre eux vont ressembler à des niveaux de pot valides, vous devez donc prendre en compte plusieurs échantillons pour décider si ce qui semble être un niveau de pot est réel ou juste une tension intermédiaire tout en pivotant entre le commutateur et le pot. Gardez à l'esprit que les vrais commutateurs rebondissent, c'est donc plus délicat que vous ne l'imaginez probablement. Une chose que vous savez sur une tension de pot valide est qu'elle ne peut pas changer aussi vite. Cela devrait aider à éliminer les lectures intermédiaires.

Un autre problème est que vous ne pouvez pas lire le pot lorsque vous appuyez sur l'interrupteur. Il n'y a rien que vous puissiez faire avec cette configuration. Que ce soit important dépend du système et de la signification de la position du pot et d'un interrupteur enfoncé.

Je ne peux pas dire si cela se fait "souvent" ou non. Les intrants en pot en eux-mêmes sont inhabituels, mais bien sûr ils existent. Pour que ce schéma ait un sens, vous devez avoir un système qui nécessite à la fois un bouton-poussoir et un réglage continu de l'utilisateur, et où vous ne voulez vraiment pas dépenser la broche supplémentaire. Si c'est la différence entre s'insérer dans un micro à 28 broches ou devoir utiliser un micro à 44 broches, je le ferais probablement. S'il me reste d'autres broches, je ne le ferais pas car il vaut mieux garder la complexité faible. Des broches séparées pour le pot et le bouton vont être plus faciles, et donc moins susceptibles d'avoir des bugs, dans le firmware.


2

J'ai utilisé des ADC comme entrées sans problème, dans une topologie très similaire à la vôtre.

Je n'avais pas le pot, mais j'avais un diviseur à deux résistances pour réduire la tension d'entrée (c'était sur un ATxmega, qui a une entrée ADC max de 2/3 Vcc), et un interrupteur pour tirer l'entrée sur sol.

Je pense que ça marchera bien.

Une chose que vous devriez probablement avoir à l'esprit est que le bouton peut ne pas vous mettre entièrement à la terre. Selon la résistance du commutateur, vous pouvez toujours avoir quelques millivolts sur l'entrée, vous ne devez donc pas supposer que le bouton enfoncé entraîne une valeur ADC de 0, mais plutôt une valeur ADC de <~ 10 comptes, ou à peu près ( testez ça!).


J'ai vu l'ADC utilisé pour les commutateurs en caoutchouc conducteur, avec la justification que le logiciel pourrait alors compenser l'augmentation de la résistance due au vieillissement.
starblue

2

Toutes ces réponses et leurs commentaires sont bons et ajoutent beaucoup de perspicacité. J'essaie de voir laquelle mérite la prime, mais je voulais aussi ajouter cela.

J'ai trouvé une note d'application détaillée sur cette chose. Pas seulement des commutateurs, mais des commutateurs plus un pot sur la même entrée adc. Version PDF avec graphiques

entrez la description de l'image ici

L'article comprend des formules (et une feuille de calcul Excel 2007 pour automatiser les choses) sur la façon de sélectionner les résistances de polarisation et le pot, bien que l'exemple de code pour un microcontrôleur ne soit plus disponible.

La limitation de cette technique est que vous ne pouvez pas appuyer sur plus d'un bouton-poussoir à la fois. De plus, le microcontrôleur ne peut lire la position du potentiomètre que lorsque vous n'appuyez sur aucun autre bouton-poussoir. Cet exemple montre comment utiliser deux boutons-poussoirs, mais le nombre de boutons-poussoirs peut varier. Des plages d'entrée sont disponibles pour jusqu'à 10 boutons-poussoirs et un potentiomètre, qui partagent tous la même broche d'entrée (figure 2). Bien que les plages calculées ne se chevauchent pas et soient uniques, il est douteux que votre matériel ADC puisse distinguer ces bandes de manière fiable en toutes circonstances. Le choix de valeurs de résistance plus petites maintient ces bandes plus éloignées, créant une plus grande plage de garde.

L'utilisation de cette technique avec quatre boutons-poussoirs et un potentiomètre est tout à fait raisonnable. L'expérimentation de la feuille de calcul permet de déterminer rapidement les bonnes valeurs de résistance série pour chaque commutateur et sa plage de sortie.

Hackaday Comment Thread sur cette note d'application .

Plus d'un bouton dans la même broche est également une bonne question de ressources.


Un système embarqué que nous avons conçu utilise des tensions codées pour identifier la plupart de ses boutons, en suivant un exemple défini dans une conception de référence pour le SOC en son cœur. Beaucoup de clés, une broche GPIO. Fonctionne assez bien car tous les boutons sont physiquement séparés les uns des autres et il n'y a aucune raison pour qu'un utilisateur essaie d'en appuyer plus d'un à la fois.
RBerteig

1

Cela fonctionnera pour détecter la position d'un pot qui n'est pas connecté à la terre, ou avec d'autres sources analogiques dont vous savez qu'elles ne s'approcheront pas de la terre, à condition que cela ne vous dérange pas de perdre une résolution ADC.

Dans le cas plus général, de nombreuses entrées de capteurs analogiques seront référencées à la terre et peuvent aller à la terre dans certaines circonstances, ce schéma ne peut donc pas être utilisé. De plus, de nombreuses sources analogiques peuvent s'opposer à la mise à la terre - souvent en émettant de la fumée magique.

Ce circuit peut être utilisé si vous êtes vraiment à la recherche d'une entrée numérique supplémentaire et que vous êtes conscient des limites, mais je ne le recommanderais pas pour une utilisation générale.


1
Et c'est probablement la raison pour laquelle ce n'est pas si courant. Mais si vous avez un bouton et un interrupteur (cliquez sur la tige pour entrer?), Cela permettrait de lire les deux à partir d'une seule broche.
RBerteig

@RBerteig J'ai complètement oublié ces types de combo pots / commutateurs en posant cette question. C'est une application très appropriée.
Passerby

@PeterBennett lorsque vous dites que les entrées des capteurs analogiques peuvent aller à la terre ou que des sources analogiques s'opposent à la mise à la terre, pouvez-vous expliquer / expliquer cela? Dans mon cas spécifique, il s'agit d'une entrée adc MCU générale, qui ne devrait pas avoir de problème avec l'obtention d'une entrée référencée VCC ou Gnd directe.
Passerby

@Passerby: Si la sortie du capteur qui partage l'entrée ADC avec le bouton passe à la masse (ou à proximité), votre programme ne pourra pas distinguer entre une lecture de capteur faible et une pression sur un bouton, et ne détecter une pression sur un bouton lorsque la sortie du capteur analogique est faible. Si le capteur analogique a une sortie "totem pole" ou un autre étage de sortie à faible impédance, il peut laisser la magie s'échapper lorsque le bouton-poussoir tire la ligne vers le bas.
Peter Bennett

@PeterBennett donc ce n'est une préoccupation que si je partage cette entrée ADC entre le pot / bouton et un autre capteur? Si je ne fais que le combo port / bouton ci-dessus, cela ne devrait pas être un problème, non?
Passerby

1

Cela devrait fonctionner. Mais vous pourriez l'améliorer, c'est pourquoi je doute que ce soit courant.

  1. En supposant que vous disposez d'un ADC à plage complète (0 à 5 V), la réduction de R1 et R2 augmentera votre plage dynamique et donc la résolution de la position du potentiomètre. Bien sûr, vous ne pouvez pas réduire R2 à zéro ou vous perdez la netteté d'une activation du commutateur.

  2. Ce n'est pas aussi faible puissance qu'il pourrait l'être. Si vous pouvez vous permettre un condensateur en céramique, disons 10nF, pour vous connecter à travers le commutateur, vous pouvez facilement augmenter vos résistances d'un facteur 10 ou même 100, réduisant la consommation d'énergie en conséquence. Le condensateur contribuera également à la précision et à la répétabilité, en filtrant passe-bas la tension vue par l'ADC et en fournissant une source de tension à faible impédance. Et, enfin, il rebondira le commutateur (vous savez probablement que presque tous les commutateurs mécaniques présentent un rebond de contact, établissant et rompant rapidement le contact plusieurs fois lorsqu'ils sont actionnés une fois, nécessitant un rebond soit dans le logiciel soit dans le matériel). Comme indiqué précédemment, un tel condensateur est également important pour obtenir un comportement bien défini lorsque le potentiomètre est tourné, car cela peut produire des transitoires, au moins sous la forme d'une impédance élevée intermittente.

    Bien sûr, avec un tel condensateur, C * R sera votre constante de temps (donc quand vous voulez (1-e) ^ 3 précision à 0,1 s d'un relâchement du commutateur, vous feriez mieux de rester en dessous de la combinaison de 10 nF et 3 Méga). ohm...)

  3. Votre logiciel nécessite une certaine attention. Vous verrez des transitoires, à la fois du commutateur et du mouvement mécanique à l'intérieur du potentiomètre. Il n'est pas difficile de coder, mais plus compliqué que de simplement interroger un seul résultat de conversion ADC. Vous devrez au moins vérifier si la valeur que vous lisez est suffisamment stable sur plusieurs conversions pour supposer que vous n'êtes pas en transitoire.

  4. Vous pouvez inclure des composants inutiles: à quoi sert R1 (en supposant que votre plage d'entrée ADC va jusqu'au rail positif)?Si R1 est censé limiter la tension de sortie maximale pour s'adapter à votre gamme ADC, alors pourquoi le potentiomètre n'est-il pas alimenté par une tension de référence au niveau ou près du rail ADC positif? Cela nécessiterait plutôt une résistance de limitation de courant à la sortie du potentiomètre, mais ce serait mieux. Comme une telle tension d'alimentation analogique pourrait facilement être rendue beaucoup plus stable que la tension d'alimentation IC (que je suppose que votre batterie 5V doit symboliser), vous pouvez alors obtenir moins de bruit technique dans vos conversions ADC.

    Et enfin, même si R1 n'est pas nécessaire pour réduire la tension de sortie maximale, le même changement dans le circuit, s'il est combiné avec un passage à une alimentation analogique qui pourrait être aussi simple que la connexion à +5 V ailleurs, apporte l'avantage combiné de la ci-dessus et de mieux utiliser votre plage d'entrée ADC sans aucun composant supplémentaire.


1
Le point 4 est faux. R1 sert un objectif nécessaire, qui est de limiter le courant d'alimentation lorsque l'interrupteur est enfoncé et que le pot est à son réglage supérieur. Sans R1, le commutateur court-circuiterait l'alimentation lorsque le pot est au sommet.
Olin Lathrop du

Tu as raison! Je me suis trompé. Je ne sais pas encore comment récupérer le reste du point 4, mais oui, tout n'est pas correct tel qu'il est actuellement.
pyramides

Je pense avoir réussi à corriger l'erreur tout en offrant la même amélioration potentielle.
pyramides

J'ai annulé le downvote parce que vous avez corrigé l'erreur flagrante. Cependant, je ne suis toujours pas d'accord. Il est préférable de laisser le haut de R1 connecté à la même alimentation alimentant l'A / D car cela rend la mesure ratiométrique avec l'alimentation. Lorsque la chaîne diviseur A / N et la résistance utilisent les mêmes tensions de référence, les variations de cette tension s'annulent.
Olin Lathrop du

Merci. Avec une configuration ratiométrique, le +5 V est la tension de référence appropriée, et la suppression de R1 ne change rien à cela. Mais cela aide en profitant d'une gamme plus large de la configuration encore ratiométrique. Le seul inconvénient concevable est que R2 et Rv ont des coefficients de température très différents. Ensuite, le circuit d'origine annule l'effet si, et seulement si, le potentiomètre est réglé à exactement 50%. Mais l'effet est très faible, et, comme dit, cela, eh bien, la compensation ne fonctionne de toute façon que pour un potentiomètre.
pyramides

1

Je ne recommanderais pas le diviseur de tension pour une raison:

Lorsque vous connectez un appareil à haute impédance pour la mesure, il aura une résistance équivalente entre l'appareil et n'importe quelle résistance du circuit (équivalence parallèle), changeant la relation des résistances.

Par exemple, si vous configurez les résistances et le pot à 50-50%, lorsque vous connectez l'appareil, il aura un 49-51%. Il ne changera pas trop en raison de la haute impédance de l'ADC, mais vous perdrez la précision. Je veux dire, vous pouvez voir l'ADC comme une autre résistance qui changera la résistance équivalente.

schématique

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


Cela ne signifierait-il pas que toute utilisation d'un pot avec un adc aurait cette inexactitude inhérente?
Passerby

Non seulement à cause du pot, car l'ADC lui-même a une impédance et si vous le connectez au diviseur de voltaje, la relation changera car ce serait comme avoir une résistance parallèle à R2.
Chirry
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.