To read the complete worklog - click here (worklog)
To see the references for this project - click here (references)
The purpose of this project is to make a PID controller from a scratch, following the PID theory that i wrote some time ago. I plan to use this controller for a future project that i will make, a PCB preheater. Here is a video in which i demonstrate the controller:
I usually test the circuits on a breadboard first, but due to the fact that the MAX chip is an SMD and also the circuit is quite complicated, I decided to go directly on a prototype PCB instead. The whole idea worked perfect, except of a minor mistake that i did when transferring the circuit from schematic to PCB.
The bard has 2 potentiometers, one to control the set-temperature and one to control the speed of the fan with PWM pulses. There are 4 inputs for 4 switches/buttons, and 2 outputs for 2 LEDs. The controller can control both 3-wire and 4 wire fans with RPM feedback. When controlling 3-wire fans, the system uses the pulse stretching method to acquire the fan speed.
The controller reads the heater temperature with a K-type thermocouple, interfaced to the PIC with the MAX6675 (Cold-junction compensated K-Thermocouple to digital converter) through SPI protocol. The heater is controlled by a TRIAC (BT136D) and can handle up to 4A. A galvanic isolation is achieved by using an optocoupler to drive the TRIAC'S gate. I currently use the heater from a hacked hair dryer.
file gia.molis tora se brika ke ise poli endiaferon. exo mia idea gia pio statheri thermokrasia gia pid temp controllers.nomizo pos tha itan kalitera an anti na kobete to power apo to heating elemend , apla na mionete kai na afksanete otan pesi I thermokrasia,etsi o xronos pou xriazete gia na ftafi I antistasi sto maximum pig temp tha ine poli ligoteri kai to lathos ligotero. ti nomizis, ? se efxaristo.
@Angeltech Follow the schematic as shown - I added the wire after i discovered the problem with the PCB, so there may be pictures without the wire. I really cannot remember what happened.
As for the fan, you need an oscilloscope to see if the PWM pulses arrive at the fan.
Sir I have no luck with fan speed in 3 or 4pin fan still not working right, hope you could help another thing is do I have to connect pin 23 and pin 6 of microcontroller seems you just connect it and remove on the demonstration picture. please advice.
Sir thank you very much, now the 7 segment brightness is the same, still working on the fan problem maybe I have to change the darlington transistor which i used C4169 that contains diode and zener that might effect the control signal.
@Angeltech I used 2 different display sets so i have different delays to have same brightness. What you want to do not is go to the "Display.inc" file and replace the "call Wait390uSec" with "call wait2mSec" (found 3 times).
For the PWM, i'm not sure what the problem is. It should work.
@Iuliu well, actually i do, but i have not finish the housing. I stuck in the nozzle which was originally from special plastic, but it was eventually not so special to withstand the heat of the resistor which accidentally came into contact - so it burned into flames. I will make it from stainless steel or something like that.
Hello Giorgos Lazaridis have you made the new proiect "a PCB preheater" ?
I'm thinking to do my self to,but i want to use 16f819 ,that pic i have about 5 pieces,my question is is fast enough at 4 Mhz clock?
@Ricardo The layout had errors, check this page:
I have not correct these errors, so you will need to find and correct them yourself. If this is ok with you, i can send the layout to your email. And if you correct these errors and it works, you can send them back so i can then upload them in the site.
@Ricardo The worklog is here:
There are 5 pages in which i explain exactly how i made it. As for the parts, i cannot help you with them. You need to locate them from your local market, or order them from internet like from farnell.com
Hi! I know there are a lot of information in your website but I can not find some parts like these:
IC1 PIC 16F1937 Microcontroller
IC3 MAX 6675 Cold-junction compensated K-Thermocouple to digital converter (0°C to 1024°C)
IC5 ULN2003A High Voltage - High Current Darlington Arrays
IC6 MOC3021 Random Phase Optoisolator TRIAC Driver Output
IC7 DF02M 1.5 Ampere Bridge Rectifiers
Also, I'd like to ask you the source code in assembly...
Hi! Assembly it will be nice for me...Can you provide the source code? I want to buy the hardware (PCB) already done/working but I need the 18F4520 instead 16Fxxxx. I don't have time to do it myself and I won't find some parts in my place so, let's talk about...Can you help me? Since now, thanks a lot!
Hello!! How's it going? I'm stating Control&Automation Engineering and I liked your job..very nice! So, I have a question, Is there any chance you provide me the source code in C ? I would like to learn how to program PID ALg into a PIC18F4550 using MikroC compiler so, could u help me, please? In last case, Do u have PayPal account? ;) Let's go deal!
@awan i've been trying to convert the old-style articles (like this one) with the new style articles. I have already upload the TCPDF library, but i cannot get it to work. I hope everything will work well in the end.
@Stefan i'm sorry but i do not do circuits (nor programs) on demand. You will need to do the change yourself, or get a same PIC. As for the ULN, it is a darlington pair array. Instead of using 6 transistors i use this.
Good job,I have a plans for this,but there not in function.So I would like you to finish this project and to build one for myself.But I don't have that PIC microcontroller that you're using I want to use PIC16F877A(887 etc.) can you recompile for it?And I want to know why there is ULN2023,what is his job? :D