±âŸ: ¹æ¼ö ÇÁ·Îºê
ÆÐÅ°Áö Æ÷ÇÔ:
1 x TDS ½ÅÈ£ ¾î´ðÅÍ º¸µå
1 x ¹æ¼ö TDS ÇÁ·Îºê
¾Æ³¯·Î±× ¼¾¼ ¶óÀÎ 1 °³
¼Ò½º ÄÚµå:
# Á¤ÀÇ TdsSensorPin A1
# KValue 1.8 Á¤ÀÇ // kValue = ±³Á¤±â TDS/ÃøÁ¤ °ª TDS ¾ò±â
# AdcÀÇ VREF 5.0/¾Æ³¯·Î±× ±âÁØ Àü¾Ð (º¼Æ®) Á¤ÀÇ
# Scountt 30/»ùÇà Æ÷ÀÎÆ® ÇÕ°è Á¤ÀÇ
Int ¾Æ³¯·Î±× ¹öÆÛ [°èÁ¤]; // adc¿¡¼ ÀÐÀº ¹è¿¿¡ ¾Æ³¯·Î±× °ªÀ» ÀúÀåÇÕ´Ï´Ù.
Int ¾Æ³¯·Î±× ¹öÆÛ ¿Âµµ [s Ä«¿îÆ®];
Int ¾Æ³¯·Î±× ¹öÆÛ À妽º = 0, copyIndex = 0;
Ç÷ÎÆ® Æò±Õ Àü¾Ð = 0, tdsValue = 0, ¿Âµµ = 25;
¹«È¿ ¼³Á¤ ()
{B
½Ã¸®¾ó. ½ÃÀÛ (115200);
Çɸðµå (TdsSensorPin, ÀÔ·Â),
}
¹«È¿ ·çÇÁ ()
{B
°íÁ¤µÇÁö ¾ÊÀº ±ä ¾Æ³¯·Î±× »ùÇà ŸÀÓ Æ÷ÀÎÆ® = millis();
If(millis()-¾Æ³¯·Î±× »ùÇà ŸÀÓ Æ÷ÀÎÆ®> 40U) // 40 ¹Ð¸®Ãʸ¶´Ù adc¿¡¼ ¾Æ³¯·Î±× °ªÀ» ÀÐÀ¸½Ê½Ã¿À.
{B
¾Æ³¯·Î±× »ùÇà ŸÀÓ Æ÷ÀÎÆ® = ¹Ð¸®½º ();
¾Æ³¯·Î±× ¹öÆÛ [¾Æ³¯·Î±× ¹öÆÛ À妽º] = ¾Æ³¯·Î±× (TdsSensorPin), // ¾Æ³¯·Î±× °ªÀ» ÀÐ°í ¹öÆÛ¿¡ ÀúÀå
¾Æ³¯·Î±× ¹öÆÛ À妽º +
If (¾Æ³¯·Î±× ¹öÆÛ À妽º = = Ä«¿îÆ®)
¾Æ³¯·Î±× ¹öÆÛ À妽º = 0;
}
Á¤Àû ¼¸íµÇÁö ¾ÊÀº ±ä ÇÁ¸°Æ® ŸÀÓ Æ÷ÀÎÆ® = millis();
If(millis()-printTimepoint > 800U)
{B
PrintTimepoint = millis();
¿¡ ´ëÇÑ (copyIndex = 0;copyIndex
¾Æ³¯·Î±× ¹öÆÛ ¿Âµµ [copyIndex]= ¾Æ³¯·Î±× ¹öÆÛ [copyIndex];
Æò±Õ Àü¾Ð = getmedianum (¾Æ³¯·Î±× ¹öÆÛ ¿Âµµ, s Ä«¿îÆ®) * (Ç÷ÎÆ®) VREF / 1024.0; // median ÇÊÅ͸µ ¾Ë°í¸®ÁòÀ¸·Î º¸´Ù ¾ÈÁ¤ÀûÀÎ ¾Æ³¯·Î±× °ªÀ» Àаí Àü¾Ð °ªÀ¸·Î º¯È¯ÇÕ´Ï´Ù.
Ç÷ÎÆ® º¸Á¤ °è¼ö = 1.0 + 0.02 * (¿Âµµ-25.0); // ¿Âµµ º¸Á¤ °ø½Ä: fFinalResult(25 ^ C) = fFinalResult (ÇöÀç)/(1.0 + 0.02 *(fTP-25.0);
Ç÷ÎÆ® º¸Á¤ Àü¾Ð = Æò±Õ Àü¾Ð/º¸Á¤ °è¼ö, // ¿Âµµ º¸Á¤
TdsValue =(133.42 * º¸Á¤ Àü¾Ð * º¸Á¤ Àü¾Ð * º¸Á¤ Àü¾Ð-255.86 * º¸Á¤ Àü¾Ð * º¸Á¤ Àü¾Ð 857.39 * º¸Á¤ Àü¾Ð) * 0.5 * kValue; // Àü¾Ð °ªÀ» tds °ªÀ¸·Î º¯È¯
// ½Ã¸®¾ó. Àμâ ("Àü¾Ð:");
// ½Ã¸®¾ó. Àμâ (Æò±Õ Àü¾Ð, 2);
// ½Ã¸®¾ó. Àμâ ("V");
½Ã¸®¾ó. Àμâ ("TDS °ª:");
½Ã¸®¾ó. Àμâ (tdsValue,0), tdsValue
½Ã¸®¾ó. println("ppm"),
}
}
Int getmedianum (int bArray[], int iFilterLen)
{B
Int bTab[iFilterLen];
(¹ÙÀÌÆ® i = 0; i
BTab [i] = bArray[i];
Int i, j, bTemp;
For (j = 0; j < iFilterLen - 1; j ++)
{B
For (i = 0; i < iFilterLen - j - 1; i ++)
{B
If (bTab[i] > bTab[i + 1])
{B
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;
¹Ýȯ ¿Âµµ;
}
ÂüÁ¶ ¿ë ¿¬°á »çÁø
Á¦Ç° »çÁø