Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino pH-meter

Componenten en benodigdheden

Arduino UNO
× 1
Atlas Scientific Gravity™ Analoge pH-sensor
× 1
Atlas Scientific Consumer Grade pH-sonde
× 1
20x4 LCD-module
× 1
158x90x60mm behuizing
× 1
Mini breadboard
× 1
Weerstand 220 ohm
× 1
Weerstand 1k ohm
× 1
11 mm afstandhouders en schroeven (meegeleverd met de pH-sensor)
× 4
Jumperdraden
× 1
Acryl plaat (plexiglas)
× 1

Benodigde gereedschappen en machines

Boor, boren, freesbits voor gipsplaten, vijlen, schroevendraaiers, bankschroef, lintzaag, lijmpistool en lijmstift, soldeerbout en soldeer, digitale schuifmaat, liniaal

Apps en online services

Arduino IDE

Over dit project

In dit project zullen we een benchtop pH-meter maken met behulp van het Gravity analoge pH-circuit en de sonde van Atlas Scientific en een Arduino Uno. De meetwaarden worden weergegeven op een liquid crystal display (LCD).

Opmerking:

- Deze meter is ontwikkeld op een Windows-computer. Het is niet getest op Mac.

- De behuizing is niet waterdicht.

Stap 1:Behuizing voorbereiden

Veiligheid :Denk eraan om voorzichtig te zijn bij het hanteren van gereedschappen/machines en om de juiste veiligheidsuitrusting te dragen, zoals een veiligheidsbril, handschoenen en ademhalingstoestellen.

De gebruikte behuizing is een behuizing van ABS-kunststof. Het moet worden aangepast voor de pH-meter.

Snijd de opening voor het LCD-scherm

a) Het LCD-scherm wordt in het bovenste gedeelte (deksel) van de behuizing geplaatst. Centreer een rechthoek van 98x40 mm op de omslag.

b) Plaats het stuk in de bankschroef en boor een geleidegat van 3,2 mm (1/8") in de rechthoek die was gemarkeerd.

c) Gebruik dit geleidegat als startpunt voor de 3,2 mm (1/8") gipsplaatfrees. Aangezien dit een kleine klus is, zullen we de bit op de handboor gebruiken in plaats van op een gipsplaatfrees. Werk aan de binnenkant van de rechthoek in plaats van de lijnen, omdat het een beetje moeilijk kan zijn om op een rechte manier te snijden met dit bit op de boor.

d) Gebruik vervolgens een handvijl om het overtollige materiaal te verwijderen en vorm de rechthoek tot de gewenste maat.

Snijd openingen voor BNC-connector en Arduino-poorten

De openingen voor de BNC-connector en Arduino-poorten bevinden zich aan de zijkant van het onderste gedeelte van de behuizing.

a) Markeer met behulp van de onderstaande afmetingen het middelpunt voor de cirkel en de omtreklijnen voor de twee rechthoeken.

b) Plaats het stuk in de bankschroef en snijd de openingen. De ronde opening is gemaakt met behulp van boren. De rechthoekige worden gemaakt door een soortgelijk proces te volgen dat wordt gebruikt om de opening voor het LCD-scherm te maken.

Plaats de basisplaat om componenten te monteren

De basisplaat wordt gebruikt om de Arduino, pH-sensor en mini-breadboard te monteren. 3,2 mm dikke acrylplaat wordt gebruikt.

a) Snijd met een lintzaag de acrylplaat op 135x62,5 mm.

b) Markeer de posities voor de vier gaten zoals hieronder weergegeven. Boor gaten met een diameter van 2,38 mm (3/32"). Verzink de gaten aan één kant van de plaat tot een diepte van 3 mm en een diameter van 4,4 mm (11/64"). Dit is nodig om een ​​vlakke ondergrond te behouden wanneer de schroeven worden ingebracht om de afstandhouders vast te houden.

c) Bevestig de 11 mm afstandhouders met behulp van de meegeleverde schroeven. De pH-sensor wordt geleverd met 4 afstandhouders en schroeven. Gebruik er twee voor de Arduino.

Stap 2:installeer elektronica in behuizing

a) Plaats de grondplaat in het onderste gedeelte van de behuizing. Op zijn plaats houden met schroeven of hete lijm.

b) Monteer de pH-sensor op de grondplaat. Zet vast aan afstandhouders met schroeven.

c) Monteer de Arduino Uno op de grondplaat. Zet vast aan afstandhouders met schroeven.

d) Plaats de mini-broodplank op de basisplaat.

e) Soldeer de header-pinnen op het LCD-scherm (pinnen meegeleverd). Plaats het LCD-scherm in het bovenste gedeelte van de behuizing en gebruik wat hete lijm om het scherm op zijn plaats te houden.

Stap 3:Bedraad elektronica samen

Bedraad de componenten worden getoond in het bovenstaande schema.

Gebruik het mini breadboard voor de 1kΩ en 220Ω en voor het distribueren van de Arduino's 5V en grondpennen.

De twee weerstanden worden gebruikt om het schermcontrast in te stellen.

Gegevensbladen

Zwaartekracht pH-sensor, pH-sonde

Stap 4:Voltooi de montage

Nadat de bedrading is voltooid:

a) Zet de boven- en onderkant van de behuizing in elkaar met behulp van de meegeleverde schroeven.

b) Sluit de sonde aan op de BNC-connector.

Stap 5:Upload code naar Arduino Uno

De code voor dit project maakt gebruik van aangepaste bibliotheken en header-bestanden. Je moet ze toevoegen aan je Arduino IDE om de code te gebruiken. De onderstaande stappen omvatten het proces om deze toevoeging aan de IDE te maken.

a) Sluit de Arduino aan op uw computer en open de IDE. De IDE kan via deze LINK worden gedownload als u deze niet heeft. Ga naar Tools -> Board -> Selecteer Arduino/Genuino Uno . Ga naar Extra -> Poort -> selecteer de poort waar de Arduino op is aangesloten.

b) Liquid Crystal Display-bibliotheek toevoegen:Ga in de IDE naar Schets -> Bibliotheek opnemen -> Bibliotheken beheren . Typ "liquidcrystal" in de zoekbalk van de Bibliotheekmanager. Zoek naar het pakket met de titel "LiquidCrystal Built-in by Arduino, Adafruit". Het kan al dan niet worden geïnstalleerd. Als dat niet het geval is, selecteert u het pakket en klikt u op installeren .

c) Atlas Gravity-sensorbibliotheek toevoegen:Download het zipbestand via de volgende LINK. Het bestand wordt opgeslagen als "Atlas_gravity.zip". Ga in de IDE naar Sketch -> Include library -> Add.ZIP Library . Zoek het bestand "Atlas_gravity.zip" en selecteer om toe te voegen.

d) Vervolgens moeten we de code voor de pH-meter toevoegen. Kopieer de code van deze LINK naar het IDE-werkpaneel.

e) Compileer en upload de code naar de Arduino.

f) De pH-waarden worden dan weergegeven op het LCD-scherm. U kunt de meetwaarden ook bekijken op de seriële monitor. Om de seriële monitor te openen, gaat u naar Extra -> Seriële monitor of druk op Ctrl+Shift+M op je toetsenbord. Stel de baudrate in op 9600 en selecteer "Carriage return".

Stap 6:pH-sensor kalibreren

Opmerking:als u van plan bent een externe voeding voor de Arduino te gebruiken, sluit deze dan aan op de Arduino voordat u de kalibratie uitvoert. Dit zorgt ervoor dat de referentieniveaus correct zijn ingesteld, wat zal helpen bij de juiste kalibratie.

Deze pH-meter kan worden gekalibreerd op een-, twee- of driepuntskalibratie. Standaard bufferoplossingen (pH 4, 7 en 10) zijn vereist

De seriële monitor wordt gebruikt voor het kalibratieproces. De gebruiker kan de geleidelijke verandering in meetwaarden observeren naarmate ze stabiliseren en de juiste commando's sturen.

Kalibratiegegevens worden opgeslagen in de EEPROM van de Arduino.

Kalibratieopdrachten

Laagste punt:cal, 4

Middelpunt:cal, 7

Hoogtepunt:cal, 10

Kalibratie wissen:cal, clear

Stappen

a) Verwijder de soaker-fles en spoel de pH-sonde af.

b) Giet een deel van de pH 4-oplossing in een kopje. Zorg ervoor dat er genoeg is om het detectiegebied van de sonde te bedekken.

c) Plaats de sonde in de beker en roer deze rond om ingesloten lucht te verwijderen. Let op de aflezingen op de seriële monitor. Laat de sonde in de oplossing zitten totdat de meetwaarden stabiliseren (een kleine beweging van de ene meting naar de volgende is normaal)

d) Nadat de meetwaarden zijn gestabiliseerd, voert u het commando cal, 4 . in in de seriële monitor. Kalibratie naar pH 4 is nu voltooid.

Herhaal stap a-d voor pH7 en pH10. Vergeet niet om de sonde te spoelen terwijl u doorgaat met verschillende bufferoplossingen.

Hoe zit het met temperatuurcompensatie?

De in dit project gebruikte sensor heeft een nauwkeurigheid van +/- 0,2%. De pH-meter werkt binnen deze nauwkeurigheid in het temperatuurbereik van 7 - 46°C. Buiten dit bereik moet de meter worden aangepast voor temperatuurcompensatie. Opmerking:de pH-sonde kan worden blootgesteld aan een bereik van 1 − 60 °C.

Code

  • code arduino pH-meter
code arduino pH-meterC/C++
/*Na het uploaden opent u de seriële monitor, stelt u de baudrate in op 9600 en voegt u "Carriage return" toe. Met de code kan de gebruiker realtime pH-metingen observeren en de sensor kalibreren. Een-, twee- of driepunts kalibratie kan worden uitgevoerd. Kalibratieopdrachten:low-point:"cal,4" mid-point:"cal,7" high-point:"cal,10" clear kalibratie:"cal,clear"*/#include "ph_grav. h" //headerbestand voor Atlas Scientific zwaartekracht pH-sensor #include "LiquidCrystal.h" //headerbestand voor liquid crystal display (lcd)String inputstring =""; // een string om inkomende gegevens van de PCboolean te bewaren input_string_complete =false; // een vlag om aan te geven dat we alle gegevens hebben ontvangen van de PCchar inputstring_array [10]; // een char-array die nodig is voor het parseren van stringsGravity_pH pH =A0; // wijs analoge pin A0 van Arduino toe aan klasse Gravity_pH. sluit de uitgang van de pH-sensor aan op pin A0LiquidCrystal pH_lcd(2, 3, 4, 5, 6, 7); // maak een variabele pH_lcd en wijs arduino digitale pinnen toe aan lcd-pinnen (2 -> RS, 3 -> E, 4 tot 7 -> D4 tot D7) void setup () {Serial.begin (9600); // schakel seriële poort pH_lcd.begin (20, 4) in; // start lcd-interface en definieer lcd-formaat (20 kolommen en 4 rijen) pH_lcd.setCursor (0,0); // plaats de cursor op het scherm in kolom 1, rij 1 pH_lcd.print("--------------------"); // tekens weergeven pH_lcd.setCursor (0,3); // plaats de cursor op het scherm in kolom 1, rij 4 pH_lcd.print("--------------------"); // tekens weergeven pH_lcd.setCursor (5, 1); // plaats de cursor op het scherm in kolom 6, rij 2 pH_lcd.print ("pH Reading"); //display "pH Reading" if (pH.begin()) { Serial.println("Geladen EEPROM");} Serial.println(F("Gebruik commando's \"CAL,4\", \"CAL,7\ ", en \"CAL,10\" om het circuit te kalibreren op die respectieve waarden")); Serial.println(F("Gebruik het commando \"CAL,CLEAR\" om de kalibratie te wissen")); }void serialEvent() {//als de hardware seriële poort_0 een char ontvangt inputstring =Serial.readStringUntil(13); //lees de string totdat we een  input_string_complete =true zien; // stel de vlag in die wordt gebruikt om te zien of we een voltooide string van de pc hebben ontvangen} void loop () { if (input_string_complete ==true) { // controleer of gegevens zijn ontvangen inputstring.toCharArray (inputstring_array, 30); //converteer de string naar een char-array parse_cmd (inputstring_array); // stuur gegevens naar pars_cmd functie input_string_complete =false; // reset de vlag die wordt gebruikt om te zien of we een voltooide string hebben ontvangen van de pc inputstring =""; // wis de string} Serial.println (pH.read_ph ()); // voer pH-waarde uit naar seriële monitor pH_lcd.setCursor (8, 2); // plaats de cursor op het scherm in kolom 9, rij 3 pH_lcd.print(pH.read_ph()); // voer pH uit naar lcd-vertraging (1000);} void parse_cmd (char * string) { // Voor het aanroepen van kalibratiefuncties strupr (string); //converteer invoertekenreeks naar hoofdletters if (strcmp (tekenreeks, "CAL,4") ==0) { // vergelijk gebruikersinvoertekenreeks met CAL,4 en als ze overeenkomen, gaat u verder met pH.cal_low(); //call-functie voor low-point kalibratie Serial.println ("LOW CALIBRATED"); } else if (strcmp(string, "CAL,7") ==0) { //vergelijk de gebruikersinvoerstring met CAL,7 en als ze overeenkomen, ga dan verder met pH.cal_mid(); //call-functie voor middelpunt kalibratie Serial.println ("MID CALIBRATED"); } else if (strcmp(string, "CAL,10") ==0) { //vergelijk de gebruikersinvoerstring met CAL,10 en als ze overeenkomen, ga dan verder met pH.cal_high(); //call-functie voor highpoint-kalibratie Serial.println ("HIGH CALIBRATED"); } else if (strcmp(string, "CAL,CLEAR") ==0) { //vergelijk de gebruikersinvoerstring met CAL,CLEAR en als ze overeenkomen, ga dan verder met pH.cal_clear(); //call-functie voor het wissen van de kalibratie Serial.println ("CALIBRATION CLEARED"); }}

Schema's


Productieproces

  1. Arduino Spybot
  2. FlickMote
  3. Zelfgemaakte tv B-Gone
  4. Hoofdklok
  5. Vind mij
  6. Arduino Power
  7. Tech-TicTacToe
  8. Arduino Quadruped
  9. Arduino-joystick
  10. CNC-machine
  11. Earth_Analyzer