Skip to content

Sensor TDS Bacaan Loncat-Loncat: 4 Hal yang Dicek Dulu

Bacaan sensor TDS yang loncat-loncat hampir selalu bukan salah modulnya. Penyebab paling umum ada di luar sensor: probe belum dikalibrasi, suhu air belum dikompensasi, kabel analog terlalu panjang, atau tegangan referensi ADC yang goyang. Keempatnya bisa dicek gratis, jadi cek dulu sebelum kamu keluar uang buat sensor baru.

Di artikel ini kita urutkan dari pengecekan yang paling gampang, lengkap dengan contoh kode Arduino.

Kenapa bacaan TDS bisa loncat-loncat?

Modul TDS analog sebenarnya mengukur konduktivitas air lewat dua elektroda di probe, lalu mengubahnya jadi tegangan kecil. Tegangan itu dibaca ADC mikrokontroler, kemudian dikonversi jadi angka ppm lewat rumus di kode.

Artinya ada rantai yang panjang: probe, modul, kabel, ADC, lalu kode. Gangguan di titik mana pun akan ikut terbaca sebagai perubahan nilai TDS, padahal air di gelasmu nggak berubah sama sekali.

4 hal yang perlu dicek, urut dari yang paling gampang

1. Probe sudah dikalibrasi?

Tanpa kalibrasi, angka TDS hanyalah perkiraan kasar. Caranya:

  1. Siapkan larutan kalibrasi dengan nilai TDS yang sudah diketahui (misalnya larutan standar yang dijual untuk kalibrasi TDS meter).
  2. Celupkan probe, tunggu bacaan stabil beberapa menit.
  3. Bandingkan bacaan di Serial Monitor dengan nilai larutan.
  4. Hitung faktor koreksi: nilai larutan dibagi bacaanmu, lalu pakai sebagai faktor kalibrasi di kode.

Pastikan juga probe bersih dan ujung elektrodanya tercelup seluruhnya, tapi bagian modul elektroniknya tidak ikut basah. Gelembung udara yang menempel di elektroda juga bisa bikin angka naik turun, jadi ketuk pelan probe-nya kalau ada.

2. Suhu air sudah dikompensasi?

Konduktivitas air dipengaruhi suhu. Sebagai patokan kasar, tiap kenaikan 1°C, nilai TDS bisa naik sekitar 2% walau kandungan airnya sama. Jadi air yang baru diisi dari kran dan air yang sudah hangat kena lampu akan terbaca beda.

Solusinya, pasang sensor suhu seperti DS18B20 di air yang sama, lalu koreksi bacaan ke acuan 25°C. Kalau DS18B20 yang kamu pakai berupa chip atau probe tanpa modul, ingat butuh resistor pull-up sekitar 4,7 kΩ di jalur data.

Berikut contoh sketch untuk Arduino Uno. Library yang dipakai: OneWire dan DallasTemperature.

#include <OneWire.h>
#include <DallasTemperature.h>

const int PIN_TDS = A1;
const int PIN_SUHU = 2;
const float VREF = 5.0;               // ganti dengan tegangan suplai hasil ukur
const float FAKTOR_KALIBRASI = 1.0;   // isi dari hasil kalibrasi
const int JUMLAH_SAMPEL = 30;

OneWire oneWire(PIN_SUHU);
DallasTemperature sensorSuhu(&oneWire);

void setup() {
  Serial.begin(115200);
  sensorSuhu.begin();
}

float bacaTegangan() {
  long total = 0;
  for (int i = 0; i < JUMLAH_SAMPEL; i++) {
    total += analogRead(PIN_TDS);
    delay(10);
  }
  float rata = total / (float)JUMLAH_SAMPEL;
  return rata * VREF / 1024.0;
}

void loop() {
  sensorSuhu.requestTemperatures();
  float suhu = sensorSuhu.getTempCByIndex(0);
  if (suhu == DEVICE_DISCONNECTED_C) suhu = 25.0;  // cadangan kalau DS18B20 lepas

  float v = bacaTegangan();
  float koef = 1.0 + 0.02 * (suhu - 25.0);
  float vKomp = v / koef;

  float tds = (133.42 * vKomp * vKomp * vKomp
             - 255.86 * vKomp * vKomp
             + 857.39 * vKomp) * 0.5 * FAKTOR_KALIBRASI;

  Serial.print("Suhu: ");
  Serial.print(suhu);
  Serial.print(" C | TDS: ");
  Serial.print(tds, 0);
  Serial.println(" ppm");
  delay(1000);
}

Rumus polinomial di atas adalah rumus umum yang dipakai banyak contoh sensor TDS analog. Hasil akhirnya tetap harus kamu kalibrasi dengan larutan standar, karena tiap probe sedikit berbeda.

3. Kabel analognya kepanjangan?

Sinyal keluaran modul TDS itu kecil dan impedansinya tidak rendah. Kabel panjang bertindak seperti antena yang menangkap noise dari sekitarnya, apalagi kalau lewat dekat pompa air, motor, atau relay.

Yang bisa kamu lakukan:

  • Pendekkan kabel antara modul dan pin analog.
  • Jauhkan jalur sinyal dari kabel pompa, motor, dan catu daya switching.
  • Kalau probe harus jauh dari board, panjangkan kabel di sisi probe ke modul, dan biarkan modul tetap dekat dengan mikrokontroler.
  • Pastikan GND modul dan board tersambung dengan baik.

4. Tegangan 5V-nya stabil?

Di Arduino Uno, ADC secara default memakai tegangan suplai sebagai patokan (referensi). Kalau 5V dari USB laptop goyang, hasil konversi ADC ikut goyang, dan angka TDS ikut loncat walau tegangan dari sensor sebenarnya stabil.

Langkah praktisnya:

  • Ukur tegangan 5V yang sebenarnya dengan multimeter, lalu isi di konstanta VREF.
  • Pakai suplai yang lebih stabil, misalnya adaptor berkualitas baik, bukan port USB yang berbagi beban dengan perangkat lain.
  • Rata-ratakan beberapa pembacaan, seperti di contoh kode (30 sampel). Kalau masih ada lonjakan, ambil nilai median.

Kalau kamu pakai ESP32, ingat dua hal: ADC-nya tidak sepenuhnya linear, dan pin ADC2 tidak bisa dipakai saat WiFi menyala. Gunakan pin ADC1 untuk sensor analog, dan pastikan keluaran modul tidak melebihi batas tegangan pin ADC ESP32 (3,3V).

Kesalahan yang sering terjadi

  • Langsung ganti sensor. Padahal kalibrasi, suhu, kabel, dan suplai belum disentuh.
  • Kalibrasi sekali lalu lupa. Probe yang kotor atau menua akan bergeser nilainya, jadi kalibrasi ulang berkala.
  • Mengukur segera setelah probe dicelup. Beri waktu beberapa detik sampai bacaan stabil.
  • Probe terlalu dekat dengan pompa. Selain noise listrik, arus air dan gelembung juga mengganggu pembacaan.
  • Menganggap TDS sama dengan kemurnian air. TDS hanya memperkirakan total padatan terlarut dari konduktivitas, jadi bukan ukuran aman atau tidaknya air untuk diminum.
  • Probe dibiarkan terendam terus. Kalau tidak dipakai, bilas dan keringkan supaya elektrodanya awet.

Komponen yang dibutuhkan

  • Mikrokontroler: Arduino Uno atau ESP32
  • Sensor suhu DS18B20 plus resistor pull-up 4,7 kΩ
  • Larutan kalibrasi TDS dengan nilai yang diketahui
  • Multimeter untuk mengecek tegangan suplai
  • Suplai daya yang stabil

Kalau semua pengecekan di atas sudah dilakukan dan probe-mu memang rusak (misalnya elektroda korosi atau kabel probe putus), kamu bisa lihat Analog TDS Sensor Module Sensor Kualitas Air Water Conductivity Liquid Detection Water Quality Arduino ESP32 di Ichibot Store. Cocok untuk project hidroponik atau akuarium.

Kesimpulan

Sensor TDS yang bacaannya loncat-loncat sebaiknya dicek dengan urutan ini: kalibrasi, kompensasi suhu, panjang kabel analog, lalu kestabilan tegangan ADC. Keempatnya gratis dan bisa dikerjakan dalam satu sore. Sensor baru nggak akan membereskan satu pun dari masalah itu 😅

Coba satu per satu, catat hasilnya di Serial Monitor, dan kamu akan tahu persis di mana biang keroknya.

Pertanyaan yang Sering Diajukan

Kenapa nilai TDS berubah-ubah padahal air tidak diganti?

Biasanya karena suhu air tidak dikompensasi, kabel analog menangkap noise, atau tegangan referensi ADC tidak stabil. Kalibrasi yang belum dilakukan juga membuat angka sulit dipercaya.

Seberapa besar pengaruh suhu terhadap bacaan TDS?

Sebagai patokan kasar, tiap kenaikan 1°C nilai TDS bisa naik sekitar 2%. Karena itu bacaan sebaiknya dikoreksi ke acuan 25°C memakai sensor suhu seperti DS18B20.

Berapa panjang kabel yang aman untuk sensor TDS analog?

Tidak ada angka pasti, tapi makin pendek makin baik karena sinyalnya kecil dan mudah terkena noise. Jauhkan juga dari pompa dan motor.

Apakah sensor TDS bisa dipakai di ESP32?

Bisa, asal keluaran modul tidak melebihi batas tegangan pin ADC ESP32 dan kamu memakai pin ADC1, karena ADC2 tidak bisa dipakai saat WiFi menyala. Kalibrasi tetap diperlukan karena ADC ESP32 tidak sepenuhnya linear.

Komponen di Ichibot Store

Cek harga dan stok terbaru langsung di halaman produknya. Butuh bantuan milih komponen? Tanya kami lewat chat di toko.