Conversion de niveau de tension analogique (décalage de niveau)

10

J'ai un joystick qui met la tension analogique quelque part entre 1,5 V et 3,5 V.

Je veux transformer cette plage de tension pour contrôler un contrôleur de moteur qui prend une tension analogique entre 0V et 5V.

Comment puis-je changer de niveau et amplifier correctement?

jfenwick
la source
N'y a-t-il pas de microcontrôleur intermédiaire? Si c'est le cas, utilisez simplement un ADC.
sptrks
2
Je pense que vous voudrez peut-être préciser ce que vous voulez faire exactement ici. Essayez-vous de mettre à l'échelle une tension analogique de 1,5 V-3,5 V à 0 V-5 V? Essayez-vous de convertir une tension analogique en une sortie numérique?
bjthom
Un convertisseur boost pourrait vous aider à passer de 3,5 V à 5 V, mais pas à passer de 1,5 V à 0 V. Son gain est toujours supérieur ou égal à 1.
Telaclavo
1
@Telaclavo un boost n'est pas utile ici, car il est utilisé pour l'alimentation, mais nous supposons qu'il a une alimentation supérieure à 3,5 V.
clabacchio
1
Nous savons que ce sont des tensions analogiques. Quelle est votre offre?
clabacchio

Réponses:

12

Vous voulez un gain simple de 5/2 = 2,5 centré autour de 2,5 V. Cela est facile en supposant que vous disposez d'une alimentation de 5 V, comme à partir du contrôleur de moteur:

Il doit s'agir d'un ampli op de sortie rail à rail pouvant fonctionner sur une alimentation de 5 V, comme le MCP6041 et bien d'autres. R1 et R2 forment un diviseur de tension pour créer les 2,5 V autour desquels le signal d'entrée sera amplifié. C2 atténue le bruit de l'alimentation 5V encore plus que le DC pour créer un niveau DC silencieux et fluide. L'opamp est dans une configuration de gain positive classique, avec R4 et R3 définissant le gain. L'impédance de la source de 2,5 V produite par R1 et R2 s'ajoute effectivement à R3 à des fins de gain, mais c'est une petite contribution de 1,2 kΩ sur 100 kΩ. Le gain sera légèrement inférieur à 2,5.

Olin Lathrop
la source
1
+1. Plus précisément, sortie rail à rail (entrée rail à rail non requise ici)
Jason S
@Jason - Corrigé.
Olin Lathrop
Comment avez-vous choisi les valeurs pour R1 et R2?
abdullah kahraman
1
@abdullah: Puisque l'alimentation est de 5 V et qu'il s'agit de faire 2,5 V, une contrainte était R1 = R2. L'autre choix était quelle devrait être l'impédance de la source de 2,5 V, qui est R1 // R2. Plus bas c'est mieux, mais plus bas signifie aussi plus de courant. Je sentais que 100 kOhm était à peu près aussi élevé que je voulais aller avec R3 pour réduire le ramassage du bruit parasite. 1,2 kOhms semblait une impédance suffisamment faible par rapport à cela, et tire environ 1 mA de l'alimentation 5V, ce qui semblait raisonnable.
Olin Lathrop
1
@jfenwick: Je ne peux pas dire ce que vous pensez que ces équations signifient sans vos termes correctement définis, comme "Ad". En outre, il semble que vous ayez manqué le fait qu'il y ait une rétroaction négative dans ce circuit, qui règle le gain. Le gain en boucle ouverte de l'ampli-op est si important qu'il n'a pas d'importance pour le gain du circuit en boucle fermée. Je ne vois pas 5V et GND se réunir nulle part. Vous devrez être plus précis avec moins de mouvements de mains.
Olin Lathrop
6

C'est possible avec un seul ampli op. Ce que vous essayez de faire, c'est de changer de niveau et d' amplifier . Nous en faisions tout le temps. Ils sont utiles dans les robots où vous avez un capteur avec une petite plage de sortie de tension analogique et que vous souhaitez étendre le swing de tension afin d'obtenir la résolution maximale de votre ADC.

Nous les fabriquions généralement avec un décalage et un gain variables, afin de pouvoir les ajuster pour chaque capteur du robot.

Ampli opérationnel décalage de niveau variable et amplification

Une fois vos réglages corrects, vous pouvez toujours mesurer les résistances des pots et utiliser des résistances à valeur fixe à la place.

Ou vous pouvez calculer les valeurs directement:

Décalage et amplification du niveau de l'ampli opérationnel

Il existe une calculatrice en ligne pour vous aider à déterminer les valeurs des résistances.

Rocketmagnet
la source
Exact, mais il doit fournir ses tensions d'alimentation
clabacchio
@clabacchio - Vrai. Mais je pense que nous pouvons supposer qu'il y a du 5v disponible.
Rocketmagnet
4
Notez que cela s'inverse. Cela pourrait être un problème dans l'interface utilisateur si le joystick doit être déplacé à l'opposé de la direction intuitive pour augmenter la vitesse du moteur.
Olin Lathrop
Merci d'avoir souligné que cela s'appelle un changement de niveau.
jfenwick
4

Contrairement à ce que dit Cybergibbons, c'est une électronique analogique assez simple. Mais vous devez spécifier quelle alimentation vous avez l'intention d'utiliser pour votre circuit.

Vous avez besoin d'un circuit qui ramène votre signal de mode commun (1,5 V) à 0 et applique un gain de 5/2 = 2,5 au reste. Vous pouvez facilement le faire avec un décalage de niveau basé sur un amplificateur opérationnel avec un certain gain.

Une solution consiste à utiliser un soustracteur analogique avec une tension de référence placée à 1,5 V, une solution encore plus simple est juste un amplificateur non inverseur avec la référence au bon endroit.

Ce circuit fera le travail:

entrez la description de l'image ici

L'Opamp est juste la valeur par défaut dans le simulateur, vous pouvez en avoir besoin d'un autre, selon l'approvisionnement.

R1+R2R2

clabacchio
la source
C'est simple si vous dessinez simplement un schéma - la complication vient avec l'exigence que le signal doit passer de 0-5V et c'est une entrée à un contrôleur de moteur. 0,05 V ne va pas le couper - il a donc besoin d'un ampli op à alimentation séparée. Cela signifie que vous devez fournir un approvisionnement divisé, ce qui représente beaucoup d'efforts supplémentaires.
Cybergibbons
@Cybergibbons pas tellement, selon ce qu'il a; et, en utilisant des amplis opérationnels rail-à-rail, il pourrait aussi faire le travail sans lui.
clabacchio
Peut-être. On m'a appris que s'appuyer sur les performances rail à rail est un peu un non non pour le contrôle pour plusieurs raisons. Premièrement, le rail à rail n'est jamais vraiment rail à rail - les amplificateurs opérationnels les plus performants atteignent environ 10 mV, ce qui peut causer des problèmes. Deuxièmement, ils ne sont pas si linéaires dans cette région. Troisièmement, si vous chargez la sortie, les performances rail à rail deviennent bien pires (une commande de moteur peut charger la sortie - nous ne savons pas). Bien sûr, si le contrôleur de moteur a une zone morte, cela n'a pas d'importance.
Cybergibbons
@Cybergibbons bien, à propos de la dégradation des performances, vous avez peut-être raison (je ne sais pas) mais Analog Devices a des amplis opérationnels rail à rail qui vont à environ 2-5 mV (max) des rails. Mais ce problème n'existe pas s'il a une alimentation 12 V par exemple, donc cela dépend de la façon dont il veut l'alimenter. À propos de la capacité de conduite, il peut utiliser un autre ampli-op pour tamponner le signal, tant qu'il a la bonne alimentation.
clabacchio
@Cybergibbons - Est-il plus probable qu'une broche de sortie PWM du processeur atteigne 10 mV de la masse - même à un rapport cyclique de 0%?
MikeJ-UK