Sensor sólidos disueltos agua TDS (ref: 0448)

13,95 

Hay existencias

SKU: 0448 Categorías: , Etiquetas: , , , , , ,

Descripción

Sensor del valor total de sólidos disueltos (TDS, Total Dissolved Solids) en agua, modelo KS0429 (KS-0429), como parámetro relacionado con la limpieza del agua. En general, un mayor nivel de TDS implica un mayor nivel de sólidos disueltos en agua y, por lo tanto, menos nivel de limpieza.

Especificaciones:

  • Tensión de alimentación: 3,3V / 5V
  • Consumo de corriente: 3-6mA
  • Rango de detección: 0-1000ppm (salida 0-2,3V)
  • Error: +/-10% FS
  • Sensor: tipo agua, 60cm de cable, impermeable

Más información: Hoja de datos KS0429

Código de ejemplo:

#define TdsSensorPin A1
#define VREF 5.0 // Referencia del ADC
int analogBuffer[SCOUNT]; Almacenamiento de datos en buffer
int analogBufferTemp[SCOUNT];
int analogBufferIndex = 0,copyIndex = 0;
float averageVoltage = 0,tdsValue = 0,temperature = 25;
// *** CONFIGURACIÓN ***
void setup() {
  Serial.begin(9600); // Monitor serie a 9600bps
  pinMode(TdsSensorPin,INPUT);
}
// *** CÓDIGO PRINCIPAL ***
void loop() {
  static unsigned long analogSampleTimepoint = millis();
  if(millis()-analogSampleTimepoint > 40U) { //Cada 40 ms, lee el ADC
     analogSampleTimepoint = millis();
     analogBuffer[analogBufferIndex] = analogRead(TdsSensorPin); //Lee ADC y lo guarda en el buffer
     analogBufferIndex++;
     if(analogBufferIndex == SCOUNT)  analogBufferIndex = 0;
  }
  static unsigned long printTimepoint = millis();
  if(millis()-printTimepoint > 800U) {
     printTimepoint = millis();
     for(copyIndex=0;copyIndex<SCOUNT;copyIndex++) analogBufferTemp[copyIndex]= analogBuffer[copyIndex];
     averageVoltage = getMedianNum(analogBufferTemp,SCOUNT) * (float)VREF/ 1024.0; // read the analog value more stable by the median filtering algorithm, and convert to voltage value
     float compensationCoefficient=1.0+0.02*(temperature-25.0); //temperature compensation formula: fFinalResult(25^C) = fFinalResult(current)/(1.0+0.02*(fTP-25.0));
     float compensationVolatge=averageVoltage/compensationCoefficient; //temperature compensation
     tdsValue=(133.42*compensationVolatge*compensationVolatge*compensationVolatge - 255.86*compensationVolatge*compensationVolatge + 857.39*compensationVolatge)*0.5; //convert voltage value to tds value
   //Serial.print("voltage:");
   //Serial.print(averageVoltage,2);
   //Serial.print("V ");
   Serial.print("TDS Value:");
   Serial.print(tdsValue,0);
   Serial.println("ppm");
  }
}
// *** FUNCIONES ***
int getMedianNum(int bArray[], int iFilterLen) {
  int bTab[iFilterLen];
  for (byte i = 0; i<iFilterLen; i++) bTab[i] = bArray[i];
  int i, j, bTemp;
  for (j = 0; j < iFilterLen - 1; j++) {
     for (i = 0; i < iFilterLen - j - 1; i++) {
       if (bTab[i] > bTab[i + 1]) {
          bTemp = bTab[i];
          bTab[i] = bTab[i + 1];
          bTab[i + 1] = bTemp;
       }
     }
  }
  if ((iFilterLen & 1) > 0)   bTemp = bTab[(iFilterLen - 1) / 2];
  else bTemp = (bTab[iFilterLen / 2] + bTab[iFilterLen / 2 - 1]) / 2;
return bTemp;
}

Valoraciones

No hay valoraciones aún.

Solo los usuarios registrados que hayan comprado este producto pueden hacer una valoración.

También te recomendamos…