Advertisement
  1. Computer Skills

Cara Membaca Suhu Dengan Arduino

Scroll to top
Read Time: 7 min

() translation by (you can also view the original English article)

Membaca suhu dengan Arduino adalah fungsi yang sangat berguna. Ini adalah jenis fungsi yang penting dalam banyak proyek mulai dari membangun termostat rumah Anda sendiri hingga menciptakan stasiun cuaca. Selain itu cukup sederhana untuk diimplementasikan dalam beberapa menit dengan Arduino dan hanya dua komponen sederhana.

Dalam tutorial ini, saya akan menunjukkan cara menggunakan Arduino untuk membaca suhu dari termistor dan mencetaknya di port serial. Termistor adalah komponen elektronik sederhana yang mengubah resistansi berdasarkan suhu. Tutorial ini berfokus pada cara termudah dan paling murah untuk membaca suhu. Sepanjang jalan Anda akan belajar blok bangunan elektronik sederhana yang memungkinkan Anda untuk menjelajahi seluruh dunia sensor dengan Arduino Anda.


Bagaimana Arduino Membaca Suhu

Ada beberapa cara untuk membaca suhu dengan sebuah Arduino. Beberapa ini termasuk:

  • I2C atau Serial Sensor - Ada modul sensor canggih yang sering dapat mengukur tekanan udara, suhu, kelembaban, dan kondisi lainnya semua dalam satu paket. Namun modul-modul ini biasanya jauh lebih mahal dan memerlukan penggunaan I2C atau protokol serial untuk dibaca. Ini mungkin bagus untuk proyek sensor cuaca yang lebih maju.
  • Thermal analog sensor - Komponen tiga pin yang mengambil daya, tanah, dan output tegangan variabel berdasarkan suhu dengan menerapkan inti celah pita di dalam komponen tunggal. Kelas komponen ini berguna dan saya akan memeriksa ini di tutorial selanjutnya.
  • Thermistor - Sebuah resistor yang mengubah resistansi berdasarkan suhu lingkungan.

Tutorial ini berfokus pada penggunaan metode termistor karena beberapa alasan. Pertama, responsnya cepat terhadap perubahan suhu, kedua, murah dan akhirnya, mudah digunakan.

Ada juga dua konsep yang sangat penting untuk dipelajari dari tutorial ini:

  1. Membaca nilai dari pin analog Arduino.
  2. Menggunakan rangkaian pembagi tegangan untuk membaca sensor resistor variabel.

Sensor resistor variabel diproduksi untuk mengukur segala macam hal, di dunia fisik, dan kemampuan untuk membaca sensor ini dengan Arduino Anda akan menjadi keterampilan dasar yang sangat baik untuk dikuasai. Rotasi, tekanan, regangan, lentur, cahaya, dan panas adalah semua contoh hal-hal yang dapat Anda ukur dengan menggunakan pin analog dan rangkaian pembagi tegangan.


Kumpulkan Bagian-bagiannya

Untuk proyek ini Anda akan membutuhkannya

  • Breadboard
  • Arduino (An Uno digunakan dalam contoh saya, tetapi model apa pun harus dilakukan)
  • 10K Ohm Thermistor
  • 10K Ohm Resistor (Coklat, Hitam, Oranye)
  • Hookup Wires
  • Komputer dengan Arduino IDE diinstal (menginstal dan menggunakan IDE tidak dibahas dalam tutorial ini)
  • Kabel USB (untuk menghubungkan Arduino dan PC)

Cara Kerjanya

Pin analog Arduino membaca tegangan yang diharapkan berkisar antara 0V hingga 5V. Cara standar untuk mengubah perubahan resistansi dalam termistor menjadi perubahan tegangan yang dapat dibaca oleh pin analog Arduino adalah dengan membuat sirkuit pembagi voltase. Rangkaian ini menggunakan dua resistor dalam rangkaian tegangan yang diketahui untuk menciptakan nilai tegangan matematis yang dapat diprediksi: Vout.

Ini adalah rangkaian yang sangat sederhana seperti yang ditunjukkan di bawah ini. Ketika nilai R1 (resistor 1) berubah, Vout berubah. Dalam R1 tutorial kita akan menjadi termistor dan nilainya akan berubah relatif terhadap suhu. Vout terhubung ke port analog pada Arduino sehingga kita dapat memonitornya.

schematic-horizonalschematic-horizonalschematic-horizonal
Skema rangkaian pembagi tegangan

Cukup teori, mari kita lanjutkan dengan membangun breadboard dan Arduino.


Menyiapkan

Siapkan breadboard Anda dan papan Arduino seperti diagram di bawah ini. Diagram dibuat dengan Fritzing alat yang hebat untuk memasang proyek secara logis sebelum mengambil kabel dan komponen. Bagian atas, komponen abu-abu adalah termistor, atau R1, dalam diagram di atas. Ini adalah salah satu dari banyak cara untuk memasang sirkuit, saya memilihnya karena ini sesuai dengan beberapa praktik dasar pembuatan pita yang baik.

thermistor-setup-smallthermistor-setup-smallthermistor-setup-small
Layout breadboard dengan thermistor dan rangkaian pembagi tegangan

Pemrograman Arduino

Membaca pin analog pada Arduino cukup sederhana. Pin berlabel A0 - A5 pada Arduino adalah pin khusus yang ketika dibaca dengan fungsi analogRead() akan mengembalikan nilai dari 0 hingga 1023 di mana tegangan input dari 0V ke 5V. Karena nilai R1, termistor, berubah berdasarkan suhu, tegangan ke pin A0 akan berubah secara terprediksi antara 0V dan 5V.

Mari menulis beberapa kode dan mendorongnya ke Arduino.

  1. Colokkan Arduino ke komputer Anda dengan kabel USB
  2. Buka Arduino IDE
  3. Copy dan paste kode di bawah ini
  4. Tekan tombol Upload untuk memuat kode ke Arduino Anda
  5. Bukalah Serial Monitor dari Arduino IDE dengan menekan CTRL SHIFT M atau Memilih menu Tools > Serial Monitor.
1
2
void setup() {            //This function gets called when the Arduino starts
3
  Serial.begin(115200);   //This code sets up the Serial port at 115200 baud rate
4
}
5
6
void loop() {             //This function loops while the arduino is powered
7
  int val;                //Create an integer variable
8
  val=analogRead(0);      //Read the analog port 0 and store the value in val
9
  Serial.println(val);    //Print the value to the serial port
10
  delay(1000);            //Wait one second before we do it again
11
}

Tips: Pastikan baud rate dari Monitor Serial sesuai dengan apa yang kita tetapkan dalam fungsi setup(). Dalam contoh ini: 115200.

Outputnya akan terlihat seperti ini:

463
463
463
463
463
463

Kecuali breadboard Anda dalam oven yang sangat panas, nilai-nilai ini tidak masuk akal. Itu karena ini hanyalah contoh tegangan yang diterjemahkan ke dalam skala dari 0 hingga 1023. Selanjutnya, kita perlu mengubahnya menjadi nilai temperatur yang dapat digunakan.


Konversi Nilai Analog ke Suhu

Di atas saya menyebutkan bahwa menggunakan termistor akan sederhana, dan itu karena kita dapat berdiri di atas bahu raksasa. Ada persamaan untuk melakukan terjemahan dari nilai sampel ke suhu yang disebut persamaan Steinhart-Hart. (http://en.wikipedia.org/wiki/Thermistor) Persamaan Steinhart-Hart telah diterjemahkan untuk Arduino. Salah satu contohnya dapat ditemukan di playground.arduino.cc dalam sebuah artikel oleh Milan Malesevic dan Zoran Stupic. Saya telah mengilustrasikan fungsi mereka Thermistor() di bawah ini dan menambahkan komentar tentang cara menggunakannya.

  1. Salin dan sisipkan kode di bawah ini ke Arduino IDE menggantikan contoh asli
  2. Klik pada tombol Upload untuk mendorong kode ini ke Arduino Anda.
  3. Buka jendela Arduino Serial Monitor sekali lagi karena menghilang ketika Anda mengunggah kode.
1
2
#include <math.h>         //loads the more advanced math functions

3
4
void setup() {            //This function gets called when the Arduino starts
5
  Serial.begin(115200);   //This code sets up the Serial port at 115200 baud rate
6
}
7
8
double Thermister(int RawADC) {  //Function to perform the fancy math of the Steinhart-Hart equation
9
 double Temp;
10
 Temp = log(((10240000/RawADC) - 10000));
11
 Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
12
 Temp = Temp - 273.15;              // Convert Kelvin to Celsius
13
 Temp = (Temp * 9.0)/ 5.0 + 32.0; // Celsius to Fahrenheit - comment out this line if you need Celsius
14
 return Temp;
15
}
16
17
void loop() {             //This function loops while the arduino is powered
18
  int val;                //Create an integer variable
19
  double temp;            //Variable to hold a temperature value
20
  val=analogRead(0);      //Read the analog port 0 and store the value in val
21
  temp=Thermister(val);   //Runs the fancy math on the raw analog value
22
  Serial.println(temp);   //Print the value to the serial port
23
  delay(1000);            //Wait one second before we do it again
24
}

Sekarang hasilnya akan terlihat lebih seperti ini:

69.22
69.07
69.22
69.22
70.33
72.07
72.86
73.34
74.13

Sekarang ini masuk akal. Bengkel saya memang 69 derajat Fahrenheit. Selama contoh ini, saya menyentuh bagian atas termistor dengan jari saya dan itu merasakan peningkatan suhu seperti yang Anda lihat.

Cobalah bereksperimen dengan pengaturan Anda untuk menjadi lebih nyaman dengan keterampilan baru ini. Berikut adalah beberapa saran.

  • Kurangi nilai delay dalam loop untuk melihat seberapa cepat thermistor dapat bereaksi terhadap perubahan suhu. (Saya tidak menyarankan mengubah ini di bawah 50 atau Anda mungkin membanjiri buffer seri Anda.)
  • Coba ubah program untuk mendapatkan nilai Celcius (petunjuk: baca komentar di kode)
  • Ubah breadboard dan kode untuk menggunakan pin A1, bukan A0
  • Ekstra Kredit: Konfigurasi ulang sirkuit untuk menggunakan 10K Ohm mini photo resistor dan dokumen analogRead() nilai berdasarkan perubahan pencahayaan (petunjuk: gunakan segmen kode pertama)

Ringkasan

Hanya itu saja. Sekarang Anda dapat pergi dan menciptakan cara penemuan apa pun menggunakan termistor yang sangat murah.

  • Anda telah menggunakan keterampilan membangun sirkuit breadboard
  • Menyusun dan mengunggah sketsa ke arduino Anda

Selain itu dari tutorial ini Anda telah belajar bagaimana:

  • baca nilai analog dari Arduino menggunakan analogRead()
  • memahami dan memanipulasi nilai yang dikembalikan dari fungsi analogRead()
  • gunakan rangkaian pembagi tegangan untuk membaca perubahan pada sensor berbasis resistor seperti termistor
  • mengkonversi nilai-nilai termistor analog ke dalam nilai-nilai suhu

Meskipun pada awalnya pemrograman Arduino Anda untuk membaca dan memahami dunia di sekitarnya mungkin terdengar rumit, pada kenyataannya, ada berbagai macam sensor sederhana dan murah yang tersedia yang akan memungkinkan Anda untuk berinteraksi dengan dunia nyata dengan cepat dan mudah. Sirkuit pembagi tegangan dan beberapa kode sederhana dapat memberikan ciptaan Anda yang baru dan kuat.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Computer Skills tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.