TDS Sensor อิงตามหลักการนำไฟฟ้า (Electrical Conductivity) ของสารละลาย น้ำบริสุทธิ์มีการนำไฟฟ้าที่ต่ำ เนื่องจากมีไอออนน้อย แต่เมื่อมีสารที่ละลายอยู่ เช่น เกลือ แร่ธาตุ หรือสารเคมี จะมีการเพิ่มขึ้นของไอออนในน้ำ ซึ่งส่งผลให้การนำไฟฟ้าเพิ่มขึ้น โดย TDS Sensor จะมีอิเล็กโทรดสองตัวที่ถูกแช่ในน้ำ อิเล็กโทรดเหล่านี้จะส่งกระแสไฟฟ้าเข้าไปในน้ำและวัดการตอบสนองของน้ำ โดยการวัดแรงดันไฟฟ้าที่เกิดขึ้นระหว่างอิเล็กโทรด ค่าการนำไฟฟ้าที่วัดได้จะถูกแปลงเป็นค่า TDS ผ่านการใช้สมการที่สัมพันธ์กับการนำไฟฟ้า
1.ต่ออุปกรณ์

TDS > Arduino UNO
แดง>5Vดำ>GNDเหลือง>PIN A0
2.ลงโปรแกรม
Copy โค้ดด้านล่าง
Arduino
1const int TDS_SENSOR_PIN = A0; // Pin สำหรับ TDS Sensor
2const float voltageReference = 5.0; // แรงดันไฟฟ้าของ Arduino
3const float conversionFactor = 0.5; // ตัวแปลงค่า TDS เป็น ppm (อาจปรับตามความแม่นยำของเซนเซอร์)
4
5void setup() {
6 Serial.begin(9600); // เริ่มต้น Serial Communication
7}
8
9void loop() {
10 int sensorValue = analogRead(TDS_SENSOR_PIN); // อ่านค่าจากเซนเซอร์
11 float voltage = sensorValue * (voltageReference / 1023.0); // แปลงค่าที่อ่านได้เป็นแรงดันไฟฟ้า
12
13 // คำนวณค่า TDS ในหน่วย ppm
14 float tdsValue = voltage * conversionFactor * 1000; // คำนวณ TDS เป็น ppm
15 // คำนวณ EC ในหน่วย mS/cm (1 ppm ≈ 0.001 mS/cm สำหรับน้ำบริสุทธิ์)
16 float ecValue = tdsValue / 1000.0; // แปลง TDS เป็น mS/cm
17
18 // แสดงผล
19 Serial.print("TDS (ppm): ");
20 Serial.print(tdsValue);
21 Serial.print(" | EC (mS/cm): ");
22 Serial.println(ecValue);
23
24 delay(1000); // หน่วงเวลา 1 วินาที
25}
261const int TDS_SENSOR_PIN = A0; // Pin สำหรับ TDS Sensor
2const float voltageReference = 5.0; // แรงดันไฟฟ้าของ Arduino
3const float conversionFactor = 0.5; // ตัวแปลงค่า TDS เป็น ppm (อาจปรับตามความแม่นยำของเซนเซอร์)
4
5void setup() {
6 Serial.begin(9600); // เริ่มต้น Serial Communication
7}
8
9void loop() {
10 int sensorValue = analogRead(TDS_SENSOR_PIN); // อ่านค่าจากเซนเซอร์
11 float voltage = sensorValue * (voltageReference / 1023.0); // แปลงค่าที่อ่านได้เป็นแรงดันไฟฟ้า
12
13 // คำนวณค่า TDS ในหน่วย ppm
14 float tdsValue = voltage * conversionFactor * 1000; // คำนวณ TDS เป็น ppm
15 // คำนวณ EC ในหน่วย mS/cm (1 ppm ≈ 0.001 mS/cm สำหรับน้ำบริสุทธิ์)
16 float ecValue = tdsValue / 1000.0; // แปลง TDS เป็น mS/cm
17
18 // แสดงผล
19 Serial.print("TDS (ppm): ");
20 Serial.print(tdsValue);
21 Serial.print(" | EC (mS/cm): ");
22 Serial.println(ecValue);
23
24 delay(1000); // หน่วงเวลา 1 วินาที
25}
26
3.ผลลัพธ์
โค้ดนี้อ่านค่าจาก TDS Sensor และแสดงผลการวัดในหน่วย ppm (parts per million) และ mS/cm (มิลลิซีเมนส์ต่อเซนติเมตร) ซึ่งเป็นค่าที่บ่งบอกถึงคุณภาพน้ำและความเข้มข้นของสารที่ละลายอยู่ในน้ำ

