Captain-Bud 36 Posté(e) mars 27, 2021 Partager Posté(e) mars 27, 2021 Salut a vous alors voila j'ai trouver les travaux d'un mec concernant la gestion du PH sur Airduino le taff ne viens pas de moi,je me suis dit que sa pourrais aider certaine personnes voila.J'allais oublier c'est en Anglais.... Régulateur PH pour Airduino et Blynk.pdf Lien à poster Partager sur d’autres sites
Captain-Bud 36 Posté(e) mars 27, 2021 Auteur Partager Posté(e) mars 27, 2021 J'ai aussi un autre taff celui la est en français et il partage le code pour le ph sur un Airduino Une carte arduino : personnellement, je suis allé au moins cher avec une carte WAVGAT à 2,26 € (attention aux particularités de cette carte) Une sonde pH-métrique (réf PH-4502C) à 10 € 3 boutons poussoir Des câbles Un proto-shield à 0,76 € (ou une breadboard) Un jeu de solutions tampon Fisher pH 4, pH 7, pH 10 (« gratuit » car disponible dans mon établissement, mais dans l'absolu, c'est presque 30€ le litre de chaque !) Un écran LCD 4 lignes avec bus I2C (réf 2004A) à 3,50 €, en option Éventuellement un boîtier pour fermer et fixer le tout. Les branchements Voici le diagramme Fritzing pour faire les branchements. Il est possible de ne pas utiliser d'écran LCD et remplacer le tout par de la communication avec le port Série. Le programme: #include #include //----- Adressage matériel ----- // En cas de non fonctionnement, décommentez la ligne plus bas et commentez la ligne ci-dessous LiquidCrystal_I2C lcd(0x27, 20, 4); //LiquidCrystal_I2C lcd(0x3F,20,4); //PH mètre const int pinpH = A0 ; const int overpH = 8 ; //Boutons de mesure const int readpH = 9 ; const int pH7 = 10 ; const int pH4 = 11 ; //Variables intermédiaires int cal4 =0; int cal7 =0; long slope =0.; long intercept=0.; bool calibrated=false; int pHRaw; long pHfull; String line=""; void setup() { lcd.init(); pinMode(pinpH, INPUT); pinMode(overpH, INPUT); //si au dela d'un seuil fixé via potentiomètre pinMode(readpH, INPUT_PULLUP); // lancer lecture du pH pinMode(pH7, INPUT_PULLUP); // tampon pH7 pinMode(pH4, INPUT_PULLUP); // tampon pH4 Serial.begin(9600); } long ReadPH(){ int buf[10],temp; float avgValue=0.0; analogRead(pinpH); for(int i=0;i<10;i++){ //10 mesures buf[i]=analogRead(pinpH); delay(10);} for(int i=0;i<10;i++){ // moyenne avgValue+=(float) buf[i];} avgValue/=10; return avgValue; } void loop() { lcd.backlight(); pHRaw= ReadPH();//récupération de la valeur brute moyennée sur 10 valeurs boolean calpH4 = digitalRead(pH4); if(calpH4 == LOW){//si le bouton pH4 appuyé, alors cal4 = pHRaw; lcd.setCursor(0, 2); lcd.print("calibre ph 4"); lcd.setCursor(0, 3); lcd.print("pH raw : "+ (String) pHRaw); calibrated = false; } boolean calpH7 = digitalRead(pH7); if(calpH7 == LOW){//si le bouton pH7 appuyé, alors cal7 = pHRaw; lcd.setCursor(0, 2); lcd.print("calibre ph 7"); lcd.setCursor(0, 3); lcd.print("pH raw : "+ (String) pHRaw); calibrated = false; } if(cal4 != 0 && cal7 != 0 && calibrated == false){ slope = (cal7-cal4)/3.0; intercept = cal4-4.0*slope; calibrated = true; lcd.setCursor(0, 0); lcd.print("Pente : "+String(slope,2)); lcd.setCursor(0, 1); lcd.print("Ord : " + String(intercept,2)); lcd.setCursor(0, 2); lcd.print("pH-metre calibre"); } boolean Read = digitalRead(readpH); if(Read == LOW){//si le bouton read appuyé, alors if(calibrated==true){ pHfull=(pHRaw-intercept)/slope; lcd.setCursor(0, 2); lcd.print("pH : " + String(pHfull,2)+" "); lcd.setCursor(0, 3); lcd.print("pH raw : "+(String) pHRaw); }else{ lcd.setCursor(0, 2); lcd.print("pH-metre non cal! "); lcd.setCursor(0, 3); lcd.print("pH raw : "+(String) pHRaw); } } delay(100); } Utilisation: Il faut commencer par régler le potentiomètre en ayant trempé la sonde dans la solution de tampon pH=7. Ensuite, il faut ajuster le potentiomètre le plus près de la fiche BNC pour que la valeur brute affichée soit à environ la moitié de la gamme de lecture soit environ 511 ou 512 pour une carte UNO R3 -- qui peut lire des valeurs entre 0 et 1023. Pour cela, il suffit d'appuyer sur le bouton de mesure relié avec un fil jaune ou orange sur le diagramme ci-dessus qui affiche la valeur sur l'écran. Pour faire la calibration à proprement parler, il faut appuyer sur le bouton « Orange/pin 10 » lorsque la sonde est immergée dans la solution de pH=7. Ensuite, il faut rincer l'électrode, immerger la sonde dans la solution tampon pH=4 et appuyer sur le bouton « Violet / pin 11 ». Le ph-mètre est alors calibré et affiche la pente et l'ordonnée à l'origine de la droite trouvée. Une fois le pH-mètre calibré, il faut appuyer sur le bouton « Jaune / pin 9 » ! Raffinements Améliorer la calibration avec la température n°1 Il est possible d'ajouter une sonde de température pour avoir la température de la solution. Améliorer la calibration avec la température n°2 Si la température est mesurée, il est possible d'améliorer la calibration en utilisant le pH des solutions tampon à la température mesurée. Stabilité de la mesure Il est possible de vérifier que la mesure est stable en faisant des moyennes glissantes. Faire des incertitudes de type A Il est possible de faire une incertitude de type A sur les valeurs mesurées. Enregistrer les données Il est possible d'utiliser une horloge RTC et un lecteur de carte SD pour procéder à l'écriture dans un fichier. 1 Lien à poster Partager sur d’autres sites
Messages recommandés