W artykule zostanie opisane podłączenie czujnika do arduino, skalibrowanie go oraz zostaną przedstawione przykłady z wodą, wodą z mydłem, mlekiem i sokiem z cytryny.
Spis treści
- Krótki opis
- Specyfikacja
- Podłączenie
- Kalibracja czujnika
- Odczytywanie wartości z sondy
- Praktyczne przykłady
Krótki opis
Analogowy miernik pH kompatybilny jest z Arduino. Pozwala mierzyć jakość wody. Sonda wyposażona jest w specjalny zbiornik z płynem zapobiegającym zasychaniu membrany podczas przechowywania.
Specyfikacja
- Napięcie zasilania: 5 V ± 0.2 V
- Prąd pracy: 5-10mA
- Zakres pomiaru: od 0 pH do 14 pH
- Temperatura pracy: od 0 °C do 50 °C (nominalna tempera 20 °)
- Dokładność: +/- 0,1 pH
- Wilgotność: 95% RH (nominalna wilgotność 65% RH)
- Czas reakcji: do 1 min
- Czujnik pH ze złączem BNC
- Wymiary płytki:42mm x 32mm x 20mm
Podłączenie
Podłączenie zaczniemy od płytki, interesują nas oznaczenia Po, VCC i GND. VCC podłączamy do 5V, GND do GND i “Po” który posłuży nam jako pin analogowy podpinamy do A0. Całe połączenie przedstawione jest na poniższym schemacie.
Na razie nie podłączamy sondy do płytki, zaraz wszystko się wyjaśni w kalibracji czujnika.
Kalibracja czujnika
Aby czujnik działał poprawnie, musimy skalibrować naszą płytkę, aby to zrobić kopiujemy i wklejamy poniższy kod.
float Voltage; void setup() { Serial.begin(9600); pinMode(pH_Value, INPUT); } void loop() { pH_Value = analogRead(A0); Voltage = pH_Value * (5.0 / 1023.0); Serial.println(Voltage); delay(500); }
Wgrywamy go do naszego arduino i teraz musimy posłużyć się kablem męsko-męskim, jednen koniec wtykamy w gniazdo od naszego czujnika, a drugi koniec przekładamy do metalowego szkieletu dookoła gniazda, wygląda to w ten sposób.
Kiedy już tak zrobimy, włączamy monitor portu szeregowego i odczytujemy wartość, powinniśmy kręcić potencjometrem tak, aby wartość wskazywała wartość 2.50. Poniżej ukazane jest którym potencjometrem należy kręcić.
Po doprowadzeniu wartości do 2.5 możemy przejść dalej oraz do płytyki możemy już finalnie podłączyć nasz czujnik pH.
Odczytywanie wartości z sondy
Aby odczytać kod z sondy, kopiujemy i wklejamy poniższy kod. Umożliwi nam on odczytywanie wartości z sondy.
#include <Wire.h> float calibration_value = 21.34 - 0.10; int phval = 0; unsigned long int avgval; int buffer_arr[10], temp; float ph_act; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { for (int i = 0; i < 10; i++) { buffer_arr[i] = analogRead(A0); delay(30); } for (int i = 0; i < 9; i++) { for (int j = i + 1; j < 10; j++) { if (buffer_arr[i] > buffer_arr[j]) { temp = buffer_arr[i]; buffer_arr[i] = buffer_arr[j]; buffer_arr[j] = temp; } } } avgval = 0; for (int i = 2; i < 8; i++) avgval += buffer_arr[i]; float volt = (float)avgval * 5.0 / 1024 / 6; ph_act = -5.70 * volt + calibration_value; Serial.print("pH: "); Serial.print(ph_act); Serial.println(); delay(1000); }
Po wgraniu programu, możemy przygotować nasze próbki: wodę z mydłem, mleko i wodę z sokiem z cytryny.
Praktyczne przykłady
Testy przeprowadzałem na: soku z cytryny, mleku, wodzie z mydłem, wodzie z kranu. Wyniki wyglądały następująco.