¼Ò°³
TDS ¹ÌÅÍ´Â ½Ä¼ö Ç°Áú ÃøÁ¤¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ¼öµ¾¹° tds´Â 100 À̳»ÀÌ°í Á¤Á¦¼ö´Â 10 À̳»ÀÔ´Ï´Ù.
Tds´Â ÃÑ ¿ëÁ¸ °íü·Î ¾Ë·ÁÁ® ÀÖÀ¸¸ç, 1 ¸®ÅÍÀÇ ¹°¿¡ ¸î ¹Ð¸®±×·¥ÀÇ ¿ëÇØ °íü°¡ ¿ëÇصǾúÀ½À» ³ªÅ¸³À´Ï´Ù. ÀϹÝÀûÀ¸·Î TDS °ªÀÌ ³ôÀ»¼ö·Ï °íü°¡ ¹° ¼Ó¿¡ ´õ ¸¹ÀÌ Æ÷ÇԵǾî ÀÖ°í ¹°ÀÌ ´õ ´õ·¯¿öÁý´Ï´Ù. µû¶ó¼ tdsÀÇ Å©±â´Â ¹°ÀÇ Ã»°áÀ» ¹Ý¿µÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¾ç
? ? ? ¸ðµâ:
-Àü¿ø ÀÔ·Â: 3.3 ~ 5.5V
-TDS ÃøÁ¤ ¹üÀ§: 0 ~ 1000ppm
-TDS ÃøÁ¤ Á¤È®µµ: ¡¾ 10% F.S. (25 °C)
¸ðµâ ÀÎÅÍÆäÀ̽º: XH-2.54, 3 ÇÉ
ÇÁ·Îºê ÀÎÅÍÆäÀ̽º: XH-2.54 2 ÇÉ
? ? ?
? ? ? TDS ÇÁ·Îºê:
-±âŸ: ¹æ¼ö ÇÁ·Îºê
Áöħ
1. ÄÁÆ®·Ñ·¯¸¦ ¿¬°áÇÏ´Â ¹æ¹ý?
![](https://ae01.alicdn.com/kf/S73ec4430ab91412d8a2755aef927c20dv.jpg)
2. TDS °ªÀ» ÃøÁ¤Çϱâ À§ÇØ MCU, STM32 µîÀ» »ç¿ëÇÏ´Â ¹æ¹ý?
TdsValue =(133.42 * º¸Á¤ Àü¾Ð * º¸Á¤ Àü¾Ð * º¸Á¤ Àü¾Ð-255.86 * º¸Á¤ Àü¾Ð * º¸Á¤ Àü¾Ð + 857.39 * º¸Á¤ Àü¾Ð) * 0.5 * kValue;
Kvalue´Â ¿ì¸® Á¦Ç°ÀÇ ±³Á¤ °è¼ö (Ç¥ÁØ °ª/ÃøÁ¤ °ª) À̸ç, ¾à 1.8 ÀÔ´Ï´Ù.
º¸»ó Àü¾ÐÀº ÃøÁ¤ ±¤°í Àü¾Ð ¼öÁØÀ¸·Î V (Àü¾Ð) ´ÜÀ§·Î ÃøÁ¤µË´Ï´Ù.
¿¹¹æ
1. ¿©±â ¼Ò½º´Â AC ½ÅÈ£·Î ÇÁ·Îºê Æí±¤À» È¿°úÀûÀ¸·Î ¹æÁöÇÕ´Ï´Ù.
2. TDS ÇÁ·Îºê´Â 55 °C ÀÌ»óÀÇ ¹°¿¡¼ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
3. TDS ÇÁ·Îºê ¹èÄ¡ Çؼ´Â ³Ê¹« °¡ÀåÀÚ¸®¿¡ ÄÁÅ×À̳Ê, ¿µÇâÀ» ¹ÌĨ´Ï´Ù.
4. TDS ÇÁ·ÎºêÀÇ Çìµå¿Í ¸®µå´Â ¹æ¼öÀÌ¸ç ¹°¿¡ Àá±Û ¼ö ÀÖÁö¸¸ ¿¬°á ÀÎÅÍÆäÀ̽º¿Í ½ÅÈ£ ¾î´ðÅÍ º¸µå´Â ¹æ¼ö°¡ ¾Æ´Õ´Ï´Ù. ÁÖÀÇÇÕ´Ï´Ù.
¼Ò½º ÄÚµå
# Define TdsSensorPin A0
# AdcÀÇ VREF 5.0/¾Æ³¯·Î±× ±âÁØ Àü¾Ð (º¼Æ®) Á¤ÀÇ
# KValue 1.8 Á¤ÀÇ // kValue = ±³Á¤±â TDS/ÃøÁ¤ °ª TDS ¾ò±â
# Scountt 30/»ùÇà Æ÷ÀÎÆ® ÇÕ°è Á¤ÀÇ
Int ¾Æ³¯·Î±× ¹öÆÛ [°èÁ¤]; // adc¿¡¼ ÀÐÀº ¹è¿¿¡ ¾Æ³¯·Î±× °ªÀ» ÀúÀåÇÕ´Ï´Ù.
Int ¾Æ³¯·Î±× ¹öÆÛ ¿Âµµ [s Ä«¿îÆ®];
Int ¾Æ³¯·Î±× ¹öÆÛ À妽º = 0,copyIndex = 0;
Ç÷ÎÆ® Æò±Õ Àü¾Ð = 0,tdsValue = 0, ¿Âµµ = 25;
Void ¼³Á¤ ()
{
½Ã¸®¾ó. ½ÃÀÛ (115200);
Çɸðµå (TdsSensorPin, ÀÔ·Â),
}
Void ·çÇÁ ()
{
°íÁ¤µÇÁö ¾ÊÀº ±ä ¾Æ³¯·Î±× »ùÇà ŸÀÓ Æ÷ÀÎÆ® = millis();
If (millis()-¾Æ³¯·Î±× »ùÇà ŸÀÓ Æ÷ÀÎÆ®> 40U) // 40 ¹Ð¸®Ãʸ¶´Ù adc¿¡¼ ¾Æ³¯·Î±× °ªÀ» ÀÐÀ¸½Ê½Ã¿À.
{
¾Æ³¯·Î±× »ùÇà ŸÀÓ Æ÷ÀÎÆ® = ¹Ð¸®½º ();
¾Æ³¯·Î±× ¹öÆÛ [¾Æ³¯·Î±× ¹öÆÛ À妽º] = ¾Æ³¯·Î±× (TdsSensorPin), // ¾Æ³¯·Î±× °ªÀ» ÀÐ°í ¹öÆÛ¿¡ ÀúÀå
AnalogBufferIndex ++;
If (¾Æ³¯·Î±× ¹öÆÛ À妽º = = Ä«¿îÆ®)
AnalogBufferIndex = 0;
}
Á¤Àû ¼¸íµÇÁö ¾ÊÀº ±ä ÇÁ¸°Æ® ŸÀÓ Æ÷ÀÎÆ® = millis();
If (millis()-printTimepoint > 800U)
{
PrintTimepoint = millis();
¿¡ ´ëÇÑ (copyIndex = 0;copyIndex <scountt, 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)
{
Int bTab[iFilterLen];
For (¹ÙÀÌÆ® 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];
´Ù¸¥
BTemp = (bTab[iFilterLen / 2] + bTab[iFilterLen / 2 - 1]) / 2;
¹Ýȯ bTemp;
}
Á¦Ç° »çÁø
?
![](https://ae01.alicdn.com/kf/H2d297a28517b40698e25587fda777466L.jpg)
![](https://ae01.alicdn.com/kf/H730ca3a7ac4a4bfd8a5cbaceb88c825cr.jpg)
![](https://ae01.alicdn.com/kf/Hb0ff470d0df54e6398c78d0525ddcc96f.jpg)