Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define PHpin A0
- // pH promenne
- float Healthy1_mv=1.96;
- float average=0;
- float mvReading=0;
- float PHValue=0;
- float mvReading_7=3.50; // hodnota vrácena sondou při kalibraci v roztoku pH7
- float mvReading_4=4.26; // hodnota vrácena sondou při kalibraci v roztoku pH4
- float Slope=0;
- float Vs=5;
- float offset=0;
- // Kelman filter
- float varVolt=1.12184278324081E-05;
- float varProcess=1e-9;
- float Pc=0.0;
- float G=0.0;
- float P=1.0;
- float Xp=0.0;
- float Zp=0.0;
- float Xe=0.0;
- void setup() {
- Serial.begin(115200);
- }
- void loop() {
- mereni_ph();
- delay(1000);
- }
- void mereni_ph()
- {
- Slope_calc();
- int i=0;
- unsigned long sum=0;
- long reading=0;
- average=0;
- while(i<=50){
- reading=analogRead(PHpin);
- sum=sum+reading;
- delay(2);
- i++;
- }
- average=sum/i;
- Pc=P + varProcess;
- G=Pc/(Pc + varVolt);
- P=(1-G)*Pc;
- Xp=Xe;
- Zp=Xp;
- Xe=G*(average-Zp)+Xp;
- mvReading=Xe*Vs/1024; //Converting to mV reading and then to pH
- Serial.println("");
- Serial.print("mvReading : ");
- Serial.println(mvReading);
- PHValue=(7-((mvReading_7-mvReading)*Slope));
- Serial.println("");
- Serial.print("PHValue : ");
- Serial.println(PHValue,1);
- Serial.println("------------------");
- }
- void Slope_calc()
- {
- offset=Healthy1_mv-mvReading_7;
- Slope=3/(Healthy1_mv-mvReading_4-offset);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement