Nilai analog dari sensor suhu diubah ke derajat Celcius dengan tiga langkah utama: membaca nilai ADC, mengubahnya menjadi tegangan, lalu mengonversi tegangan itu ke suhu sesuai karakter sensor yang dipakai. Jadi, rumus akhirnya tidak selalu sama karena bergantung pada jenis sensor suhu, misalnya LM35, TMP36, atau termistor.
Kalau Anda sedang mencari jawaban singkat untuk tugas sekolah, Arduino, atau elektronika dasar, konsep umumnya seperti ini:
- ADC mengubah sinyal analog menjadi angka digital,
- angka digital itu diubah dulu menjadi tegangan,
- tegangan kemudian diubah menjadi suhu dalam °C sesuai spesifikasi sensor.
Apa itu nilai analog pada sensor suhu?
Nilai analog adalah angka hasil pembacaan pin analog dari mikrokontroler seperti Arduino. Saat sensor suhu mengeluarkan tegangan tertentu, ADC pada board akan menerjemahkannya menjadi angka, misalnya dari 0 sampai 1023 pada ADC 10-bit.
Artinya, angka itu belum langsung menunjukkan suhu. Nilai tersebut masih harus dikonversi dulu.
Langkah 1: Ubah nilai ADC menjadi tegangan
Rumus umumnya adalah:
Tegangan = (nilai ADC / resolusi ADC) × Vref
Pada Arduino Uno, ADC biasanya 10-bit dengan rentang 0–1023 dan tegangan referensi default 5V. Maka rumus praktisnya menjadi:
Tegangan = (nilai ADC / 1023) × 5
Contoh jika nilai analog yang terbaca adalah 205:
Tegangan = (205 / 1023) × 5 ≈ 1,00 V
Langkah 2: Ubah tegangan menjadi suhu dalam derajat Celcius
Pada tahap ini, rumusnya bergantung pada sensor yang digunakan. Sensor yang paling sering dipakai untuk contoh dasar adalah LM35.
Contoh konversi untuk LM35
LM35 menghasilkan tegangan sebesar 10 mV untuk setiap 1°C. Karena itu:
Suhu (°C) = Tegangan × 100
Kalau dari contoh sebelumnya tegangannya 1,00 V, maka:
Suhu = 1,00 × 100 = 100°C
Itulah sebabnya banyak contoh Arduino dengan LM35 memakai rumus singkat:
Suhu = (nilai ADC × 5,0 / 1023) × 100
Kenapa rumus bisa berbeda untuk sensor lain?
Tidak semua sensor suhu analog punya karakter output yang sama. Misalnya:
- LM35: 10 mV per 1°C dan langsung dalam skala Celcius.
- TMP36: mirip sensor analog, tetapi punya offset 0,5 V, sehingga rumusnya berbeda.
- Termistor: perubahan suhu dibaca dari perubahan resistansi, jadi perhitungannya lebih kompleks.
Contohnya pada TMP36, rumus yang sering dipakai adalah:
Suhu (°C) = (Tegangan - 0,5) × 100
Karena ada offset di awal, sensor ini tidak bisa dihitung dengan rumus LM35.
Contoh perhitungan lengkap
Misalkan:
- nilai ADC = 205
- Vref = 5V
- sensor = LM35
1. Ubah ke tegangan:
Tegangan = (205 / 1023) × 5 ≈ 1,00 V
2. Ubah ke suhu:
Suhu = 1,00 × 100 = 100°C
Jadi, nilai analog 205 kira-kira setara dengan 100°C jika sensor yang dipakai adalah LM35 dengan referensi 5V.
Contoh kode Arduino
int sensorValue = 0;
float voltage = 0;
float suhuC = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(A0);
voltage = sensorValue * (5.0 / 1023.0);
suhuC = voltage * 100.0; // untuk LM35
Serial.print("Nilai ADC: " );
Serial.print(sensorValue);
Serial.print(" | Tegangan: " );
Serial.print(voltage);
Serial.print(" V | Suhu: " );
Serial.print(suhuC);
Serial.println(" C");
delay(1000);
}
Kode di atas cocok untuk LM35. Kalau memakai sensor lain, bagian rumus suhu harus disesuaikan.
Kesalahan yang sering terjadi
Ada beberapa kesalahan umum saat mengubah nilai analog menjadi suhu:
- langsung menganggap nilai ADC sebagai suhu,
- lupa menghitung tegangan terlebih dahulu,
- memakai rumus LM35 untuk sensor lain seperti TMP36 atau termistor,
- salah menentukan nilai Vref,
- tidak memperhatikan resolusi ADC board yang digunakan.
Karena itu, sebelum menghitung suhu, pastikan Anda tahu jenis sensor, tegangan referensi, dan resolusi ADC pada mikrokontroler.
Kesimpulan
Mengubah nilai analog dari sensor suhu menjadi nilai suhu dalam derajat Celcius dilakukan dengan mengubah nilai ADC ke tegangan, lalu tegangan ke suhu sesuai rumus sensor. Pada contoh paling umum, yaitu LM35, rumus sederhananya adalah:
Suhu (°C) = (nilai ADC / 1023) × 5 × 100
Namun, perlu diingat bahwa rumus bisa berbeda jika sensornya bukan LM35. Jadi, langkah paling penting adalah mengenali dulu jenis sensor suhu yang digunakan.
FAQ
Apakah nilai analog langsung menunjukkan suhu?
Tidak. Nilai analog hanya menunjukkan hasil pembacaan ADC dan harus dikonversi dulu menjadi tegangan, lalu menjadi suhu.
Kenapa LM35 sering dipakai sebagai contoh?
Karena LM35 memiliki output linear 10 mV per 1°C dan langsung terkalibrasi dalam Celcius, sehingga mudah dipahami oleh pelajar dan pemula.
Apakah rumus LM35 bisa dipakai untuk TMP36?
Tidak. TMP36 memiliki offset 0,5 V, jadi rumusnya berbeda dari LM35.
Kenapa hasil suhu bisa salah meski rumus benar?
Biasanya karena Vref tidak sesuai, resolusi ADC berbeda, sensor yang dipakai bukan LM35, atau ada kesalahan sambungan rangkaian.