Author Options:

ICL7107 and LM35 based 7-segment thermometer Answered

I'm trying to create a digital centigrade thermometer based on an ICL7107 3 1/2 digit 7-segment driver/ADC and an LM35 linear centigrade temperature sensor but I'm having a few problems. There doesn't seem to be much online about using the ICL7107 with a LM35 and most of the schematics available are for volt meters, but that's not a massive problem as the LM35 gives 10mV/C linearly. I'm just trying to go based on the few schematics I have found but I'm wondering about the supporting components for the LM35 which seem a little too simple. The first schematic I found was from a Hungarian electronics forum and seems to depict a diode and amplifier being used for the temperature sensing which seems like a bad idea to me. The second seems more like what I'm trying to do.

The other few things are the negative voltage source, the first schematic shows an inverter being used as does the datasheet, but the second schematic shows an LMC7660 voltage converter which seems like a better option to me. The second one does also show three diodes in series used to drop the voltage for the LED displays which doesn't seem like the best idea, but I can't think of a better way to do it without attaching resistors to each one as the number of lit segments will be variable.

The supporting components for the ICL7107 seem pretty consistent between the two and the schematic so I'm confident those are correct, but I'm looking for some advice on how to connect the LM35 in a way that will give me an accurate readout.



8 months ago

hy, could you tell where to find ICL7107 on eagle? thank you:)

Both circuits will work.

In the first circuit you can exclude the sensing diode and amplifier circuitry and connect the LM35 directly as in the second circuit.

The negative voltage generator (4049 plus diodes and capacitors) in the first circuit is straight from the data sheet. It's an unregulated charge pump. The data sheet also suggests the 7660 as an alternative. The 7660 would be better as it would have regulation to produce an accurate -5V.

You're right about the diodes connected to the display power. Each diode drops about 0.6V, 1.8V total, LEDs get about 3V. This will reduce power dissipation in the 7107. These are not really needed, neither are resistors, as the display driver circuits will only allow 8mA through each LED. Power dissipation only becomes a problem if all LEDs are lit continuously, 1888 , and/or the 7107 is in a high temperature environment. Only the decimal point/s need resistors.

I would go with the second circuit without the display power diodes. Simpler circuit and easier to build. Note that this will only give you 2 to 150 degrees C. If you want the full range (-55 to 150) you will need to remove the 180R and connect a 100k resistor from the LM35 output to the -5V on pin 26. You may not need the 10k from pin 31 to ground. You could also reduce the 10M to 1M, not critical. Setup the 7107 as a 2V voltmeter with the last digit as the decimal. The meter will show degrees C directly as 10mV will display as 1.0 . You should not have to adjust for zero, just need to set the voltage on pin 36 to 1V. The LM35 should not need any adjustments.

i tried mounting your second circuit on bread board and i also read all your comments on how to troubleshoot the ckt. however i am getting o/p as -1666. what should i do.? i am using 7107 ic along with single bit display and not double bit as you have used in the above ckt. plz help me in the same.

First, getting -1666 is a strange result. Have you measured the voltage at pin 31 ? This looks like an overload of more than -2 volts and the display should show -1999 . Have the displays been connected correctly?

hi ! sorry to disturb but i have a problem with the circuit, u can check the comment above, i have simulate the circuit based on ur circuit but it is not working, it is showing 0 0 0 instead of the temperature.

Sorry but it is hard to troubleshoot your circuit over the internet. I would suggest that you check your circuit 2-3 times (if you have not already).

Check voltages on the 7107 on -

pin 26 , should be -5V.

pin 36, should be adjustable to 1V.

pin 31, should match the temperature 0.250 V for 25 C.

Check the output pin on the LM35 across the 180R, should be the same as pin 31.

You could also disconnect the LM35 output from the 180R and connect a known voltage like a 1.5V battery across the 180R resistor. The display should show 150 .

These tests should show you where the problem is.

the 1V should be measured between pin 36 and 32/35 (pins 32 and 35 connected together)

Thanks for the help. I've gone for a 7660 as the negative voltage generator for simplicity and also because they don't seem to be much more than 4049s these days.

Good to hear about the diodes. I was wondering if it'd be current limited by the chip or if it'd be in danger of burning out if I didn't dissipate it- the 7-segment displays I'm using are 2V 20mA each.

I've got it set up without the first 'half' digit as I don't anticipate it'll be used under 0 degrees or over 100 but I may just wire a normal LED up to them as an out of range indicator. I have the decimal point set up on the second display and a 4th display inverted from the others permanently fixed to show '°C'

I think I've got the schematic sorted now and I've got some parts on the way so I can test it in a breadboard before I produce a PCB. The pin numbers are as they are because I'm using the MQFP-44 variant of the ICL71707- I made a pin conversion reference here attached with the schematic to this post.


No worries, glad you've been able to sort it out.

The display won't be at full brightness as each segment will be running at 8mA and not 20mA. You may need to get high brightness displays if you need a brighter display, or extra driver circuitry to handle the higher current.

Looking at your circuit I think there are a few mistakes.

R4 should be connected to +5V on pin 8 and R6 to -5V on pin 34.

R7 is too high, it should be 62 ohms to get 8mA through each of the 6 LEDs, 3V / (6 x 0.008 A)

Thanks again- The DIP components have arrived and I've been able to breadboard it to test that it works however I'm having a bit of an issue with the references. COMM gives 4.66v out with a supply of 4.9v and the potentiometer's range only goes from 4.4v to 4.9v which causes the display to permanently read '00.0' and the out of range LED is lit.

I've included the schematic which I worked to for the breadboarded design and also a photo of the breadboard set up (might be a bit hard to see, but it may be something obvious I've overlooked!). The display isn't visible in the photo because of the camera flash, and I've gone through and double checked the connections against the schematic and I can't see anything in the wrong place.


Hi, the problem with your circuit is that pin 30, IN-LO should be connected to GND not pins 35 &32. IN-LO needs to be referenced to GND since the output of the LM35 is referenced to GND of your power supply.

If the LM35 was not connected to the same power supply then IN-LO should be connected to COMM. Like a battery operated remote sensor.

I missed that on your previous circuit, I was concentrating on other parts of the circuit, sorry.

No problem, thanks for the help! I noticed an even more serious mistake in the breadboard, I had connected v- on the ICL7107 to v+ rather than vout on the ICL7660. After fixing that and IN-LO to GND, it now displays numbers correctly however I'm having a bit of a problem calibrating it. It seems to be very unstable and jumping around all the time, and the minimum voltage on the potentiometer is around 1.8v. I've tried playing around with it but it doesn't seem to stabilise or be calibrated properly.

Just to be clear, IN-LO should now be connected to GND, and IN-HI and the 1M resistor (R5) through a 10nf capacitor and 32 and 35 (COMM and REF-LO) still together to one end of the potentiometer correct?

COM(32) is always 2.8V below V+, if V+ = 5V then COM = 2.2V. If you measure between GND and COM you should get 2.2V, REF-LO should be the same, 2.2V. REF-HI should be at 3.2V with reference to GND when calibrated.

Using just a potentiometer for the calibration is not the best. The range will be too large and the adjustment too coarse. Using a 10 turn trimpot and a resistor as in your first circuit (22k trimpot & 24K resistor) would work better. You'll get an adjustment range of 0-1.3V. The 10 turn trimpot will give you very fine control (0.13V per turn). You can lower the 24k resistor to give a larger range and have the 1V more in the center of the trimpot (10k gives about 0-2V).

If the numbers are still jumping around you may have some noise affecting the input. One application note specifies that you should not connect IN-LO(30) to GND through the same wire as ICL7660 GND(21). IN-LO should be connected to the power supply GND directly with its own wire. GND(21) carries a lot of noise from the digital displays. See the diagram below.

Also check that COM has a good connection to REF-LO.

See the circuit diagram below for the changes I have suggested, last post and this one. Hopefully it will make it clear.

temp meter 1.pngICL7660 grounding.png

Just need to add that the 1V calibration is measured between REF-HI and REF-LO, not REF-HI and GND. I had put that in my previous post but it seems to of disappeared.

hi all ! i follow all ur instructions but i get 0 0 0 in my 7 segment display. can u please help ? thanks alot !


Hi, only just saw this comment. I can't read your schematic very well (too low resolution). Have you built this circuit or have you only simulated it?

If you have built it then see my other comment on troubleshooting.

Start with the datasheet


That includes application circuits for 200mV full scale and 2V full scale, and how to scale the input - which you can determine by your maximum input temperature - if that was 100C, you would have 1000mV input, and you can arrange the DP to show 100.0, giving you an accuracy (but not precision) of 0.1C

I have been reading the datasheet but I'm a bit stuck- as you say 0-100 degrees would be 1V full range and it looks like the ICL7107 does either 200mV or 2V operation, and I'd need to use the latter. That seems relatively simple, 47nf cap instead of 470 and 470k resistor instead of 47 on the buffer.

What I'm stuck on mainly is the values of resistors/potentiometers to use for the LM35 input, and I guess I'll need two potentiometers in there somewhere? (one for the zero adjust and one for the scale factor adjust).

I've been re-reading the datasheet and it does mention the ICL7660, but goes on to demonstrate using a 4049, is there any reason for this or if it'd be any better to use one over the other? The ICL7660 seems an obvious choice as it requires less external components and comes in a smaller package.

From what I understand, it does allow LEDs to sink into the chip at supply voltage (5v), making the voltage-dropping diodes in the second schematic obsolete.

4049 is a cheaper solution. IIRC, the Lm35 had an offset zero, so deal with that first. Just put a multi turn trimmer on the reference voltage. If use an LM335 2.5V REF aND trim that to get what you need.