- Nødvendige komponenter
- Hvad er pH-værdi?
- Hvordan fungerer Gravity Analog pH-sensor?
- Arduino pH-målerkredsløbsdiagram
- Programmering af Arduino til pH-meter
- Kalibrering af pH-elektrode
- Test af Arduino pH-tester
pH-skala bruges til at måle surhedsgraden og basiteten af en væske. Det kan have aflæsninger, der spænder fra 1-14, hvor 1 viser den mest sure væske og 14 viser den mest basiske væske. 7 pH er for neutrale stoffer, der hverken er sure eller basiske. Nu spiller pH en meget vigtig rolle i vores liv, og den bruges i forskellige applikationer. For eksempel kan den bruges i en swimmingpool til at kontrollere vandkvaliteten. Tilsvarende anvendes pH-måling i en lang række applikationer som landbrug, spildevandsrensning, industrier, miljøovervågning osv.
I dette projekt skal vi lave en Arduino pH-måler og lære at måle pH-værdien i en flydende opløsning ved hjælp af en tyngdekrafts-pH-sensor og Arduino. En 16x2 LCD bruges til at vise pH-værdien på skærmen. Vi lærer også, hvordan man kalibrerer pH-sensoren for at bestemme sensorens nøjagtighed. Så lad os komme i gang!
Nødvendige komponenter
- Arduino Uno
- 16 * 2 Alfanumerisk LCD
- I2C-modul til LCD
- Gravity Analog pH-sensor
- Tilslutning af ledninger
- Brødbræt
Hvad er pH-værdi?
Enheden, som vi bruger til at måle et stofs surhedsgrad, kaldes pH . Udtrykket “H” er defineret som den negative log for hydrogenionkoncentrationen. PH-værdien kan have værdier fra 0 til 14. En pH-værdi på 7 er neutral, da rent vand har en pH-værdi på nøjagtigt 7. Værdier lavere end 7 er sure og værdier større end 7 er basiske eller basiske.
Hvordan fungerer Gravity Analog pH-sensor?
Analog pH-sensor er designet til at måle pH-værdien af en opløsning og vise surhedsgraden eller alkaliniteten af stoffet. Det bruges almindeligvis i forskellige applikationer såsom landbrug, spildevandsrensning, industrier, miljøovervågning osv. Modulet har en indbygget spændingsregulatorchip, der understøtter den brede spændingsforsyning på 3,3-5,5V DC, som er kompatibel med 5V og 3.3V af ethvert kontrolkort som Arduino. Udgangssignalet filtreres af hardware med lav jitter.
Tekniske funktioner:
Signalkonverteringsmodul:
- Forsyningsspænding: 3,3 ~ 5,5 V.
- BNC-probestik
- Høj nøjagtighed: ±0,1@25 ° C.
- Registreringsområde: 0 ~ 14
PH-elektrode:
- Driftstemperaturområde: 5 ~ 60 ° C
- Nul (neutralt) punkt: 7 ± 0,5
- Nem kalibrering
- Intern modstand: <250MΩ
Omregningskort for pH-signal:
Pin Beskrivelse:
V +: 5V DC-indgang
G: Jordstift
Po: pH analog udgang
Gør: 3,3 V DC-udgang
Til: Temperatur output
pH-elektrodekonstruktion:
Konstruktionen af en pH-sensor er vist ovenfor. The pH Sensor ligner en stang sædvanligvis fremstillet af et glasmateriale med en spids kaldet ”Glas membran”. Denne membran er fyldt med en bufferopløsning med kendt pH (typisk pH = 7). Dette elektrode-design sikrer et miljø med konstant binding af H + -ioner på indersiden af glasmembranen. Når sonden dyppes i opløsningen, der skal testes, begynder hydrogenioner i testopløsningen at udveksles med andre positivt ladede ioner på glasmembranen, hvilket skaber et elektrokemisk potential på tværs af membranen, der føres til det elektroniske forstærkermodul, som måler potentialet mellem begge elektroder og konverterer det til pH-enheder. Forskellen mellem disse potentialer bestemmer pH-værdien baseret på Nernst-ligningen.
Nernst ligning:
Nernst-ligningen giver et forhold mellem cellepotentialet i en elektrokemisk celle, temperatur, reaktionskvotient og standardcellepotentialet. Under ikke-standardforhold bruges Nernst-ligningen til at beregne cellepotentialer i en elektrokemisk celle. Nernst-ligningen kan også bruges til at beregne den samlede elektromotoriske kraft (EMF) for en fuld elektrokemisk celle. Denne ligning bruges også til at beregne PH-værdien for en opløsning. Glaselektrodens respons styres af Nernst ligningen kan gives som:
E = E0 - 2.3 (RT / nF) ln Q Hvor Q = Reaktionskoefficient E = mV output fra elektroden E0 = Nul forskydning for elektroden R = Ideal gaskonstant = 8,314 J / mol-K T = Temperatur i ºK F = Faradays konstant = 95.484,56 C / mol N = ionisk ladning
Arduino pH-målerkredsløbsdiagram
Kredsløbsdiagram for dette Arduino pH-meter-projekt er angivet nedenfor:
Forbindelse af pH-signalkonverteringskort med Arduino:
Forbindelsen mellem Arduino og PH-signalkonverteringskort vises i nedenstående tabel.
Arduino |
PH-sensorkort |
5V |
V + |
GND |
G |
A0 |
Po |
Programmering af Arduino til pH-meter
Efter vellykkede hardwareforbindelser er det nu tid til programmering af Arduino. Den komplette kode for denne pH-meter med Arduino er angivet i den nederste del af denne vejledning. Den trinvise forklaring af projektet er givet nedenfor.
Den første ting at gøre i programmet er at inkludere alle de nødvendige biblioteker. Her i mit tilfælde har jeg inkluderet " LiquidCrystal_I2C.h" -biblioteket til brug af I2C-grænsefladen på en LCD-skærm og " Wire.h " til brug af I2C-funktionalitet på Arduino.
#omfatte
Derefter defineres kalibreringsværdien, som kan ændres efter behov for at få en nøjagtig pH-værdi af opløsninger. (Dette forklares senere i artiklen)
float calibration_value = 21.34;
Inde i opsætning () skrives LCD-kommandoer til visning af en velkomstbesked på LCD.
lcd.init (); lcd.begin (16, 2); lcd.backlight (); lcd.setCursor (0, 0); lcd.print ("Velkommen til"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); forsinkelse (2000); lcd.clear ();
Inde i loop (), læs 10 eksempler på analoge værdier, og gem dem i en matrix. Dette er nødvendigt for at udjævne outputværdien.
for (int i = 0; i <10; i ++) {buffer_arr = analogRead (A0); forsinkelse (30); }
Sorter derefter de modtagne analoge værdier i stigende rækkefølge. Dette er påkrævet, fordi vi skal beregne det løbende gennemsnit af prøver i det senere stadium.
for (int i = 0; i <9; i ++) {for (int j = i + 1; j <10; j ++) {hvis (buffer_arr> buffer_arr) {temp = buffer_arr; buffer_arr = buffer_arr; buffer_arr = temp; }}}
Endelig beregne gennemsnittet af en prøve på 6 centre Analoge værdier. Derefter konverteres denne gennemsnitlige værdi til den faktiske pH-værdi og udskrives på et LCD-display.
for (int i = 2; i <8; i ++) avgval + = buffer_arr; float volt = (float) avgval * 5.0 / 1024/6; float ph_act = -5,70 * volt + kalibreringsværdi; lcd.setCursor (0, 0); lcd.print ("pH Val:"); lcd.setCursor (8, 0); lcd.print (ph_act); forsinkelse (1000); }
Kalibrering af pH-elektrode
Kalibrering af PH-elektroden er meget vigtig i dette projekt. Til dette er vi nødt til at have en løsning, hvis værdi er kendt for os. Dette kan tages som en referenceopløsning til kalibrering af sensoren.
Antag, at vi har en opløsning, hvis PH-værdi er 7 (destilleret vand). Nu når elektroden dyppes i referenceopløsningen, og PH-værdien, der vises på LCD, er 6,5. Derefter tilføjes 7-6,5 = 0,5 i kalibreringsvariablen “ calibration_value” i koden for at kalibrere den. dvs. lav værdien 21,34 + 0,5 = 21,84 . Efter at have foretaget disse ændringer, skal du igen uploade koden til Arduino og kontrollere pH igen ved at dyppe elektroden i referenceopløsningen. Nu skal LCD vise den korrekte pH-værdi, dvs. 7 (små variationer er betydelige) . Tilpas også denne variabel for at kalibrere sensoren. Kontroller derefter for alle andre løsninger for at få den nøjagtige output.
Test af Arduino pH-tester
Vi har prøvet denne Arduino pH-meter ved at dyppe den i rent vand og citronvand, du kan se resultatet nedenfor.
Rent vand:
Citronvand:
Sådan kan vi bygge en pH-sensor ved hjælp af Arduino og kan bruge den til at kontrollere pH-niveauet for forskellige væsker.
Komplet kode og demonstrationsvideo er angivet nedenfor.