Lecture de mesure différente selon ordinateur / moniteur série

Bonjour à tous et toutes,

J'ai récemment monté un controlleur pH pour des besoins spécifiques liés à mon job. J'ai fait l'ensemble du code et l'ai téléversé à partir de mon PC.

tout fonctionne bien et j'ai même réussi à récupérer mes valeurs de pH en ligne grâce à puTTY.

Je veux pouvoir effectuer des mesures sur une longue période de temps, je en peux donc pas laisser mon PC à côté du montage puisque je dois travailler (et oui!), j'ai donc prix un autre PC qui trainait, ait installé le logiciel arduino et les drivers puis putty.

J'arrive bien à communiquer en série avec l'arduino, mais les valeurs de pH qui remontent sont totalement fausse et différentes de ce que je pouvais avoir avec mon premier PC. De fait, les réponses du montage sont totalement fausses.

Je ne comprends pas :

Ca fonctionne en mode "autonome" c-a-d pluggé sur une prise de courant et sans ordi
Ca marche avec mon ordi
Des que je plug l'autre ordinateur ça se met à faire n'importe quoi...

Pour le moment la seule différence que je note c'est le numéro du port COM utilisé (4 sur l'ordi avec lequel ça fonctionne et 3 sur l'autre...)

Pourriez-vous m'aiguiller vers une solution probable ?

En vous remerciant par avance,

EDIT : Je précise que j'utilise la fonction millis() dans mon code, au cas où cela puisse jouer d'un PC à l'autre je ne sais pas comment elle fonctionne exactement..

Bonjour,

Ce serait étonnant que les valeurs transmises dépendent du port utilisé.
Par contre ce qui peut être différents entre deux ordinateurs c'est l'alimentation par le port USB.
Mesure la tension d'alimentation de ta carte. Comment est alimenté le capteur?

Comment mesurer la tension aux bornes de ma carte ? J'ai un multimètre à dispo mais je ne sais pas où placer les bornes ?

La sonde pH est reliée à un ampli Atlas Scientific (EZO™ pH Circuit | Atlas Scientific) qui est alimenté par le port 5V de l'arduino.

Si je comprends bien, les tensions de sorties des ports USB peuvent varier d'un PC à l'autre ? C'est fou ça non ?

Entre les pins GND et 5V

Oui les tensions peuvent varier 5% maximum suivant la spécif, mais la sortie usb peut avoir un problème.
Il y a aussi l'intensité max qui peut varier, en standard c'est 500mA, mais sur certains ordinateurs les sorties USB peuvent fournir beaucoup plus.

bonjour
si tu utilise le convertisseur AD de l'arduino , en standard la tension de reference est l'alim 5V.
celle ci peut varier selon le mode d'alimentation.
quelles valeurs au voltmetre entre les pins 5V et GND sur le connecteur shield (rail power) de l'arduino ?

Re et merci pour vos réponses,

Du coup je viens de tester j'ai entre 4.92 et 5V dans tous les cas de figures (sur secteurs, et sur les deux PC).

Je viens de penser à quelquechose qui pourrait expliquer une partie du problème : Lors de la calibration de ma sonde, je pensais que les valeurs étaient stockées sur l'ampli ATLAS mais au final ce sont des valeurs dans les librairies de l'ordinateur qui sont modifiées non ? Ceci expliquerai les différences de valeurs observées entre les deux PC.

Par contre ca ne m'aide toujours pas à comprendre pourquoi mon code est mal interprété lorsque branché au deuxième PC...

Je donne un exemple concret : Le module sert à ajuster le PC autour de 6. Lorsque le pH du milieu tombe en dessous de 6, une agitation et une pompe se mettent en marche pour ajouter ma base. Sur secteur ou avec le premier PC, tout fonctionne très bien. Dans le second cas, la valeur indiquée dans le moniteur est bien en dessous de 6 mais la pompe ne se met pas en marche et seule l'agitation fonctionne, et de manière totalement désordonnée par rapport à mon code.

Je continue mes investigations mais je peine vraiment à comprendre ce qu'il se passe ...

merci par avance pour vos réponses

Ton ampli ATLAS est connecté ou? A l'arduino ou au PC?

A lire ce que tu écris, ça sent le soucis d'alimentation.

La source secteur marche bien, tout comme ton ordinateur principal.

Par contre ca ne marche plus avec l'ordinateur qui "traînait".

J'en déduis que celui qui traînait soit être plus vieux que le principal.
Les nouvelles normes USB permettent un ampérage plus important que l'ancienne limite à 500mA (dont l'ancien pc soit "souffrir")

Si ton montage flirte avec ces limites tu dois avoir une chute de tension qui expliquerait les disfonctionnements.

J'ai déjà vu un PC avec une tension USB hors norme --> 4,3V !

Je n'ai pas bien vu si tu utlises la conversion analogique /digitale mais le réglage de base des fonctions arduino à savoir référence au Vcc est une énorme connerie puisqu'on ne connaît pas précisément la valeur de la tension Vcc. On perd toute portabilité.

Sans parler de la carte nano (elle n'est pas Arduino mais Gravitech) où il y a une diode shottky en série sur avec l'alim provenant de l'USB.
Donc Vcc autour de 4,5/4,6 V mais surtout imprécis.
La diode shottky c'est trompeur : à faible courant elle a un Vseuil très faible mais au delà du seuil elle a aussi une pente beaucoup moins raide qu'une diode normale ce qui fait que quand le courant augmente les courbes se croisent et c'est la shottky qui devient pire que la diode classique --> méfiance surtout avec les shottky de faible puissance.

Pour l'ADC l'idéal est d'utiliser le mode référence externe et une vraie référence de tension.
Une solution intermédiaire est d'utiliser le régul 3,3V déjà intégré à la carte.

kamill:
Ton ampli ATLAS est connecté ou? A l'arduino ou au PC?

relié et alimenté via l'arduino (par la broche 5V)

Jambe:
J'en déduis que celui qui traînait soit être plus vieux que le principal.
Les nouvelles normes USB permettent un ampérage plus important que l'ancienne limite à 500mA (dont l'ancien pc soit "souffrir")

Du tout, le PC qui "trainait" est plus récent que celui que j'utilise en routine. En plus j'ai bien mesuré les tensions avec les 3 PC et c'est globalement identique pour chaque..

J'ai refait plusieurs tests, rien à faire àa ne fonctionne toujours pas avec le dernier PC utilisé ... je comprends rien ^^

c'est globalement identique pour chaque

C'est "globalement" littéraire mais n'est pas "globalement" technique :grin:

Il eu été préférable de donner les valeurs exactement mesurées.

sonde dans un verre d'eau (PH neutre) avec ce PC est ce que la mesure est :

  • stable mais décalée
  • instable
    la mesure de PH est très sensible aux perturbations (qq mV), ce PC a peut être un périphérique qui perturbe la mesure (souris sans fil, Bluetooth, ...)

68tjs:
C'est "globalement" littéraire mais n'est pas "globalement" technique :grin:

Il eu été préférable de donner les valeurs exactement mesurées.

OK je vous donne les valeurs exactes en fin d'après midi j'ai pas mal de pain sur la planche tout de suite !

rjnc38:
sonde dans un verre d'eau (PH neutre) avec ce PC est ce que la mesure est :

  • stable mais décalée
  • instable
    la mesure de PH est très sensible aux perturbations (qq mV), ce PC a peut être un périphérique qui perturbe la mesure (souris sans fil, Bluetooth, ...)

Je ne peux pas arrêter la manip tout de suite (le système autonome est lancé pour une semaine de culture en fermentation) mais je teste ça dès que je peux. Dans tous les cas quand je change de PC et que je regarde le moniteur série du PC où ça ne fonctionne pas, j'ai une valeur décalée par rapport à la réalité d'environ 1 unité pH et qui oscille beaucoup plus qu'avec le reste. Au bout d'un certain temps, la valeur donnée est totalement erronnée et part en vrille jusqu'à pH = 14 ...

Je viens de tout relire et je pense mettre fait avoir par le terme ampli ATLAS et j'ai tout de suite pensé au convertisseur analogique digital(et peut-être que je ne suis pas le seul).

D'après la datasheet ce n'est pas un ampli.
C'est "une chose assez intelligente" qui communique soit en I2C soit par l'UART.

Maintenant je ne vois pas plus trop ce que l'alim vient faire sauf à être vraiment bruitée.
Comme "la chose" communique avec la carte arduino de façon numérique rien n'empêche de lui attribuer une alim "personnelle" avec un chargeur 220V/5V USB par exemple et de voir ce que cela donne.
Une autre solution est de prendre un chargeur 9V pour alimenter la carte arduino, et "la chose intelligente" sur le 5V de la carte arduino.
Ces manips croisées devraient donner des pistes.

je pensais que les valeurs étaient stockées sur l'ampli ATLAS mais au final ce sont des valeurs dans les librairies de l'ordinateur qui sont modifiées non ?

On ne pense pas que : on vérifie en ouvrant la bibliothèque.
Donc tu regarde dans les fichiers de la bibliothèque ce qui est fait.
Au passage ce ne serait peut-être pas inutile de donner un lien vers cette bibliothèque.

Et aussi nous dire si pour communiquer tu utilise l'I2C ou l'UART.

Et puis lire ceci : http://forum.arduino.cc/index.php?topic=324322.0 il y a des conseils pour obtenir des réponses efficaces en évitant de perdre du temps.