Arduino + LM35
Hari Santoso Arduino , Elektronika , LM35 , Sensor Suhu9 komentar
Pada tulisan ini akan saya paparkan dua cara membuat sensor suhu pada
arduino dengan sensor LM35. Cara yang pertama adalah dengan menggunakan
tegangan referensi default yaitu 5 volt, sedangkan cara yang kedua yaitu
menggunakan tegangan referensi internal 1.1 volt. Apakah hasilnya berbeda?
Tentu! Oiya, sekedar informasi, harga sensor suhu LM35 tidak begitu mahal
dan relatif murah bagi kantong mahasiswa. :D
Rangkaian yang akan kita pakai pada percobaan kali ini adalah seperti di bawah
ini. Jadi, siapkan sensor LM35, beberapa kabel, dan Uno. Baik, mari kita bahas
dahulu tengan input analog pada Arduino.
Skema rangkaian Arduino + sensor LM35
Input analog pada arduino merupakan cacahan dari 0 hingga 1023. Artinya, 0
berarti 0 volt, dan 1023 berarti 5 volt. Secara matematis, sebenarnya voltase
merupakan data analog / data kontinue. Yang berarti data tersebut bisa dicacah
hingga tak hingga angka penting di belakang koma. Coba bayangkan, antara 0
sampai 5, berapa angka yang bisa kita ambil? 0.1, 0.2, 0.21, 0.211, 0.2111, dst
yang berarti angka dari 0 hingga 5 itu tak terhingga.
Untuk lebih memahami tentang sistem analog pada arduino, silakan cek link di
bawah ini:
1) http://playground.arduino.cc/CourseWare/AnalogInput
2) http://www.arduino.cc/en/Reference/AnalogRead
Dengan demikian, jika kita menggunakan tegangan referensi 5 volt, maka setiap
kenaikan 1 derajat Celcius bisa dihitung dengan rumus:
1 C = 10 mV / 4.883 mV
1 C = 2.0479
1. //----------------------------------
2. // Sensor SUHU Teg. Referensi 5 Volt
3. //----------------------------------
4.
5. const int pSuhu = A1;
6. float suhu, data;
7.
8. void setup() {
9. Serial.begin(9600);
10. pinMode(pSuhu, INPUT);
11. }
12.
13. void loop() {
14. data = analogRead(pSuhu);
15. suhu = data / 2.0479;
16.
17. Serial.print("data: ");
18. Serial.print(data);
19. Serial.print(", suhu: ");
20. Serial.print(suhu);
21. Serial.println();
22. delay(1000);
23. }
Tampilan hasil source code yang pertama
Perhatikan, jika data dari input adalah 55, maka itu dianggap sebagai 26.86
derajat celcius. Sebenarnya ada beberapa rumus yang bisa digunakan untuk
menghitung suhu pada sensor LM35, akan tetapi tulisan ini bermaksud untuk
membahas secara detail bagaimana sebenarnya rumus-rumus itu dibuat. :)
Untuk mendapatkan hasil pengukuran yang presisi, lebih bagus jika tegangan
referensi juga 1.5 Volt, disesuaikan dengan kemampuan sensor. Akan tetapi,
selain menggunakan tegangan referensi 5 V, Arduino menyediakan tegangan
referensi internal sebesar 1.1 Volt. Jadi, untuk mendapatkan informasi suhu yang
lebih presisi, kita bisa menggunakan tegangan referensi ini. Untuk mengaktifkan
tegangan referensi internal, kita harus menyisipkan perintah di bawah ini, minimal
pada fungsi setup():
analogReference(INTERNAL);
Karena tegangan referensi berubah dari 5000 mV menjadi 1100 mV, otomatis
perhitungan untuk menentukan suhu juga harus berubah. Mari kita hitung lagi
dengan cara seperti di atas:
Cacahan : 1100 mV / 1024 = 1.07421875 mV;
Artinya, setiap 9.309 cacahan akan dianggap 1 derajat celcius. Jika demikian,
setiap nilai pada input analog bisa bisa dihitung / dikonversi menjadi suhu
dengan rumus:
suhu = Nilai_Input_Analog / 9.309
1. //----------------------------------
2. // Sensor SUHU Teg. Referensi 1.1 Volt
3. //----------------------------------
4.
5. const int pSuhu = A1;
6. float suhu, data;
7.
8. void setup() {
9. Serial.begin(9600);
10. analogReference(INTERNAL);
11. pinMode(pSuhu, INPUT);
12. }
13.
14. void loop() {
15. data = analogRead(pSuhu);
16. suhu = data / 9.309;
17.
18. Serial.print("data: ");
19. Serial.print(data);
20. Serial.print(", suhu: ");
21. Serial.print(suhu);
22. Serial.println();
23. delay(1000);
24. }
Hasil source code yang kedua
Perhatikan, jika nilai input analog 263, maka akan dianggap sebagai 28.25
derajat celcius. Perbedaan antara hasil dengan cara yang pertama, yaitu
menggunakan tegangan referensi 5 Volt dengan yang menggunakan tegangan
referensi 1.1 Volt menghasilkan nilai yang berbeda. Pada penggunaan tegangan
referensi 1.1 Volt, mempunyai akurasi yang lebih bagus, karena nilai dari input
analog bisa full dari 0 hingga 1023.
Engngngngngng.....
Menurut dataset sensor LM35, dataset terbaru bisa didownload di sini
(http://www.ti.com/lit/ds/symlink/lm35.pdf, cek halaman 4, pada tabel di poin 6.3),
bahwa LM35 bisa mengukur suhu dari -55 hingga 150 derajat celcius. Dari data
tersebut membuat saya bingung :D. Jika inputan 0 pada input analog berarti -55
derajat celcius dan 1023 berarti 150 derajat celcius, maka 0 pada input analog
bukanlah 0 derajat celcius tetapi -55 derajat celcius!!
Jika analisa saya ini benar, berarti perhitungan di atas itu salah! Tapi jika ada
informasi yang keliru saya baca, mari kita diskusikan. :D