- Vereiste componenten
- Wat is de pH-waarde?
- Hoe werkt de zwaartekracht analoge pH-sensor?
- Arduino pH-meter schakelschema
- Arduino programmeren voor pH-meter
- Kalibratie van pH-elektrode
- Arduino pH-tester testen
De pH-schaal wordt gebruikt om de zuurgraad en basiciteit van een vloeistof te meten. Het kan waarden van 1-14 hebben, waarbij 1 de meest zure vloeistof aangeeft en 14 de meest basale vloeistof. 7 pH is voor neutrale stoffen die noch zuur noch basisch zijn. Nu speelt pH een zeer belangrijke rol in ons leven en wordt het in verschillende toepassingen gebruikt. Het kan bijvoorbeeld in een zwembad worden gebruikt om de waterkwaliteit te controleren. Evenzo wordt pH-meting gebruikt in een breed scala aan toepassingen, zoals landbouw, afvalwaterzuivering, industrieën, milieumonitoring, enz.
In dit project gaan we een Arduino pH-meter maken en leren hoe we de pH van een vloeibare oplossing kunnen meten met behulp van een zwaartekracht-pH-sensor en Arduino. Een 16x2 LCD wordt gebruikt om de pH-waarde op het scherm weer te geven. We zullen ook leren hoe u de pH-sensor moet kalibreren om de nauwkeurigheid van de sensor te bepalen. Dus laten we beginnen!
Vereiste componenten
- Arduino Uno
- 16 * 2 Alfanumeriek LCD
- I2C-module voor LCD
- Zwaartekracht Analoge pH-sensor
- Draden aansluiten
- Breadboard
Wat is de pH-waarde?
De eenheid die we gebruiken om de zuurgraad van een stof te meten, heet pH . De term "H" wordt gedefinieerd als de negatieve log van de waterstofionenconcentratie. Het pH-bereik kan waarden hebben van 0 tot 14. Een pH-waarde van 7 is neutraal, aangezien zuiver water een pH-waarde heeft van precies 7. Waarden lager dan 7 zijn zuur en waarden hoger dan 7 zijn basisch of alkalisch.
Hoe werkt de zwaartekracht analoge pH-sensor?
Analoge pH-sensor is ontworpen om de pH-waarde van een oplossing te meten en de zuurgraad of alkaliteit van de stof te tonen. Het wordt vaak gebruikt in verschillende toepassingen zoals landbouw, afvalwaterzuivering, industrieën, milieumonitoring, enz. De module heeft een ingebouwde spanningsregelaarchip die de brede spanningsvoorziening van 3,3-5,5 V DC ondersteunt, die compatibel is met 5 V en 3.3V van een besturingskaart zoals Arduino. Het uitgangssignaal wordt gefilterd door hardware met lage jitter.
Technische kenmerken:
Signaalconversiemodule:
- Voedingsspanning: 3.3 ~ 5.5V
- BNC-sonde-aansluiting
- Hoge nauwkeurigheid: ± 0,1 @ 25 ° C
- Detectiebereik: 0 ~ 14
PH elektrode:
- Bedrijfstemperatuurbereik: 5 ~ 60 ° C
- Nul (neutraal) punt: 7 ± 0,5
- Gemakkelijke kalibratie
- Interne weerstand: <250MΩ
pH-signaalconversiebord:
Pin Beschrijving:
V +: 5V DC-ingang
G: Aardpen
Po: pH analoge uitgang
Wel doen: 3.3V DC-uitgang
Aan: temperatuuruitvoer
pH-elektrode constructie:
De constructie van een pH-sensor is hierboven weergegeven. De pH-sensor ziet eruit als een staaf die gewoonlijk is gemaakt van glas met een punt die "glasmembraan" wordt genoemd. Dit membraan is gevuld met een bufferoplossing met een bekende pH (typisch pH = 7). Dit elektrode-ontwerp zorgt voor een omgeving met de constante binding van H + -ionen aan de binnenkant van het glasmembraan. Wanneer de sonde in de te testen oplossing wordt gedompeld, beginnen waterstofionen in de testoplossing uit te wisselen met andere positief geladen ionen op het glasmembraan, waardoor een elektrochemische potentiaal ontstaat over het membraan dat wordt toegevoerd aan de elektronische versterkermodule die het potentieel meet. tussen beide elektroden en zet deze om in pH-eenheden. Het verschil tussen deze potentialen bepaalt de pH-waarde op basis van de Nernst-vergelijking.
Nernst-vergelijking:
De vergelijking van Nernst geeft een verband tussen het celpotentiaal van een elektrochemische cel, temperatuur, reactiequotiënt en het standaard celpotentieel. In niet-standaard omstandigheden wordt de Nernst-vergelijking gebruikt om celpotentialen in een elektrochemische cel te berekenen. De Nernst-vergelijking kan ook worden gebruikt om de totale elektromotorische kracht (EMF) voor een volledige elektrochemische cel te berekenen. Deze vergelijking wordt ook gebruikt om de PH-waarde van een oplossing te berekenen. De reactie van de glaselektrode wordt bepaald door de Nernst-vergelijking die kan worden gegeven als:
E = E0 - 2,3 (RT / nF) ln Q waarbij Q = reactiecoëfficiënt E = mV-output van de elektrode E0 = nul-offset voor de elektrode R = ideale gasconstante = 8,314 J / mol-K T = temperatuur in ºK F = Constante van Faraday = 95.484,56 C / mol N = ionische lading
Arduino pH-meter schakelschema
Het schakelschema voor dit Arduino pH-meterproject wordt hieronder gegeven:
Verbinding van pH-signaalconversiebord met Arduino:
De verbinding tussen Arduino en PH-signaalconversiebord wordt weergegeven in de onderstaande tabel.
Arduino |
PH-sensorkaart |
5V |
V + |
GND |
G |
A0 |
Po |
Arduino programmeren voor pH-meter
Na succesvolle hardware-verbindingen is het nu tijd om de Arduino te programmeren. De volledige code voor deze pH-meter met Arduino staat onderaan deze tutorial. De stapsgewijze uitleg van het project wordt hieronder gegeven.
Het eerste dat u in het programma moet doen, is alle vereiste bibliotheken opnemen. Hier in mijn geval heb ik de bibliotheek " LiquidCrystal_I2C.h" toegevoegd voor het gebruik van de I2C-interface van een LCD-scherm en " Wire.h " voor het gebruik van I2C-functionaliteit op Arduino.
# omvatten
Vervolgens wordt de kalibratiewaarde gedefinieerd, die naar behoefte kan worden gewijzigd om een nauwkeurige pH-waarde van oplossingen te krijgen. (Dit wordt later in het artikel uitgelegd)
float calibratie_waarde = 21.34;
In setup () worden LCD-opdrachten geschreven voor het weergeven van een welkomstbericht op het LCD-scherm.
lcd.init (); lcd.begin (16, 2); lcd.backlight (); lcd.setCursor (0, 0); lcd.print ("Welkom bij"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); vertraging (2000); lcd.clear ();
Binnen loop (), lees 10 analoge voorbeeldwaarden en sla ze op in een array. Dit is nodig om de outputwaarde af te vlakken.
voor (int i = 0; i <10; i ++) {buffer_arr = analogRead (A0); vertraging (30); }
Sorteer vervolgens de ontvangen analoge waarden in oplopende volgorde. Dit is nodig omdat we het lopende gemiddelde van monsters in een latere fase moeten berekenen.
for (int i = 0; i <9; i ++) {for (int j = i + 1; j <10; j ++) {if (buffer_arr> buffer_arr) {temp = buffer_arr; buffer_arr = buffer_arr; buffer_arr = temp; }}}
Bereken tot slot het gemiddelde van een 6 middelste steekproef van analoge waarden. Deze gemiddelde waarde wordt vervolgens omgezet in de werkelijke pH-waarde en op een LCD-display afgedrukt.
voor (int i = 2; i <8; i ++) avgval + = buffer_arr; float volt = (float) avgval * 5.0 / 1024/6; float ph_act = -5,70 * volt + calibratiewaarde; lcd.setCursor (0, 0); lcd.print ("pH Val:"); lcd.setCursor (8, 0); lcd.print (ph_act); vertraging (1000); }
Kalibratie van pH-elektrode
Kalibratie van de PH-elektrode is erg belangrijk in dit project. Hiervoor hebben we een oplossing nodig waarvan de waarde bij ons bekend is. Dit kan worden beschouwd als de referentieoplossing voor de kalibratie van de sensor.
Stel dat we een oplossing hebben waarvan de PH-waarde 7 is (gedestilleerd water). Wanneer de elektrode nu in de referentieoplossing wordt gedompeld en de PH-waarde die op het LCD-scherm wordt weergegeven, is 6,5. Om het vervolgens te kalibreren, voegt u 7-6,5 = 0,5 toe aan de kalibratievariabele " calibratie_waarde" in de code. dwz maak de waarde 21,34 + 0,5 = 21,84 . Nadat u deze wijzigingen hebt aangebracht, uploadt u de code opnieuw naar Arduino en controleert u de pH opnieuw door de elektrode in de referentieoplossing te dompelen. Nu moet het LCD-scherm de juiste pH-waarde weergeven, dwz 7 (kleine variaties zijn aanzienlijk) . Pas deze variabele op dezelfde manier aan om de sensor te kalibreren. Controleer vervolgens op alle andere oplossingen om de exacte uitvoer te krijgen.
Arduino pH-tester testen
We hebben deze Arduino pH-meter geprobeerd door hem in zuiver water en citroenwater te dompelen, je kunt het resultaat hieronder zien.
Puur water:
Citroenwater:
Op deze manier kunnen we met Arduino een pH-sensor bouwen en deze gebruiken om de pH-waarde van verschillende vloeistoffen te controleren.
Volledige code en demonstratievideo worden hieronder gegeven.