NTC Thermistor Library for Proteus: a bead and a glass NTC thermistor with a fan LED beside an Arduino UNO V4.0

NTC Thermistor Library for Proteus: 10k Bead and 100k Glass

40
700
60
25
60
PCBWay

Hello friends, I hope you all are doing great. Today, I am going to share the new NTC Thermistor Library for Proteus. An NTC thermistor is a resistor that changes with temperature, and it changes a lot: a 10k part at room temperature falls to about 2.5k at 60 C and climbs to about 33k at 0 C. That makes it the cheapest, simplest way to give an Arduino a sense of temperature. You will find one inside battery packs, 3D printer hot ends, kettles, cars and almost every thermostat.

Updates

NTC Thermistor Library for Proteus

Latest version: V1.0 (November 2026, this tutorial)

Helping Tools

Our library has the two classic sensing NTCs at true scale: a black epoxy bead, 10k at 25 C, and a small glass one, 100k at 25 C, both with a B value of 3950 K. They are not just resistors that jump to a new value: they warm and cool slowly, with their own time constant, and the current through them warms them a little too, just like the real parts. At Run, you can even hold the mouse on the bead, like a finger. The pop-up shows the air and the body temperature side by side, the R-T curve and the self-heating.

NOTICE: Our team has put a lot of effort into these small parts: the bodies, the animation and the pop-ups are all our own design, and you get them free. Your feedback is the fuel that keeps us going, so please tell us what you think in the comments below or in the NTC Thermistor board of our forum. And if our free libraries help you, you can buy us a coffee. So, let's get started with the NTC Thermistor Library for Proteus:

NTC Thermistor Library for Proteus: a bead and a glass NTC thermistor with a fan LED beside an Arduino UNO V4.0
Figure: The NTC Thermistor Library for Proteus: two thermometers and a fan.

What is an NTC Thermistor?

A thermistor is a thermally sensitive resistor. It is made from a sintered ceramic of metal oxides, and its resistance depends strongly on its temperature. In an NTC, a Negative Temperature Coefficient thermistor, the resistance falls as the temperature rises, by about 4 % for every degree near room temperature. Its opposite, the PTC, rises instead, and is mostly used as a resettable fuse or a heater.

Two numbers describe an NTC. R25 is its resistance at 25 C, the value you buy: 10k is by far the most common. The B value, in kelvin, says how steeply it changes. With both, the B equation gives the resistance at any temperature: R = R25 times e to the power of B times (1/T minus 1/298.15), where T is the temperature in kelvin. Our model uses exactly this equation, with the temperature of the thermistor's own body.

The two thermistors in the library
FeatureThe epoxy beadThe glass NTC
StyleMF52, a black bead 2.5 x 4 mmMF58, an axial glass body 1.8 x 4 mm
R25 / B10k / 3950 K100k / 3950 K
Time constant, still airabout 7 sabout 10 s
Dissipation constant2 mW/C2 mW/C
Range-40 to 125 C-55 to 200 C

How the Resistance Changes

The change is not a straight line; it is steepest in the cold and flattens out when hot. For our 10k bead, the B equation gives about 33.6k at 0 C, 10k at 25 C, 2.5k at 60 C and about 680 ohm at 100 C. Measured as a percentage, the sensitivity is about -4.4 % per degree at 25 C and about -3.6 % per degree at 60 C. That large change is why a thermistor is so easy to read with a plain voltage divider and an analog input.

The Time Constant

A thermistor does not know the temperature of the air at once. Its body must warm up or cool down first, and that takes time. The time constant is the time it needs to cover 63 % of a sudden change. After five time constants it is within 1 % of the new temperature. For our bead in still air that is about 7 s, so it needs about half a minute to settle. In moving air or in a liquid it is much quicker; in a thick probe it can be minutes. Our model follows this curve exactly, so you can watch the reading creep towards the truth.

Self-Heating

Measuring a thermistor means passing a current through it, and that current makes heat. The dissipation constant, about 2 mW per degree for these small parts, says how much power warms it by one degree. A 10k bead in a 10k divider on 5 V burns about 0.6 mW, so it sits about 0.3 C warmer than the air around it. That is small, but it is a real error. The cure is a larger series resistor, or powering the divider only while you read it. Our pop-up shows the self-heating at all times.

Choosing the Fixed Resistor

An NTC is almost always read through a voltage divider: a fixed resistor from the supply to the analog input, and the thermistor from the input to ground, or the other way round. The reading changes fastest where the two resistances are equal. So pick a fixed resistor close to the thermistor's resistance at the temperature you care about most. For a room or a body near 25 C, a 10k bead wants 10k. For a hot end near 200 C, where the same bead has fallen to a few hundred ohms, a much smaller fixed resistor gives a far better reading, at the price of more self-heating.

NTC or a Digital Sensor?

Digital temperature sensors, with their own converter inside, hand over a calibrated reading of about half a degree, with no maths at all. An NTC needs a divider, an analog input and an equation, and without calibration it is good to about one degree. In return it costs a few cents, fits in tiny places, works far hotter than most digital sensors, and reacts quickly when it is small. For a probe in a kettle or a printer nozzle, the thermistor is still the right choice.

Where They Are Used

NTC thermistors measure the temperature of battery packs during charging, of 3D printer nozzles and beds, of engine coolant, of rooms in thermostats, and of the water in kettles and coffee machines. Larger power NTCs also limit the inrush current of power supplies, but that is a different job from sensing.

Features of the NTC Thermistor Library for Proteus

  • The real look, at true scale: a black epoxy bead on thin leads and a small glass body on axial leads, with our tiny TEP signature.
  • The B equation: the resistance follows the body's temperature, with your own R25 and B value.
  • A real body temperature: it follows the air with its time constant, and the current through it adds self-heating.
  • A finger: at Run, hold the mouse on the body, and it warms towards 33 C, like a real finger on a real bead.
  • The air at your command: -10 C, +10 C, ice, room, hot and boiling, from the pop-up.
  • Limits: it warns past its highest working temperature, and far past it the body cracks and it opens.
  • A pop-up for every thermistor: the air and the body as two thermometers, the R-T curve, eight live values, graphs, an event log and a check page.
  • A complete package: about 1.9 MB with the library, our Arduino UNO V4.0, the demo's LED and resistors, and the demo, without the source code of the models.

The Thermistors in Proteus

The devices are NTCBEAD10KTEP and NTCGLASS100KTEP in TEPNTC.LIB, under Resistors, Thermistors, with the prefix RT and the model TEPNTC.DLL. Search NTC in Pick Devices. A thermistor has no polarity, so pins 1 and 2 can go either way round.

A 10k epoxy bead and a 100k glass NTC thermistor in Proteus, each under a fixed resistor, on the stopped sheet
Figure: The bead (RT1) and the glass NTC (RT2), each under its fixed resistor.

The Properties

Double-click a thermistor to change these
PropertyWhat it does
Resistance at 25 C (VALUE)10k for the bead, 100k for the glass part
B value, K3950: from the datasheet
Air temperature at the start, C25
Time constant in still air, s7 for the bead, 10 for the glass part
Dissipation constant, mW/C2
Power rating, mW50
Highest working temperature, C125 for the bead, 200 for the glass part

Download NTC Thermistor Library for Proteus

Click the button below to download NTC-Thermistor-Library-for-Proteus-v1.0.zip (about 1.9 MB, without the source code of the models):

NTC Thermistor Library for Proteus V1.0
  • README.txt: installation, the demo, the properties, troubleshooting and the limits.
  • Proteus Library Files: TEPNTC.LIB, TEPLED5MM.LIB, TEPRESISTOR.LIB and our ArduinoV4TEP.LIB.
  • Proteus Model Files: TEPNTC.DLL, TEPLED5MM.DLL, TEPRESISTOR.DLL and TEPARDUINO.DLL.
  • Arduino Code: the demo sketch.
  • Proteus Simulation: the demo project, its HEX file and copies of the DLLs.

No Proteus yet? Read How to Download and Install Proteus 7 and 8. New to libraries? Follow How to Install a New Library in Proteus.

How to Install NTC Thermistor Library for Proteus

  1. Close Proteus and extract the whole zip file, for example to your Desktop.
  2. Copy the files from Proteus Library Files into the LIBRARY folder of Proteus.
  3. Copy the files from Proteus Model Files into the MODELS folder.
  4. Delete TEPNTC.IDX from the LIBRARY folder if it is there.
  5. Start Proteus, press P and search for NTC.

Demo: Two Thermometers and a Fan

The demo makes two thermometers. RT1, the 10k bead, sits under R1, 10k, in a divider on A0. RT2, the 100k glass NTC, sits under R2, 100k, on A1. A fixed resistor equal to R25 gives half the supply at 25 C, right in the middle of the analog range. A red LED on D8 stands in for a fan: it switches on when the bead passes 30 C, and off again below 28 C. Open NTC-Thermometer-Fan-ArduinoUnoV4.pdsprj. It runs on our Arduino UNO Library for Proteus V4.0, with its built-in monitor, the same window as our TEP Serial Monitor Advance for Proteus. The resistors are from our Resistor Library for Proteus and the LED from our 5 mm LED Library for Proteus.

NTC demo in Proteus: Arduino UNO V4.0, two thermistors in dividers and a fan LED on an A4 sheet
Figure: The whole demo on an A4 sheet.
The parts of the demo
PartConnectionJob
R1, RT1 (10k bead)+5V, 10k, A0, the bead, GNDthermometer 1
R2, RT2 (100k glass)+5V, 100k, A1, the glass NTC, GNDthermometer 2
R3, D1D8, 220 ohm, the red LEDthe fan

The Sketch

First, the sketch turns the reading into the thermistor's resistance. The thermistor is the lower half of the divider, so its share of the 1023 counts gives its resistance directly:

float ntcOhms(int raw, float fixedOhms) {
  if (raw <= 0) return 0;
  if (raw >= 1023) return 1e9;
  return fixedOhms * raw / (1023.0 - raw);
}

Then the B equation, turned around, gives the temperature from the resistance:

float celsius(float ohms, float r25) {
  return 1.0 / (1.0 / T25 + log(ohms / r25) / BETA) - 273.15;
}

The fan uses two limits, 30 C to switch on and 28 C to switch off, so it does not chatter around a single point:

  if (!fanOn && bead > FAN_ON) fanOn = true;
  if (fanOn && bead < FAN_OFF) fanOn = false;

Run the Demo

Press Run. Both thermistors start in air at 25 C. The bead reads 9.94k: a little under 10k, because its own 0.6 mW is already warming it a fraction of a degree. Click a lead of RT1 to open its pop-up:

NTC thermistor pop-up in Proteus: the bead at 25 C in 25 C air
Figure: RT1 in the room: about 25 C, 9.94k.

Hot Air and Ice Water

Now click Hot 60 on RT1's pop-up, and Ice 0 C on RT2's. Nothing jumps. The bead warms along its time constant: 5 s later it reads 47.0 C, and after 30 s it is at 59.9 C, 2.499k. The fan switched on as it passed 30 C. Here is the complete circuit, truly running:

The complete NTC demo running in the Proteus workspace with the fan LED on
Figure: The complete circuit running: the fan on.
NTC pop-up Graphs in Proteus: the bead warming in 60 C air
Figure: The bead warming: the body temperature rising, the resistance falling.

The glass part cools just as patiently, from 25 C towards 0 C, with its slightly longer time constant:

NTC pop-up Graphs in Proteus: the glass NTC cooling in ice water
Figure: The glass NTC cooling in ice water.
The bead and the glass NTC thermistor with their divider resistors up close in the running Proteus demo
Figure: The two thermistors up close.

After 30 s, RT1's pop-up shows the air at 60.0 C and the body at 59.9 C. The 400 µA through it burns 400 µW and adds 0.2 C of self-heating, and the point on the R-T curve sits at 2.5k:

NTC thermistor pop-up in Proteus: the bead at 59.9 C and 2.499 kohm in 60 C air
Figure: RT1 in hot air: 59.9 C, 2.499k.

At the same moment the glass NTC had reached 1.2 C, still on its way down. A few seconds later the monitor showed it settled at exactly 0.0 C, 335.3k:

NTC thermistor pop-up in Proteus: the glass NTC cooling towards 0 C
Figure: RT2 on its way to 0 C.
Arduino UNO V4.0 serial monitor in Proteus: the bead warming and the glass NTC cooling, line by line
Figure: The bead warming, the glass cooling, line by line.

A Finger on the Bead

Back at room temperature, the bead cooled to 27.2 C within 20 s, and the fan switched off below 28 C. Then we put a finger on it: hold the mouse on the bead, or click Finger on the pop-up. A finger is at about 33 C, so the bead warms towards it. Within 12 s it read 32.2 C, 7.30k, and the fan came on again:

A finger on the NTC bead in Proteus: the fan LED on again
Figure: A finger on the bead: the fan on again.
NTC thermistor pop-up in Proteus: a finger warming the bead towards 33 C
Figure: The finger warming the bead.

Take the finger away, and the monitor shows the bead cooling back down, one line at a time:

Arduino UNO V4.0 serial monitor in Proteus: the finger on the bead and taken away
Figure: The finger on, and off.

The Log and the Check Page

The Event log notes every change of the air, the finger, and the moment the body settles within 1 % of its surroundings. The Check page looks at the self-heating, the power against its 50 mW rating, the temperature range of the run, and the curve itself. We also tested the pop-up with a real mouse: a click on a lead of RT1 opened it at once.

NTC thermistor pop-up Event log in Proteus: the air, the finger and the settling
Figure: Every change, logged.
NTC thermistor pop-up Check page in Proteus: self-heating, power and the R-T curve
Figure: The Check page.

Try It Yourself

  • Click Boiling 100 on the bead, and watch how long it really takes to read 100 C.
  • Change R1 to 1k, and watch the self-heating grow on the Check page.
  • Swap R1 and RT1 in the divider, and change the sketch so it still reads the right way.
  • Set the time constant of RT1 to 1 s, as for a bead in moving air, and repeat the hot step.
  • Hold a finger on the glass NTC, and compare how fast it warms with the bead.

Ideas to Extend the Demo

  • Show both temperatures on our 16x2 LCD.
  • Use the Steinhart-Hart equation for better accuracy over a wide range.
  • Drive a real fan with a transistor, and make its speed follow the temperature with PWM.
  • Log the temperature every minute, and plot a day of readings.

Your Own Sketches

The demo sketch is in the zip file, and you can change it in the Arduino IDE. New to Arduino? Start with our Arduino Tutorial for Beginners. Export the compiled binary, and set the UNO's PROGRAM property to the new file. Our guide on How to get the HEX file from Arduino shows you where the file ends up.

Things to Know Before Using a Real NTC

  • Use the datasheet's B value: 3950 K is common, but 3435 K and 4100 K are just as easy to buy.
  • Keep the current small: self-heating makes it read high; a larger series resistor helps.
  • Give it time: after a change, wait about five time constants for a true reading.
  • Mind the range: an epoxy bead is good to about 125 C; above that, use a glass one.
  • For better accuracy, calibrate: the B equation is good to about 1 C over a modest range.

Troubleshooting

  • The reading is a little high: self-heating. Use a bigger resistor in the divider.
  • The reading lags behind the air: that is the time constant. Wait, or use a smaller part.
  • The temperature goes the wrong way: the thermistor and the fixed resistor are swapped in the divider.
  • It reads open: it burnt far past its highest working temperature. Click New part.
  • The part is not simulated: TEPNTC.DLL is missing from MODELS and from the project folder.

Limitations of the Simulation

  • The B equation is used; the extra curvature of the Steinhart-Hart equation is left out.
  • The tolerance spread, ageing and the heat that flows along the leads are left out.
  • The surroundings are one temperature at a time: the air, or a finger.
  • Arduino is a name of Arduino; this library is not made or endorsed by Arduino or Labcenter.
  • Tested in Proteus 8.5 in November 2026 (the demo as shipped). Proteus 7 is not supported.

So, that was all about the NTC Thermistor Library for Proteus. I hope it helps you build thermometers that behave like the real thing, slow, honest and a little warm. If you have any questions, ask in the comments and I will help you out. Till the next tutorial, take care and have fun!


Comments

0

Join the conversation