Comment puis-je augmenter le nombre de broches analogiques (entrée) à ma disposition?

26

Je sais déjà comment étendre le nombre de broches numériques sur un Arduino à l'aide d'un multiplexeur.

Je souhaite augmenter le nombre de canaux d'entrée analogiques dont je dispose. Une solution consiste à ajouter un autre Arduino comme esclave.

Comment augmenter le nombre de canaux d'entrée analogiques? (Je suppose que certains MUXing et ADC sont impliqués). S'il est trop compliqué d'écrire une réponse, un aperçu général du circuit / code conviendrait également.

Je suis également ouvert aux suggestions de blindage, bien que je préfère qu'il y ait une solution matérielle pas trop difficile.

Manishearth
la source
Article connexe electronics.stackexchange.com/a/62500/7036
Nick Alexeev

Réponses:

32

Si vous connaissez déjà les puces multiplexeurs numériques, bonne nouvelle! Ils peuvent également être utilisés pour des signaux analogiques.

http://playground.arduino.cc/Learning/4051

Le principe de base est exactement comme avec le multiplexage de signaux numériques. Vous utilisez la puce 4051 comme «changeur de voie» et lisez le signal de la voie sur laquelle vous dites à la puce de basculer. le 4051 utilise 3 broches numériques et 1 broche analogique (ou numérique) supplémentaire sur l'arduino pour créer jusqu'à 8 voies d'entrée. Certains multiplexeurs sont chaînables, vous pouvez donc ajouter assez facilement 8 signaux supplémentaires sans avoir à les éloigner de l'arduino lui-même.

C'est exactement comme la technique que vous connaissez déjà pour les signaux numériques, connectez simplement le canal que vous lisez à une broche analogique au lieu d'une broche numérique, puis parcourez les états binaires et lisez les valeurs analogiques.

J'ai fait un gif animé pour vous.

entrez la description de l'image ici

Steve Cooley
la source
3
Bien que le lien réponde à la question, pourriez-vous élaborer un peu? Écrivez sur le circuit en bref? (Les réponses de lien uniquement sont déconseillées sur le réseau)
Manishearth
D'accord. Réponse développée.
Steve Cooley
3
Une précision, le 4051 que vous mentionnez est un multiplexeur analogique et non un multiplexeur numérique, je préciserais dans votre réponse car il existe certainement des multiplexeurs numériques qui ne peuvent pas accomplir cela car leurs pilotes de sortie et d'entrée ne sont pas conçus pour une réponse linéaire. Peut-être mérite-t-il une note supplémentaire que le chaînage de mux analogiques peut avoir un impact sur le signal en fonction des caractéristiques du mux
naven87
1
Il convient de noter que les multiplexeurs analogiques ne sont pas triviaux à sélectionner, le concepteur doit tenir compte de la variation de tension (la plupart ne fonctionnent que dans la plage d'alimentation, comme les amplificateurs opérationnels), de la bande passante, de la résistance ON, de la diaphonie, etc., etc., la variation de tension étant le plus grand potentiel montrer le bouchon.
Monsieur Mystère
Je crois que vous pouvez également utiliser une broche numérique pour alimenter un capteur, il vous suffit donc d'activer une broche numérique par rapport au sens VCC et de partager le même analogique.
Ciasto piekarz
10

Il peut être important de se rappeler que la puce ATmega de l'Arduino elle-même utilise un MUX analogique. Les puces basées sur Uno (ATmega328) n'ont qu'un seul ADC. Les 6 entrées analogiques sont en fait un MUX qui se connecte à ce seul ADC.

C'est pourquoi vous ne pouvez lire qu'une seule entrée analogique à la fois.

Lors de l'extension des entrées analogiques, il peut être nécessaire de considérer combien de temps il faut pour faire tout ce MUXing et si oui ou non des ADC externes supplémentaires sont nécessaires dans votre application.

baldengineer
la source
1

Considérez ceci: ajoutez ATtiny 85 avec une communication série avec l'Arduino, il utilise 2 broches pour Rx, Tx, et vous avez 3 broches supplémentaires qui peuvent être utilisées comme analogiques. De cette façon, vous pouvez développer votre propre protocole, ATtiny peut traiter l'algorithme et envoyer les informations traitées à Arduino, il est également très bon marché, je l'ai essayé moi-même, c'est une belle architecture, je pense.

Bonne journée

Avi
la source