Aller au contenu

PH mètre DIY


Messages recommandés

  • Réponses 187
  • Created
  • Dernière réponse

Quand tes doigts ne pourront plus bouger tant la douleur des brûlures du fer à souder seront importantes, quand un liquide gris argenté s'écoulera de tes poumons à force d'avoir inhaler des vapeurs de soudure, quand tes yeux à force fixer les composants ne pourront plus focaliser au delà de 50cm... alors tu comprendras jeune padawan.

Heu on en est pas là...

Je passe a tout casser 5h a faire de la soudure dans l'année...

Je passe plutot 19h par jour devant un ecran de PC, et là, je te rejoins sur le temps à faire la focale :)

Lien vers le commentaire
Partager sur d’autres sites

Les photos page 9 ne te suffisent pas pour s'y retrouver ?

 

Là, je n'ai pas KiCad pour vérifier ce que je peux sortir d'autre en PDF. Je regarderais çà d'ici demain.

En fait je n'arrive pas a voir les caracteristiques des resistances....

histoire de savoir quoi commander/recuperer

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois plus tard...

Bonjour

 

Remarque suite aux tests in-situ :

 

L'interface est très sensible aux parasites qui peuvent exister dans l'eau du bac. La mesure dans un récipient est très stable, mais dès que l'on plonge la sonde dans le bac, les valeurs deviennent très fluctuantes et dépendent notamment des moteurs de pompes en action ou non.

 

La moyenne (sur 800 acquisitions) devient même variable en fonction.

 

Je conseille également d'effectuer les étalonnages avec le volume étalon raccordé électriquement au bac.

 

Je recherche une solution de remplacement.

Probablement à partir du schéma 8 trouvé dans la fiche technique du LMC6042.

 

A suivre

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois plus tard...

Bonsoir et bravo Bubule.

 

Je vais me servir de ton schéma pour ma 2éme mesures PH du bac. Pour le RAC comme je t'ai dit j'ai commandé la petite carte chez Athlas Electronic, quand je dit petite c'est vraiment minuscule, 1 ongle et demi en gros :). Elle à l'air de bien fonctionner.

 

En ce qui concerne les sondes j'ai pas eue de souci avec celle a 20€ pour le moment. Même après 4 mois sans étalonnage cela n'avait pas vraiment bougé. Pour le moment elle est connecté sur un appareil de mesure Hanna Grocheck. De plus elle est connecté dans le refuge donc éclairé.

 

En tout cas je me bas avec la concaténation des String dans l'arduino, pour envoyer mes ligne à l'afficheur, cela m'enerve il plante de temps en temps.

 

Une petite question en passant d'un autre sujet que le PH, tu utilise quoi pour la mesure de Température, car j'ai un LM 35 mais je trouve que l'arduino oscille bien de trop en attaquant directement la mesure sur sa broche analogique, alors que la mesures de l'entrée au multimètre ne bouge pas. Cela rejoint le post PH quand même puisqu'il faut que j'envoie la température dans la carte PH pour étalonner la sonde.

 

Merci en tout cas pour ton schéma, je l'aurais vu 3 heures plutôt je courrais acheter ce qu'il me manquait :).

 

Voila une image de la carte Atlas, mais elle n'a pas le mérite d'avoir été conçu par moi. Un peu feignant sur les bort ;)

sdc12513.jpg

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

Tu rencontres un phénomène que j’avais également constaté sur l’Arduino : Les mesures oscillent.

Pourtant, le signal 0/5V semble stable (vérifié à l’oscilloscope). Je pense que ce sont des fluctuations de tensions internes à la carte.

La solution est simple : Il faut effectuer une moyenne des mesures sur une période de quelques centaines de mesures (inférieur à 1 seconde).

 

Voici le code que j’ai créé pour gérer et stabiliser la variable pH

En déclaration des variables
  int SondePH;        // Variables contenant la valeur donnée par l'interface pH (Broche entrée Analogique 0 (pin0))
  long totalpH = 0;
  int comptpH = 0;
  int moyennepH = 0;
  double pH = 8.5;    // Contient la mesure de pH après conversion de l'entrée sonde pH

Dans le loop
// Calcul moyenne de la variable pH 
  totalpH = totalpH + SondePH;       // Additionne la valeur à chaque cycle
      comptpH++;                     // Compte le nombre de cycles
     if(comptpH == 300){             // Dès que la qté de cycle est atteinte
      moyennepH = totalpH / comptpH; // Calcul la moyenne 
      totalpH = SondePH;             // Remet à zéro le compteur
      comptpH = 1;
         }  
// Conversion pH
   //  pH = moyennepH / 73.07;       // converti la variable (Gain pour pH 0 à 14)
     pH = 4 + moyennepH / 169.00;    // converti la variable (Gain pour pH 4 à 10)    


 

Jolies interfaces que celles d’Atlas. Et compactes en plus ! Mais celle-ci sortent-elles directement un signal 0/5V ?

Il me semblait qu’elles sortaient un signal série. Et comme sur ma carte l‘entrée série est déjà employée, je n’aurais pas pu l’utiliser (Duemilanove à une seule entrée série).

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour bubule.

 

Merci pour ton code,

 

Pour la mesure de PH je n'est aucune variations c'est stable au bout de 1 minutes env. de mise en route, mais comme tu le dit je suis effectivement par le port COM et non en 0/5v. Vu que sur l'Ardinio "Mega" j'ai 3 ports Com de disponible plus l'USB c'est pas un souci pour moi. D'ailleurs Athlas vend aussi des cartes pour le Redox mais c'est plus cher (60$) donc à voir si c'est vraiment utile.

 

Pour l’étalonnage tu l'a prévu comment le tiens car tu à la mise à PH7 et l'autre tu le défini comme "pleine échelle".

 

Pour l'étalonnage de l'athlas ont lui envoie des commandes (PH 4/ PH7 / PH10) donc faut mieux une interface avec bouton. Le tient est plus pratique si tu à juste un afficheur si non faut y connecter un PC à chaque étalonnage.

 

Dés que je me serait débarrassé du problème de concaténation de String Float String, pour l'affichage, je vais pouvoir avancer (Pour faire par exemple: PH Rac = 7.6 PH ou Temp = 25.2 C) il plante de temps en temps la dessus.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

Pour répondre à la question posée en mp par Aquarius37, et qui pourrait intéresser d’autres amateurs :

Bonjour Bubule.

 

Dit moi, tu n'aurait pas une adresse pour acheter ce convertisseur DCV01D car impossible d'en trouver chez mon détaillant et pour le moment j'en trouve pas sur le net, à part le datasheat. Dommage au boulot j'en est plein mais des 12v et 48v. Je suppose que si tu a changer pour ce convertisseur c'est que l'autre que tu avais utilisait n’était pas suffisamment isolé.

 

Merci

 

J’ai trouvé le convertisseur ici http://radiospares-fr.rs-online.com/web/p/products/661-8379/

Comme le reste d’ailleurs.

C‘est l’élément le plus cher du montage (env10€HT).

 

Je viens de me rendre compte que je n’avais pas répondu à ceci

Pour l’étalonnage tu l'a prévu comment le tiens car tu à la mise à PH7 et l'autre tu le défini comme "pleine échelle".

L’étalonnage s’effectue en trempant l’électrode dans une solution pH9, et en ajustant le potentiomètre RV1 jusqu’à lire la bonne valeur (9.00) dans l’arduino ou l’afficheur.

Il est également possible de modifier le coefficient (73.07 ou 169.00) pour obtenir la bonne valeur par la règle de trois.

 

Franck

Lien vers le commentaire
Partager sur d’autres sites

  • 9 mois plus tard...

Bonjour Aquarius37,

 

Si tu veux une mesure de température avec une précision de 0.02° il faut que tu utilises une DS18B20 c'est une sonde digitale facile à connecter et à coder.

 

sondetemperature.jpg

 

la connexion de la sonde:

 

cablagesonde.jpg

 

le code arduino:

 

 

#include

#include

 

const int captBac = x; */ x = numero broche digitale

 

OneWire temperatureBac(captBac);

DallasTemperature bac(&temperatureBac);

 

float tempBac = 0; /* valeur température à afficher

 

void loop()

 

{

 

bac.requestTemperatures();

tempBac = bac.getTempCByIndex(0);

 

lcd.print(tempBac,1);

 

}

 

Et voila pas compliquer !!

 

 

Lien vers le commentaire
Partager sur d’autres sites

Sinon pour ton phmetre atlas voici le code (arduino ide 1.0.1) que j'utilise actuellement et qui fonctionne bien:

 

port Serial3 sur arduino méga (14,15)

 

#include

 

char stamp_data[12];

 

void lecturePh(void){

 

if(Serial3.available() > 3) {

holding=Serial3.available();

for( i = 0; i < holding; i ++){

stamp_data= Serial3.read();

}

} stamp_data[holding]='\0';

ph=atof(stamp_data);

}

 

void setup(void)

 

{

 

Serial3.begin(38400);

Serial3.print("l0\r");

Serial3.print("l1\r");

Serial3.print("c\r");

 

}

 

void loop()

{

 

lecturePh();

lcd.print(ph,1);

 

}

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour rico37350 et les autres bien sur,

 

Merci pour ces informations, pour le moment j'ai tout laissé en plan car j'ai eue pas mal de souci pendant un moment, puis j'ai commencé le projet de mon nouveau bac. Légèrement plus grand, il sera juste derrière moi, lorsque je pianote donc plus facile de bidouillé qu'avec le portable sur le coin d'une chaise.

 

En ce qui concerne la sonde de température j'en ai commandé une la semaine dernière, elle ne devrait plus tarder maintenant.

 

Et en ce qui concerne les cartes Athlas j'ai réussi à la faire marcher, mais sur 3 cartes commandées seul une fonctionne donc c'est sa qui m'inspire pas confiance. Je ne sais même pas si je vais vraiment l'utiliser car je ne pense pas qu'elle soit fiable.

 

A la suite des défauts constatés j'ai envoyé un mail à Athlas qui m'a demandé de lui envoyer le code que j'avais utilisé et ce que j'avais fait. j'ai envoyé le tout 2 fois sans réponses donc ...

 

De plus j'était pressé pour le PH pour la mise en route de mon RAC, mais j'ai trouvé un contrôleur de PH avec prise commandée pour 15€.

 

Donc voila les cartes (arduino, relais, entrées) sont toujours sur mon bureau sous un tas de paperasse, mais ce n'est pas abandonné. J'ai même commandé un petit arduino nicro pour commander des pompes doseuse (Pompe de machine à café) .

Lien vers le commentaire
Partager sur d’autres sites

Voici le code que j’ai créé pour gérer et stabiliser la variable pH

En déclaration des variables
  int SondePH;        // Variables contenant la valeur donnée par l'interface pH (Broche entrée Analogique 0 (pin0))
  long totalpH = 0;
  int comptpH = 0;
  int moyennepH = 0;
  double pH = 8.5;    // Contient la mesure de pH après conversion de l'entrée sonde pH

Dans le loop
// Calcul moyenne de la variable pH 
  totalpH = totalpH + SondePH;       // Additionne la valeur à chaque cycle
      comptpH++;                     // Compte le nombre de cycles
     if(comptpH == 300){             // Dès que la qté de cycle est atteinte
      moyennepH = totalpH / comptpH; // Calcul la moyenne 
      totalpH = SondePH;             // Remet à zéro le compteur
      comptpH = 1;
         }  
// Conversion pH
   //  pH = moyennepH / 73.07;       // converti la variable (Gain pour pH 0 à 14)
     pH = 4 + moyennepH / 169.00;    // converti la variable (Gain pour pH 4 à 10)    


Bonjour,

 

je pense à qu'il y plus simple pour stabiliser la lecture

 


variables:

int i = 0;
long lecture;
float ph = 0;

#define coef_ph (73.07) //converti la variable (Gain pour pH 0 à 14)
// #define coef_ph (169.07) //converti la variable (Gain pour pH 4 à 10)

dans le loop:

i = 0;
lecture = 0;
for( i = 0, i < 100, i++)
{

  lecture+=analogRead(phmetre); // on incremente directement la variable lecture
 
}

lecture/=100; // on calcul la moyenne de la variable lecture

ph = lecture / coef_ph;
// ph = 4 + lecture / coef_ph;
    

 

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois plus tard...

Après quelques heures passées à se former à KiCad (logiciel de schématisation électronique) puis quelques autres à Wings3D pour créer quelques composants en 3D. Voici en exclusivité pour CR les images "propres' de la chose.

 

Le schéma de l'Interface :

bubule_20110515153309-thumb.jpg

Edit : ATTENTION, Schéma modifié plus loin dans le topique.

 

En version PDF : Interface-pH-pour-Arduino.pdf

 

 

Le Circuit imprimé :

bubule_20110515153408-thumb.jpg

Et pour le plaisir, une vue 3D :

bubule_20110515153440-thumb.jpg

Bon, maintenant, je m'en retourne à mon schéma global Arduino ... :dance:

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir

 

Après quelques heures à rechercher une solution à notre problème de sensibilité aux parasites électriques présents dans l’eau à mesurer. Et grâce à l’aide de berann82 que je remercie tout particulièrement :chapeau: . L’interface est opérationnelle depuis plusieurs semaines.

Mais comme je souhaitais vérifier ses performances et sa stabilité, je l’ai testé avec plusieurs sonde pH, sur une période que je considère représentative.

Je me suis ainsi rendu compte que la sonde était un élément important dans la réactivité à la mesure. Ainsi, une sonde à 20€ mets plus de 20 minutes à se stabiliser dans une solution, alors qu’une sonde de meilleur qualité (Dupla en verre à 100€), ne met que quelques secondes.

Ceci aura une importance dans la réactivité (et donc la régulation) de votre système piloté grâce à cette mesure.

 

Les modifications apportées par rapport à la version précédente :

Découplage total de la partie mesure (amplification et offset) grâce à un optocoupleur analogique U5 (HCNR201), amplifié grâce à 2 AOP identiques à celui de mesure (LMC6042).

Découplage de l’alimentation grâce à un petit convertisseur CC/CC U1 (DCV01D).

Suppression de la pompe de charge et de ses condos qui généraient le -5V, puisque le DCV01D génère déjà un +5V/0/-5V.

 

Egalement, j’ai donné deux valeur à R1 en fonction de la plage d’utilisation de l’interface que vous souhaitez utiliser.

R1 = 40K : Plage de travail allant de 0 à 14pH (7 +/-7) pour 0/5V en sortie. Ceci avec une précision de 0.02pH (lié aux 1024 pas de l’entrée numérique du microcontroleur Arduino).

R1 = 15K : Plage de travail allant de 4 à 10pH (7 +/-3) pour 0/5V en sortie. Ceci avec une précision de 0.01pH.

 

Le schéma :

bubule_20111119195948.pdf

 

Les photos

bubule_20111119200513-thumb.jpg

bubule_20111119200834-thumb.jpg

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

Pour faire suite à quelques questions, voici quelques petits compléments d’information pour la mise au point et l’étalonnage.

 

Je trouve plus facile de commencer en ne raccordant pas de sonde sur le connecteur, mais de court-circuiter le connecteur BNC (de manière stable afin d’être sûr d’avoir 0V en entrée BNC). La tension en sortie doit être ajustable avec le potentiomètre RV2. Le but est de régler approximativement 2.5V en sortie de l’interface (Patte 1 de U4A). C’est le réglage de l’offset.

Si vous ne voyez pas de variation en sortie, vérifier que vous pouvez ajuster ces 2.5V en sortie de U2A (patte 1).

Lorsque ce contrôle est effectué, vous pouvez enlever le court-circuit précédemment réalisé en entrée, et raccorder votre sonde.

 

Étalonnage :

Raccorder la sonde et trempez la dans une solution étalon pH7. Vous devez retrouver approximativement 2.5V en sortie d’interface, car les sondes délivrent 0V à ce pH.

Ajuster RV2 afin d’obtenir ces 2.5V en sortie.

Une fois ce premier réglage effectué, rincez et trempez la sonde dans la seconde solution étalon (que j’appelle « pleine échelle »). Si possible une solution étalon la plus proche des valeurs de pH que vous allez régulièrement mesurer. J’utilise des solutions à usage unique pH9. Le pH de mon bac oscillant le plus régulièrement entre pH8.00 et pH8.55.

Ce réglage s’effectue en ajustant RV1.

Une fois ces réglages effectués de manière grossière pour commencer, je revérifie et réajuste plus finement ces deux réglages. Toujours pH7, puis pH9.

C’est tout.

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

:horreur: :horreur: :horreur:

 

Il est pas bon ton schéma si tu branches les zéners dans cette position le convertisseur va faire cramer !!!!!!

 

Il faut que tu inverses le sens de tes 2 zéners sur le schéma car elle sont toutes les 2 à l'envers ....

 

:mdr4: :mdr4: :mdr4: :mdr4: :mdr4: :mdr4: :mdr4:

 

Ou sinon un convertisseur type TMA0505D convient mieux car il est régulé.......et beaucoup moins cher......!!!!

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Oh put.... oui :timide: :timide:

 

Là, je suis incapable de modifier le schéma. Faudra attendre une bonne semaine que je récupère mon PC (DD HS pour la 2ème fois :sablier: )

 

J'éditerais le schéma + PDF

 

Sinon, je vous rassure, çà fonctionne impeccable dans le bon sens (lol)

 

Merci Rico :timide:

Franck

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines plus tard...

Bonsoir

 

Avec plusieurs mois de recul, j’ai constaté une dérive des mesures qui n’avaient rien à voir avec une dérive de la sonde, mais nécessitant malgré tout des réétalonnages fréquents. Et de manière aléatoire en fonction de l’interface.

Après recherches de la cause, il s’est avéré que ces dérives provenaient des tensions secondaires du convertisseur qui fluctuaient. Normal, ce convertisseur n’est pas régulé.

 

La parade fut trouvée en rajoutant une diode Zener (5.1V) sur chaque sortie du convertisseur (merci Eric) ;) .

Attention au sens de montage !! (Coté -5V, le coté positif de la diode Zener doit être positionné sur le 0V)

Mes interfaces en sont équipées depuis 6 mois, et plus aucune dérive n’est constatée.

A noter également que l’ajout d’un verni d’isolement n’est pas un luxe dans notre environnement…

 

Et pour ceux qui ne savent pas quoi faire de leur nuit de la Saint Sylvestre, et qui souhaiteraient se lancer dans cette aventure, voici le nouveau schéma modifié (qu’il m’a fallut entièrement recréer ce dernier jour de 2012, rien que pour Cap Récifal, suite à un formatage de DD).

:tapechaise:

 

bubule_20130209164719-thumb.jpg

 

Version PDF : bubule_20130209164736.pdf

 

EDIT (9/2/13) : Schémas corrigés suite remarque "Rico" sur Zeners inversées

 

 

Bon réveillon à vous :fete: :jongle1: :jongle1: :hola::fete:

Franck

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines plus tard...

Bonjour !

 

Je suis tombé sur ce montage pour faire un pH-metre. En fait je suis tombé sur tout le topic.... j'ai tout lu, et le + intéressant pour moi était en dernière page... (je pense que ce montage est le + abouti)

Depuis le temps que je cherchais quelque chose de clair, nous-y voilà !

 

Je voudrais brancher ce montage sur une entrée d'un PIC...

Le Programme que j'ai fait prenait en compte la calibration des 2pts pH4 et pH7 :

je viens lire ma donnée pour le tampon PH4 et celle du tampon pH7 puis lors de la mesure du pH je fais le calcul (par rapport aux 2pts de calibration) en incluant la compensation en température.

Je me basais sur des valeurs de pH0=0V et pH14=5V (+ou- suivant les points de calibration choisis)

 

Les question sont :

- Puis-je utiliser ce schéma tel quel ? du coup à quoi me servirait les 2 potars (surtout celui de la "pleine échelle" je crois avoir bien compris que l'autre sert à mettre à 0V quand on shunt la sonde, pour les ampli-op.... n'est-ce pas ?)

- Et si non, comment le modifier de tel sorte qu'il colle à mon idée ? comment virer les potars de calibration "manuel" ?

OU en gros:

Comment reproduire ce montage juste pour lire la sonde pH, sans calibration. On vient lire la valeur de sortie comprise entre 0et5V pour le pH4, la même chose pour le pH7 puis c'est le PIC qui se débrouille pour calculer la valeur pH quand on ira mesurer le bac.

 

Héhé...j'espère que c'est assez clair !

Si c'est pas clair, écrivez-moi, posez vos questions (?) je me ferais une joie d'éclaircir tout ce que vous voulez !

En attendant, merci pour tout !!

S.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir

 

Désolé de répondre si tardivement, mais l'apéro c'est sacré :D

 

Content de voir que ce montage intéresse quelques aquariophiles.

Pour quelle application veux tu utiliser cette interface (eau douce, eau de mer, réacteur, ... ) ?

Je pose la question afin que tu envisages la bonne plage (0 à 14 ou 4 à 10).

 

Pour les potars, sans doute peux tu les supprimer, et piquer directement en point milieu. Perso, je ne le ferais pas, et les laisserais en place après dégrossissement des étalonnages. Ensuite, oui, pourquoi pas étalonner par soft dans le PIC.

 

Je sais que Nico a agit ainsi, suite à des problèmes d'étalonnage qu'il n'arrivait pas à surmonter. (Pour te rassurer, j'ai deux interfaces qui fonctionnent et s'étalonnent facilement.)

 

Sinon, non, tu ne peux supprimer un étage. L'un sert à l'amplification (le 1er). Et le second permet de rehausser la tension qui sinon passe négative (-2.5V / +2.5V) au lieu de 0 / 5V.

 

Franck

Lien vers le commentaire
Partager sur d’autres sites

Bonjour, !!

 

Alors le but final c'est pour de l'eau douce... Donc comme plage du pH, entre 5.5 et 6.2.

Du coup oui, comment virer ces 2 pot' ? (j'avoue je suis pas fin électronicien.... J'apprend au fur et à mesure de mes montages.... J'suis pas du genre à prendre un livre, bûcher pour tout connaître, et me planter royalement... Donc j'suis là ! :-) )

Par contre je comprend pas comment je pourrai garder l'etalonnage hardware, et rajouter un en software... Ca servirait pas à grand chose je pense.... Un étalonnage toute les semaines, c'est pas de trop... La sonde perd de son efficacité au fil du temps non ? Tout les circuits vont être dans un boitier, vous imaginer tout démonter pour accéder au 2 potar ? C'est pour ça que j'avais pensé à l'etalonnage par le PIC... Via des menus...! (ouah....!)

Le final c'est quoi ? Je garde le circuit tel quel, je l'étalonne une 1ere fois, puis les étalonnages suivants, juste par soft ?

 

Allez... Bientôt 11h, c bientôt l'apéro dans le sud aussi !!

Mais moi j'suis chauffeur d'autocar.... Donc ce sera pour ce soir... (et encore !)

A bientôt, je vous remerci d'avoir répondu si vite ! (si si, je vous assure ! Ya pire ! )

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...

Information importante

En poursuivant votre navigation, vous acceptez l’utilisation des cookies pour vous proposer des contenus adaptés à vos centres d’intérêt et réaliser des mesures pour améliorer votre expérience sur le site. Pour en savoir plus et gérer vos paramètres, cliquez ici