Para pembaca setia sekalian, pada tugas kali ini, kami
membuat sebuah termometer dengan menggunakan mikrokontroller Arduino, di mana hasil pembacaan sensor LM35 yang kami gunakan ditampilkan dalam sebuah display dan sudah terkalibrasi. Display yang digunakan oleh kelompok kami berupa LCD Module 16x2 dan rumus kalibrasi yang kami gunakan didapatkan dari regresi linier yang dilakukan dengan membandingkan suhu di sensor dengan suhu di termometer.
Anda tentunya sudah tidak sabar kan untuk mencoba membuat termometer
ini? Untuk membuat termometer ini, persiapkan beberapa alat dan bahan
berikut ini.
- 1 buah Mikrokontroller Arduino Uno R3 beserta kabel konektor USB
- 1 buah Sensor suhu LM35
- 1 buah Display (LCD Module 16x2 atau Multidigit 7-Segment)
- 1 buah 10K ohm potensiometer
- Kabel jumper secukupnya
- 1 buah Laptop / PC Desktop yang sudah terinstall Arduino IDE
- 1 buah breadboard (apabila diperlukan)
Setelah Anda mendapatkan semua komponen di atas, selanjutnya Anda dapat memulai membuat rangkaian termometer. Gambar di bawah ini menunjukkan rangkaian termometer yang akan dibuat dengan menggunakan display LCD 16x2.
Ada beberapa hal yang perlu dicatat dalam pemasangan rangkaian pada gambar di atas.
- Hati-hati dengan pemasangan sensor suhu LM35. Jika sensor dilihat dari bagian yang datar, bagian kiri disambungkan ke pin +5V, bagian tengah disambungkan ke pin 0 analog, dan bagian kanan disambungkan ke pin ground.
- Untuk pemasangan kabel-kabel ke LCD, kami menyarankan agar kabel disolder ke LCD ataupun menggunakan pin yang khusus untuk disolder ke komponen. Sebenarnya, bisa saja Anda melipatkan kabel ke pin-pin LCD seperti yang kami lakukan, tetapi Anda harus berhati-hati, mengingat potensi terjadinya arus pendek pada rangkaian lebih tinggi jika Anda menggunakan cara ini.
/*
Kode program untuk menampilkan suhu pada LCD
Perhitungan suhu telah dikalibrasi
*/
#include ≺liquidcrystal.h≻ // Library untuk LCD
const int numRows = 2; //Jumlah Baris pada LCD
const int numCols = 16; //Jumlah Kolom pada LCD
const int inPin = 0; // analog pin
const byte degreeSymbol = B11011111; //Simbol Degree
// Inisialisasi library dengan angka pada interface pin
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(numCols, numRows); // Mulai membuat tampilan di LCD
lcd.print("Suhu sekarang : "); // Pesan pada LCD.
}
void loop()
{
lcd.setCursor(0, 1); // Set cursor pada kolom 0, baris 1 untuk tampilan angka suhu
temperature(); // Fungsi penghitungan suhu
lcd.write(degreeSymbol); // Tulis simbol derajat
lcd.print("C"); // Tulis simbol celcius
}
void temperature()
{
int value = analogRead(inPin); // Menerima nilai dari sensor suhu
float millivolts = (value / 1024.0) * 5000; // Konversi nilai analog sensor ke tegangan
float celsius = millivolts / 10; // Sensor output = 10mV per degree Celsius
float calibrated = celsius + 0.16981663; // Rumus kalibrasi (menggunakan regresi linear)
lcd.print(calibrated); // Tampilkan angka suhu pada LCD
delay(1000); // Tunggu 1 detik untuk menampilkan pembacaan terbaru
}
Setelah program di atas terverifikasi, sambungkan Arduino ke PC Anda dengan
menggunakan kabel konektor USB. Klik tombol upload pada PC Anda. Anda pun dapat mencoba hasil rangkaian Anda.
Untuk kalibrasi pengukuran, kami melakukan kalibrasi dengan cara membandingkan pengukuran suhu pada alat yang kami buat dengan termometer lab. Pengukuran yang dilakukan termometer lab lebih stabil dibandingkan dengan pengukuran sensor suhu. Oleh karena itu, dibutuhkan rumus kalibrasi. Kami melakukan hal ini di Laboratorium Fisika Dasar ITB pada siang hari. Pengambilan data dilakukan dengan interval 10 detik untuk setiap satuan data. Berikut ini adalah data kalibrasi pertama yang kami peroleh (suhu dalam satuan celsius).
No. | Suhu Sensor | Suhu Termometer |
---|---|---|
1 | 30,27 | 28,6 |
2 | 31,25 | 28,6 |
3 | 31,25 | 28,6 |
4 | 28,81 | 28,6 |
5 | 26,86 | 28,3 |
6 | 31,25 | 28,3 |
7 | 25,93 | 28,3 |
8 | 26,86 | 28,3 |
9 | 29,3 | 29 |
10 | 23,93 | 29 |
Pada saat pengambilan data kalibrasi yang pertama, kami sedikit ragu dengan hasil data yang kami peroleh sehingga kami melakukan pengambilan data kalibrasi yang kedua. Pengambilan data kalibrasi yang kedua kami lakukan beberapa lama setelah pengambilan data kalibrasi yang pertama. Berikut ini adalah data kalibrasi pertama yang kami peroleh (suhu dalam satuan celsius).
No. | Suhu Sensor | Suhu Termometer |
---|---|---|
1 | 29,3 | 28,3 |
2 | 26,86 | 28,3 |
3 | 26,86 | 28,3 |
4 | 29,3 | 28,3 |
5 | 27,34 | 28,6 |
6 | 29,3 | 28,6 |
7 | 29,3 | 28,6 |
8 | 26,86 | 28,6 |
9 | 29,3 | 29 |
10 | 27,34 | 29 |
Data pengukuran awal beserta rumus regresinya tidak dipakai karena ternyata, pada saat pengukuran dan pengambilan data kalibrasi awal, sensor suhu sebelumnya terkena sinar matahari secara langsung, di mana pada saat percobaan, cuaca sangat panas sehingga panas masih tersisa pada sensor. Berdasarkan data kalibrasi yang kedua, kami pun menurunkan rumus regresi dengan menggunakan kalkulator. Kami pun mendapatkan rumus sebagai berikut.
Y = X + 0,16981663
di mana X = nilai suhu pada sensor dalam celsius dan Y = nilai suhu pada termometer dalam celsius (nilai yang sudah terkalibrasi).
Rumus di atas tentunya sudah terimplementasi dalam kode program yang kami buat. Berikut ini adalah foto dan video untuk percobaan yang kami lakukan.
Foto percobaan :
Video percobaan :
Sekian saja tulisan saya kali ini. Pembaca sekalian tentunya dapat mencoba hal diatas. Sampai bertemu kembali di tulisan saya yang berikutnya.
Referensi : Margolis, Michael. 2011. Arduino Cookbook, 2nd Edition. U.S.A:O’Reilly Media, Inc.
Credits to : Allah SWT, kedua orang tua saya, Pak Soni (selaku dosen
mata kuliah), teman kelompok (Luthfi Al Fikri, Michael Yurry, Ryan Adi
Wicaksana dan Faris Taufiq Zaqiy), teman-taman angkatan STI 2011,
blogger.com, serta siapapun yang telah membantu terlaksananya tugas ini.
kak kok yang di foto sama yang digambar beda ya jumpernya? makasih ya kak
BalasHapuskak kok di lcdnya ngak muncul tulisannya ya? tolong direspon dong makasih ya
BalasHapuskak gimana analogi atau penjelasan yg buat simbol derajat itu,trimakasih kak
BalasHapus