Here is a screenshot from the schematic diagram. Since the resolution is very bad and since i use may buses and labels, i will upload the eagle files as well:
Top left is the power supply. Since this circuit is going to operate in a very noisy environment, i had to add some extra filtering blocks. C1 C2 and L1 is a Π filter to reduce EMI and voltage spikes. The input is then regulated to 5 volts with a 7805. A second Π filter is used to filter the 5 volts. Since the PIC that i be using operates at 3.3V, i added an LM317 (IC3).
The LCD (top right) is a 20 by 4 character LCD display with the HD44780U Hitachi controller. At the bottom there are 3 sub-circuits. The first (bottom left) is a PWM LCD contrast adjustment circuit. Actually, this is a low pass filter (R7-C5) driven from a voltage amplifier (T1-R6). I have a page in which i explain in details how this PWM LCD contrast adjustment circuit works.
At the bottom mid of the schematic is the second sub-circuit. This is the LCD brightness adjustment. Since the LCD has LED backlit, pure PWM pulses are enough to change the brightness. But the PIC outputs only 3.3V with a maximum of 20mA. The first transistor (T2) is a common emitter voltage amplifier which amplifies the PIC output from 3.3 to 5 volts. The second transistor (Q1) is a typical emitter follower (common collector) to provide maximum current for the LEDs. Finally, the third sub-circuit (bottom right) is a set of pull-up resistors for the 4 inputs.
The main portion of the circuit is at the middle of the page. On the left side there are the 3 MAX31855J chips for the J-type thermocouples. The chips are directly interfaced with the PIC which is at the center of the page. As always, i add an on-board push-button for hardware reset. The PIC is programmed through the ICSP connector on the right side.
This project is probably a stretch. Heater control is a big deal in industry and there are already many complex solutions to heating control. Each situation is different and the designer must know the parameters and tolerances he is working with. It is not possible for the equipment operator to be expected to adjust the PID parameters on the fly because that is the engineer's job and a very complicated one at that. Plus, the indiscriminate adjustment of various parameters on the fly can easily cause system instability that is difficult to understand and correct unless all the system details are known. You will probably NOT want to use 3 discreet resistors for the heating. Typcially a pot like this is heated using banded silicone surface heaters wrapped around the pot. You must define the allowable temperature variation under operating conditions and how quickly the temperature must stabilize. From that data you can specify how much power the controller must be designed for. The smaller the allowable temperature variation, the higher the required power. Heating control is a bit simpler than, say, a robotic arm or other mechanical device and I doubt you will need derivative factors to do it. Just the capacity to change the temperature of the pot - under various states of fill - should do it. Remember that as soon as liquid is poured from the pot, the applied power will need to be reduced immediately to avoid overheating the remaining fluid. I suggest checking into alternative sensing devices such as IR optical/temperature sensing to avoid breakdown of the tiny thermocouples. You will also get more accurate readings on temperature than a t.c. placed on the outside of the pot. These solutions are difficult and expensive. Have a look at the control circuitry that exists at the industrial level and you will get an idea of how complex it can be. Programming the PID parameters is an iterative process and cannot be done from a set of tables. Good project - not many out there that can do this work. Good Luck.
@Bartek thyristors would certainly work. But as i explained, i do not want to put high currents on the board for 2 main reasons: First this will increase the size of the board. I want the board to have the same size as an LCD 20 by 4 board. And second, to drive 12 amperes a thyristor will need a large heatsink. Solid state relays are not that expensive after all, and there are nice large heatsinks for SSRs suitable for electric cabinet installation.
But most important is that this controller will be used in an industrial application (in a big factory that makes wooden furniture), which means that the most vulnerable parts must be quickly and easily accessible and replaceable.
@Bartek I have already make other PID controllers. Therefore, for me, it is not a big deal to triple the program and make a triple PID. I may not use the D term at all, the reaction time of the system is slow and kinda stable.
But After all, it is more fun to make a PID controller -even if it is actually PI. And as i always say, something that is not fun to do it, its not worth doing it.
Hello, control engineering student here.
Although PID controller is very fancy, i believe in this sort of application it\'s an overkill. As long as you don\'t have to control temperature very precisely and the reference trajectory is not going to change rapidly too often, I\'d recommend using a simple two-state regulator with hysteresis. With PID, you have to take care of noises(I believe you know what happens when you try to calculate the derivative of noisy signal), also, you should implement anti-windup mechanism. Lot of coding and lot of possibility of problems. Two-state regulator requires just a few lines of code.
And instead of using a solid state relays, maybe a thyristors would be a cheaper and more reliable solution?
@George yes indeed, but Microchip offers this package only in 1000 reel :/
@Cheerio I felt exactly the same when i received the package. With the hot-air it is very easy to solder it. And in comparison with the PDIP package, this one needs at least half of the time to solder it.