gestion entrée analogique négative

Bonjour,

Après plusieurs recherche sur le net et sur ce forum, je ne trouve pas de solution à mon problème.

Je souhaiterais connecter un joystick analogique à un Arduino Mega1280 pour un projet de Commande Numérique 3 axes (usinage).

Référence joystick : XDAL11331 de chez Schneider Electric.

Le Joystick sert à à piloter manuellement la tête de l’outil (fraiseuse) sur un plan XY dans le cas d’une prise de référentiel par exemple.

Le joystick s’alimente avec une tension comprise entre -24V…-12v / +12v…+24V. La tension de sortie pour chaque axe varie de -10v à +10v.

J’ai alimenté le joystick en 12V (alim ATX). La tension de sortie varie entre -5 et +5V.

Or l’Arduino ne peut pas interpréter un signal analogique négatif. Les entrée analogique acceptent un signal compris entre 0 et 5V.

Je cherche donc à recaler la plage -5…+5V sur une plage 0V…+5V (quitte à perdre en précision) mais sans succès jusqu'à présent..

Il y aurait il une âme charitable pour me montrer la voie ?

XDA... Analogue joystick controller.pdf (83.4 KB)

Jackmalone:
Le joystick s’alimente avec une tension comprise entre -24V…-12v / +12v…+24V. La tension de sortie pour chaque axe varie de -10v à +10v.

J’ai alimenté le joystick en 12V (alim ATX). La tension de sortie varie entre -5 et +5V.

...

Je cherche donc à recaler la plage -5…+5V sur une plage 0V…+5V (quitte à perdre en précision) mais sans succès jusqu'à présent..

Il y aurait il une âme charitable pour me montrer la voie ?

alimenté en 12V avec une alim ATX ou en -12V et +12V ?

en passif passer par une masse virtuelle et pont diviseur pour recaler ça en 0--->5V
en actif utiliser un AOP alimenté en diferentiel

Merci Artouste pour la reponse.

Je ne vois pas bien comment recaler une tension variant de -5 à +5V sur une plage 0V...+5V avec un pont diviseur de tension et une masse virtuelle.

Je joins à ce poste un schema de cablage envisagé avec mes connaissances en electronique bien limitées...

Penses tu que cela peut fonctionner? Sinon si tu veux m'expliquer plus en detail la methode avec le pont diviseur et la masse virtuelle, je suis preneur car ça m'a l'air bien plus simple!

cablage joystick.pdf (224 KB)

Montage avec un ampli op en montage additionneur non inverseur:

V1 = ton signal de -5V à +5V.
V2 = tension fixe de +5V (alim)
Donc en sortie Vs = (V1+V2) = (V1 + 5) compris entre 0V et 10V

Il reste à diviser ça par deux avec un pont diviseur résistif (prendre des résistances égales) :

pour obtenir
Vs2 = (V1 + 5) / 2 compris entre 0 et +5V

Merci pour l'explication! Avec l'aop sommât eut je vois comment ça marche..

J'en ai un qui traîne, je vais essayer.

Christian_R:
Montage avec un ampli op en montage additionneur non inverseur:

V1 = ton signal de -5V à +5V.
V2 = tension fixe de +5V (alim)
Donc en sortie Vs = (V1+V2) = (V1 + 5) compris entre 0V et 10V

Pas besoin de pont diviseur, il suffit de jouer sur le gain avec R1 et R2.

Il faut aussi que R0 (sur V2) soit supérieur de 1K par rapport à l'autre R0, de façon à compenser l'impédance de sortie du joystick (1Kohms). prendre 10K et 11K pour R0.

A partir de là, la sortie de l'ampli-op donne Vs = (V1 + V2) x (1 + (R2 / R1)) / 2. En gros, il suffit d'enlever R1 et mettre R2 à 5,6Kohms par exemple (valeur purement arbitraire, l'idéal : R2 = R0 / 2 pour compenser les courants de fuite. montage suiveur), et tu auras Vs = (V1 + V2) / 2. pour V2 = 5V, si V1 = -5, Vs = 0, et si V1 = +5, vs = +5. Au centre, Vs = 2,5V.

Pour être sûr que l'amplop sorte une tension de 0 à 5V, il vaut mieux l'alimenter en +/-12V, car la sortie d'un aop est limitée (de l'ordre de Valim - 2V). S'il est alimenté en 0 / 5V, ta sortie sera limitée entre 1,5V et 3,5V.

Je pense que le joystick sera connecté à une entrée analogique et dans ce cas la tension ne devra :
ni descendre au dessous de 0Volts .
ni dépasser la tension de réference qui par défaut est AVcc (relié directement à Vcc sur les cartes arduino).

L'inconnue est la valeur exacte de l'impédance de sortie du joystick, la précision des autres résistances peut aussi jouer dans la valeur exacte du gain.
Une vérification s'imposera avant de relier la sortie de l'ampli à la carte arduino.
Si les deux conditions (rail+ et rail-) ne sont pas remplies des réglages seront nécessaires.
Les réglages peuvent se faire en remplaçant une, ou des, résistance(s) fixe(s) par une résistance fixe + une résistance ajustable (potentiomètre dont on relie le curseur à une extrémité).

Exemple pour la compensation de l'impédance du joystick sur l'entrée V2 on peut remplacer la résistance de 11k par une 10k plus une résistance ajustable de 2,2k.
Conseil : toujours garder une résistance fixe en talon, d'une part pour avoir plus de finesse de réglage et d'autre part pour éviter les c****ries.

Rail plus :
Soit prévoir de régler le gain avec une résistance ajustable soit prévoir une marge de sécurité en fixant le gain a une valeur qui ne permette pas d'atteindre la tension de référence du convertisseur A/D.

Rail O volt
Chercher à avoir 0V en sortie en ajustant la résistance variable de 2,2k quand le joystick sort la tension la plus négative.

Remarque : il se peut que les réglages rail-/rail+ se "mordent la queue" et qu'il faille procéder par réglages successifs.

Je suis en train de m'arracher les cheveux sur un truc tout simple!

Suivant vos conseils, j'ai câblé un ampli op en montage additionneur. Mais devant le resultat bizarre obtenu, j'ai repris les elements à la base, en commençant par un pont diviseur de tension tout bete.

Avec 2 resistances identiques d'environ 15kohm, je devrais diviser ma tension par 2. Hors j'ai un rapport de 5,5! Pour un tension de 5v en entrée, j'obtiens 0,93V en sortie....

Lors d'un autre essai avec 2 resistances de 10KOhms, j'obtiens un rapport de 4,3...

Pourquoi n'ai je pas un rapport de 2 ?? J'ai meme soudé mes resistances ensemble pour verifier que ça ne vient pas de la platine d'essai mais j'obtiens le meme resultat. Est ce que cela peut provenir des resistances (dessoudées d'un autre montage elec)?

Ci joint un schemas de mon montage tout simple...

Pont diviseur.pdf (129 KB)

c'est peut être bête, mais avec un branchement via une diode quand tu es sur le positif, tu pourrais directement brancher sur une entrée de l'arduino, et quand le courant est négatif, une diode en sens inverse, puis un photocoupleur analogique branché d'un côté sur le -5V du joystick et la masse et de l'autre sur le 5V de l'arduino et une deuxième entrée analogique.

ce n'est peut être pas très clair mais ça donnerait :

diode passante quand positif ---- sortie joystick ---- diode passante quand négatif
| |
entrée de l'arduino +5V arduino ---- photocoupleur ---- seconde entrée sur l'arduino
|
masse de l'alim ATX

ça consomme deux fois plus d'entrées analogiques, mais l'avantage c'est que tu n'as pas de risque qu'en position centrale, avec l'incertitude des composants électroniques due aux conditions extérieures, la machine se mette à bouger toute seule (j'ai travaillé sur CN et j'avoue que ça me ferait assez peur :fearful:)

Ça semble pouvoir fonctionner ( je n'ai pas assez d'expérience dans ce domaine pour le confirmer). En fait ça ressemble au tout premier montage que j'ai posté dans ce sujet (avec un aop inverseur à la place de l'optocoupleur). Mais on m'a plutôt conseillé de passer par un aop additionneur.

Bref dans tous les cas je vais avoir besoin d'un pont diviseur de tension car le joystick délivre +/-10v au lieu de +/- 5v comme dit dans mon premier post. Il faut que je divise tout ça par 2.

Et j'ai un problème avec ce pont diviseur (la base quand même!). Mon problème est expliqué 2 postes plus haut et je suis toujours en galère avec ça...

Jackmalone:
Avec 2 résistances identiques d'environ 15 kohm, je devrais diviser ma tension par 2. Hors j'ai un rapport de 5,5!

Un petit coup d'Ohmmètre sur chacune des résistances pour vérifier que ce sont les mêmes ?
Et une mesure de tension aux bornes de chacune d'entre elles devrait vite clarifier les choses.

J'ai bien vérifié les résistances avec un ohm mètre. Ce sont les mêmes a la virgule près.

La tension aux bornes de chacune est identique (ça au moins c'est logique). Par contre elle vaut 0,93v. Leur somme ne vaut pas la tension d'alimentation totale qui est 5,1V.

C'est à n'y rien comprendre...

Bonsoir,

Question peut être stupide mais as tu pensé à relier la masse de ton alimentation ATX avec celle de la platine arduino, parce que tes mesures ressemble drôlement à un problème de référence. De plus vu qu'un joystick n'est qu'un ensemble de potentiomètres, que te retourne t'il comme tensions si tu le branche seulement entre le +12V et le 0V ? Cela t'éviterais peut être de t'encombrer de tensions négatives, de perdre en précision et de rajouter des montages autour (sommateur avec décalage d'offset et plein d'autre sources de problèmes) !!!

Bon courage

Ça y est, je crois que j'ai compris!

Ça vient de mon multimètre (Fluke 113) qui possède une impédance d'entree de 3kohm..

Du coup, cela revient à un pont diviseur de tension avec une charge de 3kohm d'où mes résultats farfelus.

Par contre, je ne vois pas dans la notice de l'appareil comment s'affranchir de cette impédance d'entrée. Du coup comment avoir confiance dans les mesures?

Je pense qu'il va falloir acheter un autre multimètre.
Tu as des multimètres manuels avec au minimum 1 Megohms de résistance d'entrée à moins de 10 € . Entre 10 et 25 € tu as de très bon produits.
Conseil prends en un qui supporte 220V en position ohmmètre. On ne rigole pas, les con**ries il n'y a pas que les autres qui en font, il y a du vécu dans mes propos.
Avec un multi manuel tu es obligé de choisir le calibre de mesure mais au moins tu sais ce que tu fait.

Un voltmètre à 3kohms d'impédance d'entrée je n'y croyais pas, j'ai du vérifier parce que même les antiques voltmètres a galvanomètre présentaient une impédance plus élevée.
Fluke est une boite sérieuse cet appareil ne peut être que pour un usage très particulier. Mais lequel ?

Bonjour

3kOhm effectivement sur la notice pour la fonction 'Vcheck'
Ce multimetre ne parait pas du tout adapté pour de mesures DC en basse tension sur des montages présentant des résistances de plusieurs kOhm)
Disons que c'est un excellent appareil (mesures efficaces vraies) 'électricien' et pas 'electronicien'.

-Pour moins charger le circuit sur lequel on veut faire les mesures (et si l'impédance d'entrée du Fluke 113 est à peu prés constante) mettre systématiquement une résistance de 27 kOhm en série avec le multimetre et multiplier la 'mesure' par 10.... ça repoussera un peu le probleme !!

-changer de multimetre ou investir dans un petit multimetre de supermarché à 10€ pour les mesures de tension continues (et de courant continu) que le Fluke113 ne peut faire.