±âŸ: ¹æ¼ö ÇÁ·Îºê
ÆÐÅ°Áö Æ÷ÇÔ:
1 x TDS ½ÅÈ£ ¾î´ðÅÍ º¸µå
1 x ¹æ¼ö TDS ÇÁ·Îºê
1 x ¾Æ³¯·Î±× ¼¾¼ ¶óÀÎ
¼Ò½º ÄÚµå:
# Define TdsSensorPin A1
# Define kValue 1.8/kValue = tds¸¦ ¾ò±â À§ÇØ Ä¶¸®calibratds/ÃøÁ¤ÀÇ °ª
# Define VREF 5.0/adcÀÇ ¾Æ³¯·Î±× ±âÁØ Àü¾Ð (º¼Æ®)
# Á¤ÀÇ SCOUNT 30/»ùÇà Æ÷ÀÎÆ®ÀÇ ÇÕ°è
Int analogBuffer[SCOUNT]; //adc¿¡¼ ÀÐÀº ¹è¿¿¡ ÀÖ´Â ¾Æ³¯·Î±× °¡Ä¡¸¦ ÀúÀåÇϽʽÿÀ
Int analogBufferTemp[SCOUNT];
Int analogBufferIndex = 0, copyIndex = 0;
Ç÷ÎÆ® averageVoltage = 0, tdsValue = 0, ¿Âµµ = 25;
Void ¼³Á¤ ()
{
Serial.begin(115200);
PinMode (tdsensorpin, ÀÔ·Â);
}
Void ·çÇÁ ()
{
Á¤Àû unsigned ±ä analogSampleTimepoint = ¹Ð¸® ();
(¹Ð¸® ()-analogSampleTimepoint > 40U) /40 ¹Ð¸®Ãʸ¶´Ù adc¿¡¼ ¾Æ³¯·Î±× °ªÀ» ÀÐÀ¸½Ê½Ã¿À
{
AnalogSampleTimepoint = ¹Ð¸® ();
AnalogBuffer [analogBufferIndex] = analogRead (tdsensorpin); /¾Æ³¯·Î±× °ªÀ» ÀÐ°í ¹öÆÛ·Î ÀúÀåÇϽʽÿÀ
AnalogBufferIndex ++;
If(analogBufferIndex = = SCOUNT)
AnalogBufferIndex = 0;
}
Á¤Ã¼µÇÁö ¾ÊÀº ±ä printTimepoint = ¹Ð¸® ();
If (¹Ð¸® ()-printTimepoint > 800U)
{
PrintTimepoint = ¹Ð¸® ();
For(copyIndex = 0;copyIndex
AnalogBufferTemp [copyIndex]= analogBuffer[copyIndex];
AverageVoltage = getMedianNum(analogBufferTemp,SCOUNT) * (float)VREF / 1024.0; /median ÇÊÅ͸µ ¾Ë°í¸®Áò¿¡ ÀÇÇØ ´õ ¾ÈÁ¤ÀûÀÎ ¾Æ³¯·Î±× °ªÀ» Àаí Àü¾Ð °ªÀ¸·Î º¯È¯
ºÎÀ¯¹° º¸»ó °è¼ö = 1.0 + 0.02 * (¿Âµµ-25.0); /¿Âµµ º¸»ó °ø½Ä: ffinalconsuress (25 ^ C) = ffinalrecient (ÇöÀç)/(1.0 + 0.02 *(fTP-25.0));
ºÎÀ¯¹° º¸»ó volatge = averageVoltage/º¸»ó °è¼ö;/¿Âµµ º¸»ó
TdsValue =(133.42 * º¸»ó volatge * º¸»ó volatge * º¸»ó volatge-255.86 * º¸»ó volatge * º¸»ó volatge + 857.39 * º¸»ó volatge) * 0.5 * kValue; /tds °ªÀ¸·Î Àü¾Ð °ªÀ» º¯È¯
/Serial.print("Àü¾Ð:");
/Serial.print(averageVoltage,2);
/Serial.print("V");
Serial.print("TDS °ª:");
Serial.print(tdsValue,0);
Serial.println("ppm");
}
}
Int getMedianNum(int getMedianNum)
{
Int bTab[iFilterLen];
¸¦ À§ÇØ (¹ÙÀÌÆ® i = 0; i
BTab [i] = bArray[i];
Int i, j, bTemp;
(J = 0; j < iFilterLen - 1; j + +)
{
(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];
´Ù¸¥
BTemp = (bTab[iFilterLen / 2] + bTab[iFilterLen / 2 - 1]) / 2;
¹Ýȯ bTemp;
}
¿¬°á »çÁø
Á¦Ç° »çÁø