Sensor suhu LM35 merupakan salah satu sensor yang sering digunakan. Sensor ini memiliki beberapa keistimewaan, diantaranya adalah kemampuan untuk langsung merubah nilai voltase berdasarkan nilai suhu, suhu dari sensor tersebut sangat rendah, dan mudah digunakan. Video tutorial ini menjelaskan secara detil mengenai LM35, bagaimana menyambungkan ke Arduino dan membuat kode programnya.
Skema
![](https://progresstech.co.id/wp-content/uploads/2021/11/LM35_Skema-1024x816.jpg)
Kode Program
// Protus Tanuhandaru
// www.progresstech.co.id
// www.karyaone.co.id
#include <LiquidCrystal_I2C.h> // Memanggil library LCD
int nilaiAnalog; // Variabel untuk menyimpan hasil pembacaan analog
int pinSensor = A0; // Variabel untuk PIN analog yang disambungkan ke sensor
float volts; // Variabel untuk menyimpan hasil dalam satuan Volts
float suhuCelsius; // Variabel untuk menyimpan nilai suhu dalam satuan Celsius
float suhuFahrenheit; // Variabel untuk menyimpan nilai suhu dalam satuan Fahrenheit
float suhuKelvin; // Variabel untuk menyimpan nilai suhu dalam satuan Kelvin
LiquidCrystal_I2C lcd(0x27, 16, 2); // Mengatur alamat LCD dan dimensi LCD, yaitu 16 kolom dan 2 baris
void setup()
{
Serial.begin(9600); //Komunikasi serial dengan baud 9600
// Memulai LCD
lcd.begin();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("ProgressTech");
lcd.setCursor(0,1);
lcd.print("Protus");
delay(2000);
lcd.clear();
}
void loop()
{
nilaiAnalog = analogRead(pinSensor); // Membaca nilai analog dari PIN sensor
volts = nilaiAnalog/1024.0*5000; // Merubah nilai analog menjadi skala 10 Bit ADC
// Membagi angka voltase yang telah dirubah menjadi mili volts dengan angka 10
suhuCelsius = volts/10;
suhuFahrenheit = (suhuCelsius*9)/5 + 32; // Rumus untuk merubah nilai Celsius menjadi Fahrenheit
suhuKelvin = suhuCelsius + 273.15; //Rumus untuk merubah nilai Celsius menjadi Kelvin
// Hasil pembacaan disajikan melalui Serial Monitor
Serial.print("Suhu Celsius : ");
Serial.print(suhuCelsius);
Serial.print("°C | ");
Serial.print("Suhu Fahrenheit: ");
Serial.print(suhuFahrenheit);
Serial.print("°F | ");
Serial.print("Suhu Kelvin : ");
Serial.print(suhuKelvin);
Serial.print("°K");
Serial.println();
// Hasil pembacaan disajikan melalui LCD 16x2 I2C
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Suhu : ");
lcd.setCursor(7,0);
lcd.print(suhuCelsius);
lcd.setCursor(12,0);
lcd.print((char)223);
lcd.setCursor(13,0);
lcd.print("C");
delay(1000);
}