Herramientas de usuario

Herramientas del sitio


sensores:phmether

¡Esta es una revisión vieja del documento!


Medidor de PH. El pH es una medida de acidez o alcalinidad de una disolución. El pH indica la concentración de iones hidronio [H3O+] presentes en determinadas sustancias. Este kit permite medir de forma sencilla el pH de un líquido gracias a su placa controladora que ofrece un valor analógico proporcional a la medición. El controlador tiene un potenciometro multivuelta que permite la correcta calibración de la sonda.

Se recomienda limpiar bien la sonda en cada cambio de medición para no alterar su precisión. Ten en cuenta que está diseñada para mediciones puntutales (no permanentes). Si buscas una sonda más duradera, disponemos de una versión profesional aquí.

La sonda es bastante frágil y por lo tanto debe ser tratada con amor y cariño! Incluye una muestra con pH 4.0 para calibrarla y dado que la salida de la placa ofrece un valor analógico, es muy sencillo utilizarla con tu microcontrolador favorito con tan solo una entada ADC.

Características:

  Alimentación: 5.00V
  Dimensiones: 43x32mm (controlador)
  Rango de medición: 0-14 pH
  Temperatura de medición: 0-60 ℃
  Precisión: ± 0.1pH (25 ℃)
  Tiempo de respuesta: ≤ 1min
  Sonda de pH con conector BNC
  Controlador pH 2.0 (3 pines)
  Ajuste de ganancia
  Indicador LED

http://www.instructables.com/id/Vertical-Hydroponic-Farm/?ALLSTEPS

http://tienda.bricogeek.com/otros/581-sensor-analogico-de-ph.html

/*

# This sample code is used to test the pH meter V1.0.

# Editor : YouYou

# Ver : 1.0

# Product: analog pH meter

# SKU : SEN0161

*/

#define SensorPin A0 pH meter Analog output to Arduino Analog Input 0 #define Offset 0.00 deviation compensate

#define LED 13

#define samplingInterval 20

#define printInterval 800

#define ArrayLenth 40 times of collection int pHArray[ArrayLenth]; Store the average value of the sensor feedback

int pHArrayIndex=0;

void setup(void)

{

pinMode(LED,OUTPUT);  
Serial.begin(9600);  
Serial.println("pH meter experiment!");    //Test the serial monitor

}

void loop(void)

{

static unsigned long samplingTime = millis();
static unsigned long printTime = millis();
static float pHValue,voltage;
if(millis()-samplingTime > samplingInterval)
{
    pHArray[pHArrayIndex++]=analogRead(SensorPin);
    if(pHArrayIndex==ArrayLenth)pHArrayIndex=0;
    voltage = avergearray(pHArray, ArrayLenth)*5.0/1024;
    pHValue = 3.5*voltage+Offset;
    samplingTime=millis();
}
if(millis() - printTime > printInterval)   //Every 800 milliseconds, print a numerical, convert the state of the LED indicator
{
Serial.print("Voltage:");
      Serial.print(voltage,2);
      Serial.print("    pH value: ");
Serial.println(pHValue,2);
      digitalWrite(LED,digitalRead(LED)^1);
      printTime=millis();
}

}

double avergearray(int* arr, int number){

int i;
int max,min;
double avg;
long amount=0;
if(number<=0){
  Serial.println("Error number for the array to avraging!/n");
  return 0;
}
if(number<5){   //less than 5, calculated directly statistics
  for(i=0;i<number;i++){
    amount+=arr[i];
  }
  avg = amount/number;
  return avg;
}else{
  if(arr[0]<arr[1]){
    min = arr[0];max=arr[1];
  }
  else{
    min=arr[1];max=arr[0];
  }
  for(i=2;i<number;i++){
    if(arr[i]<min){
      amount+=min;        //arr<min
      min=arr[i];
    }else {
      if(arr[i]>max){
        amount+=max;    //arr>max
        max=arr[i];
      }else{
        amount+=arr[i]; //min<=arr<=max
      }
    }//if
  }//for
  avg = (double)amount/(number-2);
}//if
return avg;

}

sensores/phmether.1443321498.txt.gz · Última modificación: por noble