@DrDiettrich - Das Arduino Mega hängt an einem 9V Netzteil. Um die Werte auszulesen, ist es noch über USB mit dem PC verbunden.
@uwefeld - Der Fehler beläuft sich maximal auf 1 pH-Wert abweichung. Meist jedoch im Nachkommastellenbereich (wenn die Sone länger in der Flüssigkeit war).
Mir geht es eigentlich darum zu verstehen wie dieser Passus in dem Handbuch zu verstehen sein soll:
Other Interfacing Alternatives
If you want maximum accuracy, you can use the RawSensorValue property from the PhidgetInterfaceKit. To adjust a
formula, substitute (SensorValue) with (RawSensorValue / 4.095)
If the sensor is being interfaced to your own Analog to Digital Converter and not a Phidget device, our formulas can
be modified by replacing (SensorValue) with (Vin * 200). It is important to consider the voltage reference and input
voltage range of your ADC for full accuracy and range.
PH-Sensoren brauchen einige Zeit bis sie ins Gleichgewicht kommen und richtig messen. Es sollte aber nicht länger als 30 S dauern.
Die Formel bezieht sich auf ein 12 Bit ADC. Der Arduino hat 10 Bit. Du mußt die Faktoren einer Kalibrationsgerade berechnen. Du mißt pH1 = 4 und pH2 = 7 und erhälst 2 ADC-Werte. Da erhälst Du die beiden Punkte ( ADC1 | 4 ) und ( ADC2 | 7 ) http://www.arndt-bruenner.de/mathe/9/geradedurchzweipunkte.htm
Mit den gefundenen Konstanten von Steigung und Offset kannst Du dann aus den gemessenen ADC einer Probelösung den PH-Wert ausrechnen.
Ungenauigkeiten können aus mehreren Quellen kommen:
der ADC des Arduino hat wenig Auflösung
die Ausgangsspannung bei Maximalwert des Verstärkers ist klein
die Temperatur hat einen Einfluß auf den pH Wert des Kalibrators
Verstärkung des pH-Verstärkers streut
Referenzspannung des Arduino weicht vom Sollwert ab
Welche ADC Werte Bekommst Du für die beiden Kalibratoren?
Welchen pH-Meßbereich willst Du abdecken?
Am einfachsten berechnest Du SensorValue = analogRead(pin) * 200.0 * Aref /1024, wobei Aref die eingestellte Referenzspannung des ADC ist. Mit Aref=Vcc hängt der Messwert von Vcc ab, deshalb sollte für genaue Messungen eine stabilere Referenz verwendet werden. Wenn Du die eingebaute 1,1V Referenz verwendest, siehe analogReference(), muß vermutlich ein Spannungsteiler die Eingangsspannung herunterteilen. Bei der 2,56V Referenz des Mega könnte es auch ohne gehen - in welchem Bereich liegt denn die zu messende Spannung?
Wie mißt Du die Temperatur der Flüssigkeit? Ohne die Temperaturkorrektur mußt Du Dich über größere Fehler nicht wundern.
Frag mal Deinen Apotheker, was die Haltbarkeit Deiner Lösungen betrifft. Ich könnte mir vorstellen, daß die schon durch Kontakt mit der Luft (CO2...) unbrauchbar werden können.
@uwefeld: Wenn ich es richtig verstehe, ich messe also die Spannungen meiner beiden Referenzlösungen pH-4 und pH-7 und berechne mit Hilfe der gemessenen Werte meine Gerade y = mx + b. Wobei x meine Spannung ist, m meine Steigung und b der Offset.
Hier habe ich allerdings jetzt nicht wie in der Anleitung die *200 eingefügt. Vermutlich brauche ich das allerdings noch, auch wenn ich nicht weis wozu.
Außerdem steht in der Anleitung folgende:
Die Formel für den pH-Wert ist angegeben mit: pH = 0.0178 * SensorValue - 1.889
In der Anleitung sagen sie dann auch, "einfach" SensorValue durch Vin200 ersetzen. Zu pH = 0.0178 * (Vin200) - 1.889.
Ich jetzt erstmal testen, was ich denn für Spannungswerte messe, damit man hier mal zunächst einen Anhaltspunkt hat.
Zum Thema Referenzspannung: Hier nutze ich einfach die 5V. In welchem Bereich die Spannung liegt messe ich die Tage aus.
Die Temperatur der Flüssigkeit wollte ich nicht messen, sondern nur die Umgebungstemperatur mit einem DHT22. Falls dies immer noch zu ungenau ist, muss ich ein Temperaturfühler kaufen, der sich in Flüssigkeiten nutzen lässt.