February 29th, 2008
PIC16F684 Based Digital Thermometer
This is a very accessible project for beginners. If you are thinking into starting with microcontrollers, this is better than a blinking LED. Basically we have a 3-digit 7 segment display showing data from a thermistor, and all this is controller by a PIC16F684. The circuit will tell the temperature between 0 and 140 farenheit. This project is actually quite easy to build; the hardest part is calibrating the thermistor… If you need more info on the project visits the authors page using the links bellow.
Parts List:
- 1 x PIC16f684 microcontroller
- 1 x 14 pin IC socket (so the PIC can be removed to reprogram)
- 1 x Thermistor (see below)
- 3 x 2N3906 PNP transistors
- 1 x .01mF capacitor (any kind)
- 10 x 100ohm 1/4watt resistors
- 1 x 3-digit 7 segment display
- 1 x 3 AAA battery holder with switch.
- 1 x PCB breadboard
- etching chemicals to make board etc.
PIC16F684 Based Digital Thermometer:


April 13th, 2008 at 3:09 pm
hi. can you help me please. can you make project about digital thermometer with mikrobasic compiler.thanks
April 13th, 2008 at 3:10 pm
with 16F877 AND DS1820
April 13th, 2008 at 6:51 pm
Hello, I’m sorry but i don’t develop any software, you could though subscribe by email or by RSS feed to this blog and monitor the upcoming presented projects, maybe something will come up. Good luck with the project
May 1st, 2008 at 8:23 pm
Dear sir,
I have not programming software for pic16f684 . could you please give me a programming software for pic 16f684?
awaiting for ypur valueble reply
Regards
Santhosh
May 1st, 2008 at 9:30 pm
hey Santhosh , watch this tutorial on youtube about programming a pic with MPLab, it describes the technique quite nice.
June 5th, 2008 at 7:35 pm
I would like a schematic diagram of the PIC16F684 Based Digital Thermometer with the source code. This project could be use with Project Lead The Way during the summers here at Sinclair Community College.
June 5th, 2008 at 9:32 pm
The links for your project “PIC16F684 Based Digital Thermometer” do not work. Is there some other way to receive the schematic and source code? Thank you, Blub
June 6th, 2008 at 7:29 am
Hi. This is an interesting project. I am trying to figure out how to measure a voltage into a PIC with an ADC input and display it on a scale of 00 to 80 using a two-digit LED or LCD display. Maybe there is a way to modify what you’ve done with your thermometer to accomplish this. The voltage at the ADC pin would come from an op-amp. The voltage comes derives from a strain gauge that doesn’t return to “zero” when it’s at rest. I need to:
1. Measure a voltage value at the ADC pin of a PIC chip on power-up.
2. Use that value to “zero” the two-digit display. The firmware must “see” that voltage as a starting point reference, or zero.
3. Perform a calculation given the voltage on the ADC pin at power-up, that returns a higher voltage value representing the highest displayed number, “80.” In other words, the voltage on the ADC pin at power-up will determine the voltage range to be divided up into 80 little pieces. So if the range on the ADC pin is 220mV then it divides that up into 80 equal parts of 2.75mV each. No matter what the range it is always displayed as 00 to 80, whether it’s 220mV or 248mV or whatever. It’s always has to display as 00 to 80.
Have you made anything that displays various voltage ranges as a single scale? I’m going to have to study this more.
Best,
Blub
August 18th, 2008 at 11:09 am
keep it up.
October 22nd, 2008 at 3:13 am
Help me understand the source code. I see you provided a link and when I unzip the code, it has an extension “.c”, so apparently the code was written in “C”. I can’t figure out how to use this source code with Microchip’s MPLAB. Their tools seem specific to assembly code only and cannot import this source file written in C. Maybe I just don’t get the big picture. Please enlighten! Thanks.
October 22nd, 2008 at 3:18 am
In other words, what tool did you use to convert the C source code to executable binary to load into the PIC?
October 22nd, 2008 at 7:33 am
Bob, there are various C compilers for PIC micro-controllers, examples:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868
http://www.ccsinfo.com/content.php?page=compilers
I don’t know the one that the author used when developed this project, but i think you should try the one from microchip if you have access to it.
October 22nd, 2008 at 7:41 am
Thanks much Florin…. I have been browsing Microchip’s site and I think I am zeroing in on the solution. –Bob
October 23rd, 2008 at 11:15 pm
Hi Florin,
I was able to use Microchip’s tools to get this project up and running! A question: I would like to use a common cathode display (instead of the common anode display the project uses. I understand the hardware changes needed (transistors need to be NPN with appropriate connections). But, I’m not too microprocessor savvy so studying the source files, what would need to be changed to make this happen? For example, in the definitions, I would guess that the ON state needs to be defined as 1 (instead of 0), etc. Any help is appreciated.
October 24th, 2008 at 3:04 am
Ah, I figured it out .. needed to invert the definitions for each display segment as well as redefining the ON and OFF states to be 1 and 0 respectively.
October 24th, 2008 at 9:03 am
Bob, sorry for my late reply, but as you figured out that is exactly what you need to do. You either drive them by supplying VCC or you drive them by supplying gnd, and accordingly connecting the other side of the display.
February 9th, 2009 at 5:41 pm
can you tell me what kind of thermistor i need to use ?
February 9th, 2009 at 6:37 pm
Tom, Sorry but I’m not the author of the project and I don’t know for what kind of thermistor the author designed it.
February 20th, 2009 at 6:25 am
Sir, i want to make this as our project, can i have a copy of the circuit or it’s schematic and code. Please Sir.
February 20th, 2009 at 6:19 pm
Just a comment. I built this thermometer and it works great. Instead of using a thermistor, I used a precision temperature sensor LM34. The A/D input of the processor just needs to see a voltage that represents temperature and the LM34 does just that. By using the LM34 and some adjustments to the code, it is possible to have a wider range, precision thermometer. I used this circuit in a gauge that I made for a vintage automobile project.
February 20th, 2009 at 6:26 pm
Thanks for sharing Bob
February 20th, 2009 at 6:33 pm
Hi Florin, no problem! You were very helpful in the early stages of this project. I would be happy to share the ‘new’ schematic and code with you. I guess there is no way to send attachments through this site, but if you would like to e-mail me then we can do it that way. Regards, Bob
February 20th, 2009 at 6:43 pm
Bob, I’ve removed the email from your comments so it doesn’t get harvested by crawlers. Please use the email address from the contact page, to get in contact with me and I will be happy to post your project.
February 27th, 2009 at 6:10 am
Sir, thank you for the schematic and codes that you’ve given. I really appreciate this. This will really help me. Thank you FLORIN.
February 27th, 2009 at 5:08 pm
I’m glad it helped you.
March 2nd, 2009 at 10:14 am
hi thank for your greatfull website. i want to khnow how can i acceess to the program of the locked ic (atmega8l). my program is universal 2000(tnm). thanks so much
March 3rd, 2009 at 12:09 am
Hello, I don’t actually understand what you mean by the locked program. But if you mean the hex from the mcu, that cannot be read with conventional methods after the mcu has been locked for read/write.
March 3rd, 2009 at 10:00 am
hi. thanks for your answer. sorry for my bad english. i mean that i have a programmed ic for example atmega8l, & it’s fuse bit are locked, is there any way for access to the hex file of this ic? thanks a million
March 3rd, 2009 at 10:02 am
sorrry, my another problem is that i cant open the link of this digital thermometer, would you please put the complete address for me .
March 3rd, 2009 at 10:12 am
is it possible for you to put dc ammeter on your website?
March 3rd, 2009 at 4:52 pm
first question: already answered in my previous comment
second question: answered in comments above
third question: dont know what that is
March 4th, 2009 at 6:38 am
thanks a million for your answer
March 6th, 2009 at 12:16 pm
sir, does the number displayed in the 7 segment fluctuates from time to time?
March 6th, 2009 at 12:18 pm
the number should fluctuate when it picks up temperature changes
March 6th, 2009 at 5:50 pm
The numbers fluctuate for two reasons: (1) the resolution of the analog to digital conversion is not completely perfect as not all bits are being used. (only 8 of the possible 10 are used in this design). (2) What I found was there can be some noise at the analog input that disturbs the accuracy of the conversion. This can be eliminated by a simple R-C filter (1K, 0.1 uF) at the input of the converter (RA4, pin-3). Also, you need to make sure your power supply is solid. I ran my circuit from a regulator and this improved things quite a bit.
November 16th, 2009 at 1:28 pm
Hello Sir,
I am doing a project. my title is ELECTRONIC CONTROL OF BLOCK HEATER ELEMENT. I using PIC16F684 Processor., can i get the systematic block diagram and the code for this please.
November 16th, 2009 at 1:59 pm
Hello, please check the links now as I have updated them.
November 17th, 2009 at 3:31 pm
Hello Sir,
I cant see the links that you have updated. Can you post them again.
November 17th, 2009 at 3:40 pm
vamshi,
the links are at the end of the article.
also the links are posted in comments if you look above.
November 17th, 2009 at 7:36 pm
Hello sir,
can you send me the coding of that please.
November 18th, 2009 at 11:13 am
vamshi,
I’m not the author of this project. I suggest you follow those links for more info.
November 21st, 2009 at 2:26 pm
Hello sir,
Is there any burners used for PIC16F684. Can you please let me know?
The main use of burner is for sending the code into the chip.
I wanted to by PIC16F684 and also the burner that is used in it.
Have you got any idea? Can You please let me know.
Thanking you
Vamshi
November 21st, 2009 at 4:15 pm
Hello sir,
Is there any burners used for PIC16F684. Can you please let me know?
The main use of burner is for sending the code into the chip.
I wanted to buy PIC16F684 and also the burner that is used in it.
Have you got any idea? Can You please let me know.
Thanking you
Vamshi
November 23rd, 2009 at 11:48 am
Hi Vamshi
Try the links at the end of the article. Maybe the author mentioned something about the programmer he used to load the code on the pic
December 1st, 2009 at 2:24 pm
Hello florin,
I cannot find any links at the end of the article with the circuit diagram i needed. Can you please send me the circuit diagram of PIC16F684 to my mail please….
December 9th, 2009 at 9:07 pm
Hello Sir,
I have sent my prof. the circuit diagram than this is what he has repiled to me. how can i sent you the circuit diagram.
Still a couple of obvious problems.
1. It is not meant to operate from the mains, the heater elements are 12V
2. We do have the PIC16F684 and PICkit1, but no LCD – as I said, it would be easier to send data to a PC
3. You would have to have some communication with a PC anyway – else how do you adjust the temperature?
If you say there is no need to adjust it then there is also no need to display it.
4. The temperature range required is only up to 100degC so the cost of a thermocouple amplifier is not really justified – it would be easier to use a semiconductor sensor or even a digital transducer such as the DS1820
Please do reply me
Thank you
vamshi
December 10th, 2009 at 12:43 am
Hi,
As I previously said, I’m not the author of this project, this is just a page linking to the original project page. The purpose of this page is to help people find projects. I cannot provide any support for a project that it’s not mine. Good Luck
April 15th, 2010 at 12:51 am
I am planning to built this project for school.It seems like easy and appropriate for a beginner as me..
The problem is, I have a limited time and do not able to modify it or fix it, if I will come across a problem.
Did anybody complete this project without any problem?
Is the fluctuation problem of the display a handicap of the project or is it due to defect of connection? .
Thank you guys..
April 15th, 2010 at 8:02 pm
Just quoting Bob from last year:
#
“Bob A. Says:
March 6th, 2009 at 5:50 pm
The numbers fluctuate for two reasons: (1) the resolution of the analog to digital conversion is not completely perfect as not all bits are being used. (only 8 of the possible 10 are used in this design). (2) What I found was there can be some noise at the analog input that disturbs the accuracy of the conversion. This can be eliminated by a simple R-C filter (1K, 0.1 uF) at the input of the converter (RA4, pin-3). Also, you need to make sure your power supply is solid. I ran my circuit from a regulator and this improved things quite a bit.”
November 27th, 2010 at 11:23 pm
The links provided bring you to GoDaddy.com????
Is there some other way to access the schematic and code?
Thanks
January 24th, 2011 at 11:11 am
Can you put files on other site, because this appear to be suspended
Thank you
May 19th, 2011 at 11:35 am
plz visit this site http://www.circuitlake.com/pic-digital-thermometer.html with complete project