Lire la tension positive et négative dans Arduino [fermé]

11

C'est une longue histoire, mais j'ai démonté une voiture RC et j'ai voulu utiliser l'Arduino analogRead()pour obtenir les valeurs de mes moteurs et de ma direction. J'ai mesuré avec mon multimètre que la tension dans ma voiture télécommandée va de -6v à 6v.

Cependant, l'Arduino ne prend en charge que la lecture de 0v à 5v maximum. Existe-t-il un moyen de convertir les -6v et + 6v en 0v et 5v? J'ai entendu dire que cela pouvait être fait en utilisant un ampli op. Certaines personnes m'ont également dit d'utiliser un diviseur de tension. En d'autres termes, si je ne contrôlais pas la voiture RC, l'Arduino devrait voir 2,5 volts.

Quoi qu'il en soit, je ne sais pas exactement comment je procéderais. Quelqu'un peut-il me recommander un ampli opérationnel approprié avec un circuit pour ce scénario spécifique?

OU, si possible, quelqu'un peut-il me montrer comment lire la tension négative et positive en utilisant deux broches Arduino? Par exemple, s'il y a -6v donné, alors la broche analogique 0 retournerait 1023. S'il y a 0v donné, alors les deux broches analogiques 0 et 1 diraient 0. Et s'il y a + 6v donné, alors la broche analogique 1 retournerait 1023 Comment puis-je faire un circuit qui fonctionnera comme ça?

J'apprécie si vous avez un schéma de circuit pour cela. Merci!

solutionhacker
la source
1
Lorsque vous dites que le signal de sortie de la voiture RC va de +6 à -6 Volts, à quoi cette lecture se réfère-t-elle? À quel point appliquez-vous la sonde de masse du multimètre?
Anindo Ghosh
@AnindoGhosh Je viens de prendre les deux fils du multimètre et j'ai touché une sonde à chaque fil du moteur.
solutionhacker
2
Voter pour clore comme prémisse même de cette question est fondamentalement erroné. Ce qui doit être lu n'est pas analogique; au mieux, il pourrait être numérique à largeur d'impulsion, mais il n'y a vraiment aucun intérêt à utiliser un Arduino pour lire un système RC hérité brut quand vous pouvez si facilement en créer un numérique moderne en utilisant des modules de type nRF24L01 à 1 $.
Chris Stratton
Bienvenue à EE.SE! Cela semble être une question d'ingénierie inverse, de modification ou de réparation. Veuillez noter que ces questions doivent impliquer des étapes de dépannage spécifiques et démontrer une bonne compréhension de la conception sous-jacente de l'appareil en cours de discussion, afin que vous puissiez poser des questions spécifiques et ciblées auxquelles vous pouvez répondre de manière concise. Sinon, la question est beaucoup trop large. Plus d'informations peuvent être trouvées ici: demande comment réparer un circuit défectueux sur le sujet? .
Dave Tweed

Réponses:

18

Trois résistances standard font le travail, à condition que le moteur voit -6V référencé à la masse et non référencé à l'autre borne du moteur.

schématique

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

Lors de la variation de Vm de -6 à 6V, la sortie variera de 0 à 4,9V.

jippie
la source
@AnindoGhosh oh et je ne serais pas surpris si la tension du moteur est mesurée à travers le moteur plutôt que référencée à la terre, ce qui vous laisse aussi une bonne réponse. De plus, je ne tenais pas compte de PWM ...
jippie
Comment puis-je calculer les valeurs de résistance, étant donné une tension d'entrée connue? Par exemple, j'ai une situation similaire, mais mon signal d'entrée est de -2 à +2 volts. C'est une topologie intéressante, mais j'aimerais comprendre la théorie qui la sous-tend pour que je puisse la modifier, pas seulement la copier.
robm
@robm J'ai d'abord établi les rapports pour les résistances, puis utilisé certains calculs dans un grand tableur pour sélectionner les résistances correspondantes les plus proches. C'était l'utilisation des formules dans la feuille de calcul pourquoi je n'ai pas élaboré sur la méthode exacte que je devrais probablement avoir. Je suppose que cela vaut une question en soi: méthode standard pour choisir les valeurs de résistance pour ce cas d'utilisation spécifique.
jippie
Je suppose que vous avez analysé le circuit et sélectionné les valeurs quelque chose comme ça? electronics.stackexchange.com/a/252473/36877 Je ne comprends toujours pas comment on analyse le circuit lorsque l'entrée est 6V pour obtenir 4.887V comme sortie.
genericpurpleturtle
4

Lorsque le moteur est entraîné à partir d'un pont en H complet et que vous souhaitez que votre Arduino ait la même référence au sol que le reste de la voiture, vous pouvez utiliser les éléments suivants:

schématique

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

Les deux sorties vont de 0 à 2V4 et vous devez régler la tension de référence interne d'Arduino à 2V56. En reliant les deux sorties à leur propre entrée analogique, vous pouvez calculer la tension du moteur en les soustrayant. Les condensateurs sont là pour faire la moyenne des signaux PWM afin qu'ils puissent être mesurés par l'ADC.

jippie
la source
-1

Voici une solution sans ampli-op. Vous aurez besoin d'une broche d'entrée supplémentaire à l'Arduino pour celui-ci.

Si la broche d'entrée indique 0, la tension de l'ADC est positive. Sinon, la tension est négative.

En raison de la chute de tension aux bornes du pont redresseur, vous avez résolu le problème de l'abaissement de 6 V à 5 V. Vous aurez maintenant 6 - 2 * 0,7 = 4,6 V maximum. D5 est facultatif et n'est là que pour des raisons de sécurité.

L'inconvénient est que la tension doit être supérieure à + 1,4V ou inférieure à -1,4V pour être mesurée.

schématique

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

Cornelius
la source
2
Vous devrez également isoler la masse de l'Arduino du circuit RC. Cela signifie qu'ils auront besoin d'alimentations séparées.
DoxyLover