pH meter

V tem delu bomo začetnikom milostno odpuščali vse grehe in jim pomagali, da svoje prve projekte pripeljejo do uspešnega konca

pH meter

OdgovorNapisal/-a Matthai » 21 Feb 2018, 15:01

Pozdrav,

s pomočjo Arduina bi rad naredil pH meter. Gledam kaj bi kupil, pa se ne bi rad zafrknil.

Razmišljal sem, da bi vzel tole zadevico:
https://www.aliexpress.com/item/1Set-Li ... 75619.html

Gor so oznake:
"To" - "Do" - "Po" - "G" - "G" - "V+"

Kolikor sem videl, je oba G-ja treba priklopiti na GND, V+ na 5V, Po pa na Analogni pin (recimo A0). (To in Do naj bi bila za merjenje temperature, kako to uporabljati mi še ni jasno.)

Potem sem pa gledal, da bi uporabil tale program:

Koda: Izberi vse
const int analogInPin = A0;
int sensorValue = 0;
unsigned long int avgValue;
float b;
int buf[10],temp;
void setup() {
 Serial.begin(9600);
}
 
void loop() {
 for(int i=0;i<10;i++)
 {
  buf[i]=analogRead(analogInPin);
  delay(10);
 }
 for(int i=0;i<9;i++)
 {
  for(int j=i+1;j<10;j++)
  {
   if(buf[i]>buf[j])
   {
    temp=buf[i];
    buf[i]=buf[j];
    buf[j]=temp;
   }
  }
 }
 avgValue=0;
 for(int i=2;i<8;i++)
 avgValue+=buf[i];
 float pHVol=(float)avgValue*5.0/1024/6;
 float phValue = -5.70 * pHVol + 21.34;
 Serial.print("sensor = ");
 Serial.println(phValue);
 
 delay(20);
}


Kolikor razumem, zadeva naredi 10 meritev in izračuna povprečje, ključno je tole:

Koda: Izberi vse
float phValue=(float)avgValue*5.0/1024/6;


Tukaj izračuna analog reading v milivolte, iz tega pa potem lahko izračunamo pH vrednost.

Ta možakar je zadevo izračunal s temle:
Koda: Izberi vse
float phValue = -5.70 * pHVol + 21.34;


Sem pa nekje našel še neko drugo kodo, kjer pa to izračuna takole:
Koda: Izberi vse
phValue=3.5*phValue;


Prvi možakar je zadevo umeril in izračunal krivuljo med milivolti in pH, ki je linearna (y= -5.70 * x + 21.34). Ta pristop je verjetno pravilen, drugi pa najbrž ne?

Pa še dve vprašanji:
- ali je treba pH meter periodično umerjati, ali ne?
- ali je elektrodo treba na kakšen poseben način shranjevati?
Matthai
 
Prispevkov: 81
Pridružen: 07 Okt 2016, 11:31
Zahvalil se je: 6 krat
Prejel zahvalo: 21 krat
Uporabnika povabil: BraneZ
Število neizkoriščenih povabil: 21

Re: pH meter

OdgovorNapisal/-a s54mtb » 21 Feb 2018, 16:45

Elektrodo moraš shraniti v ustrezni raztopini. TO nikakor ni DI voda, ker boš sondo uničil. V stekleni elektrodi je rahlo slana raztopina, tako da mora biti tudi elektroda v podobni raztopini. Če nimaš drugega, lahko shranjuješ elektrodo v raztopini s pH 4.

Za kalibracijo se uporabljajo "pufri", to so raztopine, ki imajo znan pH. Ponavadi se umerja pri določeni temperturi. Če rabiš pufre, imam od sigme 4.0, 7.0 in 13.0. Elektrode ne kupuj na ebayu, ker prodajajo večinoma stare, uničene sonde. Sem se enkrat "nasral", pa nikoli več. Raje dam tistih par 10 eur več in sem vsaj siguren da dela. Ena stara sonda, ki ima že povsem oksidirano elektrodo je delala bolje od "nove" od Španca (ne Kitajca!)

Tole si poglej, če si morda za "izlet" stran od arduino: http://e.pavlin.si/2016/10/24/affordable-ph-meter/
Imam tudi ploščico in ADC. Referenco in frontend pa lahko naročiš kot free sample pri TI.
Namesto "Zahvali se" sprejemam tudi šalco kofeta: https://www.buymeacoffee.com/s54mtb
Uporabniški avatar
s54mtb
 
Prispevkov: 10890
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1507 krat
Prejel zahvalo: 3871 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: pH meter

OdgovorNapisal/-a Matthai » 21 Feb 2018, 19:56

Hvala za info.

Se pravi nove kitajske (AliExpress) sonde niso OK? Kaj pa od DF Robot, ti imajo kar dobre produkte, so pa njihove pH sonde okrog 22 EUR in tudi več.

Zdaj vidim, da je treba sondo shraniti v "KCL3N solution", kalibrirati pa na pol leta. Koliko časa pa potem taka sonda deluje?
Matthai
 
Prispevkov: 81
Pridružen: 07 Okt 2016, 11:31
Zahvalil se je: 6 krat
Prejel zahvalo: 21 krat
Uporabnika povabil: BraneZ
Število neizkoriščenih povabil: 21

Re: pH meter

OdgovorNapisal/-a Jakey » 21 Feb 2018, 22:59

@mare,
to si uporabil tiste moje ph metre? So bili za kaj?
Podpis je izginil.
Uporabniški avatar
Jakey
 
Prispevkov: 2003
Pridružen: 03 Feb 2015, 15:57
Kraj: Ljubljana
Zahvalil se je: 172 krat
Prejel zahvalo: 134 krat
Uporabnika povabil: Proteus
Število neizkoriščenih povabil: 0

Re: pH meter

OdgovorNapisal/-a s54mtb » 21 Feb 2018, 23:05

Jakey je napisal/-a:@mare,
to si uporabil tiste moje ph metre? So bili za kaj?


Ja tudi tvoja sonda je OK.

V glavnem sonde pod 10 eur na ebayu so bile pa vse zanič, kar sem jih dobil pod roke.
Namesto "Zahvali se" sprejemam tudi šalco kofeta: https://www.buymeacoffee.com/s54mtb
Uporabniški avatar
s54mtb
 
Prispevkov: 10890
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1507 krat
Prejel zahvalo: 3871 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: pH meter

OdgovorNapisal/-a seba » 17 Mar 2018, 17:23

Matthai je napisal/-a:Pozdrav,

s pomočjo Arduina bi rad naredil pH meter. Gledam kaj bi kupil, pa se ne bi rad zafrknil.

Razmišljal sem, da bi vzel tole zadevico:
https://www.aliexpress.com/item/1Set-Li ... 75619.html

Gor so oznake:
"To" - "Do" - "Po" - "G" - "G" - "V+"

Kolikor sem videl, je oba G-ja treba priklopiti na GND, V+ na 5V, Po pa na Analogni pin (recimo A0). (To in Do naj bi bila za merjenje temperature, kako to uporabljati mi še ni jasno.)

Potem sem pa gledal, da bi uporabil tale program:

Koda: Izberi vse
const int analogInPin = A0;
int sensorValue = 0;
unsigned long int avgValue;
float b;
int buf[10],temp;
void setup() {
 Serial.begin(9600);
}
 
void loop() {
 for(int i=0;i<10;i++)
 {
  buf[i]=analogRead(analogInPin);
  delay(10);
 }
 for(int i=0;i<9;i++)
 {
  for(int j=i+1;j<10;j++)
  {
   if(buf[i]>buf[j])
   {
    temp=buf[i];
    buf[i]=buf[j];
    buf[j]=temp;
   }
  }
 }
 avgValue=0;
 for(int i=2;i<8;i++)
 avgValue+=buf[i];
 float pHVol=(float)avgValue*5.0/1024/6;
 float phValue = -5.70 * pHVol + 21.34;
 Serial.print("sensor = ");
 Serial.println(phValue);
 
 delay(20);
}


Kolikor razumem, zadeva naredi 10 meritev in izračuna povprečje, ključno je tole:

Koda: Izberi vse
float phValue=(float)avgValue*5.0/1024/6;


Tukaj izračuna analog reading v milivolte, iz tega pa potem lahko izračunamo pH vrednost.

Ta možakar je zadevo izračunal s temle:
Koda: Izberi vse
float phValue = -5.70 * pHVol + 21.34;


Sem pa nekje našel še neko drugo kodo, kjer pa to izračuna takole:
Koda: Izberi vse
phValue=3.5*phValue;


Prvi možakar je zadevo umeril in izračunal krivuljo med milivolti in pH, ki je linearna (y= -5.70 * x + 21.34). Ta pristop je verjetno pravilen, drugi pa najbrž ne?

Pa še dve vprašanji:
- ali je treba pH meter periodično umerjati, ali ne?
- ali je elektrodo treba na kakšen poseben način shranjevati?


Kako na enostaven način to izpeljat sem napisal v reviji.
elektronik-21-51-55.pdf
(2.54 MiB) Prenešeno 51 krat
Uporabniški avatar
seba
 
Prispevkov: 376
Pridružen: 17 Jan 2015, 22:20
Zahvalil se je: 31 krat
Prejel zahvalo: 86 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 11

Re: pH meter

OdgovorNapisal/-a Matthai » 26 Jun 2018, 20:19

Evo, prvi prototitp: https://github.com/MatejKovacic/pH_meter

Sicer je sonda zanič, ampak kaže vsaj v pravo smer... :D

Bolj se mi je šlo za to, da naredim cel software, sondo bom pa kupil kakšno bolj kvalitetno. Morda kaj od DF Robot?
Matthai
 
Prispevkov: 81
Pridružen: 07 Okt 2016, 11:31
Zahvalil se je: 6 krat
Prejel zahvalo: 21 krat
Uporabnika povabil: BraneZ
Število neizkoriščenih povabil: 21


Vrni se na Elektronika za začetnike

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost