Head office, Rana Pratap Bagh, Delhi011 2721 1512+91 97116 99511

Science project idea

Digital room thermometer with an LM35 and LCD showing the day’s minimum and maximum

The LM35 gives 10 millivolts for every degree Celsius. The Arduino reads this voltage with its analog input, converts it to degrees and shows the present, lowest and highest readings on a screen.

What it shows

The LM35 gives 10 millivolts for every degree Celsius. The Arduino reads this voltage with its analog input, converts it to degrees and shows the present, lowest and highest readings on a screen.

The science

The LM35 output is exactly 10 mV per degree C, so 25 degrees gives 0.25 V. The analog input has 1024 steps; with the default 5 V reference one step is about 4.9 mV, so readings jump by half a degree. Selecting the internal 1.1 V reference with analogReference(INTERNAL) makes one step about 1.07 mV, so the reading is accurate to about 0.1 degree. The temperature is the reading multiplied by 110 and divided by 1023.

Materials

Cost: under Rs 1,500. Many items come from home or from waste; spare parts such as LEDs, motors and wire are in the store.

  • An Arduino Uno or compatible board
  • An LM35 temperature sensor in TO-92 package
  • A 16 x 2 LCD with an I2C backpack (address usually 0x27)
  • A push button for resetting
  • A breadboard and jumper wires
  • A USB cable and power bank

Safety

For this project: USB power only. Check the LM35 legs before powering: with the flat face towards you, they are +5 V, output and ground from left to right.

Never use mains electricity: power models with cells, batteries or a low-voltage adapter. Sharp and hot tools, flames and lab chemicals need an adult or your teacher beside you. Keep magnets, button cells and small parts away from young children, and wash your hands after making.

All the safety rules

Step by step

8 steps. Do them in order, and test each part before you go on to the next. Write what you notice in a notebook as you go.

  1. Connect the LM35 pins: left to 5 V, middle to A0, right to GND.

  2. Connect the LCD I2C backpack: VCC to 5 V, GND to GND, SDA to A4 and SCL to A5.

  3. Connect the push button between pin 2 and GND, with the internal pull-up enabled in the sketch.

  4. Install the LiquidCrystal_I2C library from the Library Manager.

  5. In setup, call analogReference(INTERNAL) and initialise the LCD.

  6. Read A0 once per second; average ten readings to remove noise and convert with reading x 110 / 1023.

  7. Keep variables for the minimum and maximum and print the three values on the two lines of the LCD.

  8. Check the display against a mercury or digital thermometer and note any offset.

What you should see

The display shows temperature to 0.1 degree, the maximum and minimum since reset, and agrees with a reference thermometer within about 1 degree.

Viva questions

A teacher or a judge will ask how it works. Try to answer each question before you open it, then compare.

1How many millivolts per degree does the LM35 give?

10 millivolts per degree Celsius.

2Why select the 1.1 V reference?

It gives smaller steps so the reading is more precise.

3Why average ten readings?

To reduce random noise in the analog values.

4Why does a wire touching the LM35 change the reading?

Heat from your hand flows into the sensor, so keep it away from warm things.

Free ebook: Viva Questions for Science Projects

Take it further

Store a reading every ten minutes in the EEPROM and print a day’s graph on the Serial Plotter.

Change one thing, measure what happens, and add a table or chart of your readings: that is what turns a model into your own investigation.

Free ebooks for this project

WhatsApp us