Measuring Temperature with Arduino Nano, Thermistor, and LCD Display


Introduction

In this project, we’ll explore how to build a temperature monitoring system using an Arduino Nano, 10k thermistor, and LCD display. The temperature is measured in both Celsius and Fahrenheit and is displayed on the LCD screen. A custom PCB helps to organize the wiring and components for a clean setup.

This project is perfect for beginners in electronics and microcontroller programming.

 

hardware setup with the LCD displaying temperature values.

Materials Required

To replicate this project, you’ll need the following components:

  1. Arduino Nano
  2. 10k Thermistor (NTC)
  3. 16×2 LCD display
  4. 10k Resistor
  5. Custom PCB
  6. Breadboard and jumper wires (if not using a PCB)
  7. Power supply (5V)
  8. Potentiometer for adjusting LCD contrast (if needed)

Circuit Diagram

The connections for the project are straightforward. Below is a table showing how to connect the components:

Arduino Nano Pin Component Pin Description
A0 Thermistor Analog Input (Temperature)
GND Thermistor Ground
5V Thermistor/Resistor Power Supply
D2 – D7 LCD Display Data Pins
GND LCD Ground
5V LCD Power Supply
D9 LCD Enable Pin
D10 LCD RS Pin

The thermistor forms part of a voltage divider circuit with the 10k resistor. The analog voltage is read by the Arduino, which then calculates the temperature.

Code Explanation

Below is the code to run the temperature display on the Arduino Nano:

//////////////////////////////////////

#include <LiquidCrystal.h>

LiquidCrystal lcd(10, 9, 2, 3, 4, 5);

int thermistorPin = A0;

const float BETA = 3950; // Beta coefficient for 10k thermistor
const float T0 = 298.15; // Room temperature in Kelvin (25°C)
const int R0 = 10000; // Resistance of thermistor at 25°C (10k)

void setup() {
lcd.begin(16, 2); // Initialize LCD with 16×2 size
lcd.print(“Temp:”);
}

void loop() {
int analogValue = analogRead(thermistorPin);
float resistance = (1023.0 / analogValue – 1) * R0;

float temperatureC = 1 / (log(resistance / R0) / BETA + 1 / T0) – 273.15;

float temperatureF = temperatureC * 9.0 / 5.0 + 32.0;

lcd.setCursor(0, 1);
lcd.print(temperatureC);
lcd.print(” C “);
lcd.print(temperatureF);
lcd.print(” F”);

delay(1000); // Refresh every second
}

/////////////////////////

PCB Design

The custom PCB shown in the image helps to organize the wiring and provide stable connections between the Arduino, thermistor, and LCD. Using a PCB instead of a breadboard can reduce the chances of loose connections and give your project a more polished, professional look.

Testing and Results

As seen in the image, the LCD displays the temperature in real-time. The current reading shows:

  • 33.98°C
  • 93.17°F

The readings are updated every second, providing live feedback.

 

Conclusion

This project demonstrates how easy it is to monitor temperature using an Arduino Nano and a 10k thermistor. By using an LCD display, the system is able to show the temperature in both Celsius and Fahrenheit. This setup can be expanded for use in various temperature monitoring applications, such as weather stations, home automation, and more.