Modul a sonda pro měření pH

Modul a sonda pro měření pH je vstupní modul pro Arduino, který umožňuje měřit hladinu pH v různých tekutinách. Sonda E201 umožňuje měřit pH v rozsahu 0 až 14 s přesností ±0,5, přičemž rozsah měřících teplot je 0 až 60°C. Mezi další parametry této sondy patří připojení pomocí BNC konektoru, délka kabelu 95 cm a typická doba ustálení měření do jedné minuty. Na samotném modulu se pak nachází dva trimry. Trimr umístěný blíže k BNC konektoru slouží ke kalibraci měření, kdy je možné využít dodávaný roztok jako referenci s hodnotou pH 7. Druhým trimrem pak můžeme nastavit hranici, při jejímž překročení se rozsvítí červená kontrolní LED dioda na modulu. Na výstupu se nachází ještě pin Do, který je spojen se zmíněnou detekční LED diodou a pin To, který je spojen s teplotním senzorem. Přesnost tohoto senzoru ale není moc dobrá a proto jsem ho v návodu nevyužil.

Pro úspěšné propojení modulu pro měření pH s Arduino deskou propojíme celkem 3 vodiče. Připojíme V+ na +5V Arduina, G na zem Arduina a Po na pin A0. Zmíněný měřící pin Po můžeme zapojit i na jiné volné analogové piny, ale je nutné tuto volbu provést také na začátku programu.

Ukázkový kód obsahuje na svém začátku nastavení čísla propojovacího pinu a v podprogramu setup jako první nastavíme komunikaci po sériové lince. V nekonečné smyčce loop vytvoříme v prvním kroku pomocné proměnné a následně pomocí for smyčky načteme v 10ms intervalech 10 vzorků měření. Poté pomocí dvou vnořených for smyček seřadíme naměřené hodnoty podle jejich velikosti. V rámci zpřesnění měření pro následný výpočet průměru nepoužijeme všech deset vzorků, ale první dva a poslední dva vzorky vždy vynecháme. Po získání průměru pak výslednou hodnotu pomocí výpočtu převedeme na hodnotu pH a tento výsledek vytiskneme po sériové lince. Na konci loop smyčky se nachází už jen pauza po dobu 900 ms, aby bylo docíleno nového výsledku přibližně každou vteřinu.

// Arduino Modul pro měření pH

// nastavení čísel propojovacích pinů
const int pinPo = A0;

void setup() {
  // komunikace po sériové lince rychlostí 9600 baud
  Serial.begin(9600);
}

void loop() {
  // vytvoření pomocných proměnných
  int pole[10];
  int zaloha;
  unsigned long int prumerVysl = 0;
  // načtení deseti vzorků po 10 ms do pole
  for (int i = 0; i < 10; i++) {
    pole[i] = analogRead(pinPo);
    delay(10);
  }
  // seřazení členů pole naměřených výsledků podle velikosti
  for (int i = 0; i < 9; i++) {
    for (int j = i + 1; j < 10; j++) {
      if (pole[i] > pole[j]) {
        zaloha = pole[i];
        pole[i] = pole[j];
        pole[j] = zaloha;
      }
    }
  }
  // uložení 2. až 8. výsledku do
  // proměnné, z které se vypočte průměr
  // (vynechání dvou členů pole na začátku
  // a konci pro lepší přesnost)
  for (int i = 2; i < 8; i++) {
    prumerVysl += pole[i];
  }
  // výpočet hodnoty pH z průměru
  // měření a přepočet na rozsah 0-14 pH
  float prumerPH = (float)prumerVysl * 5.0 / 1024 / 6;
  float vyslednePH = -5.70 * prumerPH + 21.34;
  // vytištění výsledků po sériové lince
  Serial.print("Namerene pH: ");
  Serial.println(vyslednePH);
  // pauza 900 ms před novým měřením, celkem tedy 1s
  delay(900);
}

Po nahrání programu do Arduino desky s připojeným modulem pro měření pH je dobré provést kalibraci, kdy si otevřeme Sériový Monitor a s měřící sondou v testovacím roztoku nastavíme trimr tak, abychom dostali hodnotu 7.00. Po následném testování různých vzorků tekutin dostaneme například tento výpis:

  Namerene pH: 6.42
  Namerene pH: 6.43
  ..
  Namerene pH: 7.02
  Namerene pH: 7.01
  ..
  Namerene pH: 4.32
  Namerene pH: 4.34

Modul a sonda pro měření pH je zajímavý vstupní modul pro Arduino, s kterým můžeme provádět měření hodnot pH. Hodí se tedy do projektů, jako je například měřič pH v laboratořích, domácnostech či třeba pro domácí bazén. Modul samozřejmě nedosahuje takových přesností jako prodávané přístroje v ceně desítek tisíc, ale pro orientační měření je dle mého názoru rozhodně přesnější než lakmusové papírky.

 

Zde je ještě pro ukázku tabulka s přehledem hodnot pH běžných tekutin:

Látka

Přibližná hodnota pH

Citronová štáva

2,4 – 2,6

Coca Cola

2,5

Vinný ocet

2,5 – 2,9

Pomerančový nebo jablečný džus

3,5

Pivo

4,5

Káva

5,0

Čaj

5,5

Mléko

6,5

Voda

7,0

Sliny

6,5 – 7,4

Krev

7,38 – 7,42

Mořská voda

8,0

Mýdlová voda

9,0 - 10,0

Bělidlo

13

 

Seznam použitých komponent:

https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

https://dratek.cz/arduino-vstupni-periferie/1250-tekute-ph-hodnota-detekce-detekovat-senzor-modul-monitorovani-ovladani-pro-arduino-1459105294.html

https://dratek.cz/arduino/1234-sonda-pro-mereni-ph-1458420891.html

Další podobné články