Knowledge be the key, to unlock your brain and set your mindstate free.
you are here: Home >> Projects >> Thermocontroller >>
Thermocontroller
Could be used for anything, but it's going to be used in my main computer. It basically controls the speed
of up to 4 fans by using PWM (pulse width modulation) and high speed switching MOSFET's. Two pushbutton
switches on the front panel will allow the speed to be changed, while an LCD displays some information. The
speed setting is saved to eeprom, so it will remember the speed prior to power down and reload it on power up.
Currently, it only displays the speed of the fans, but later it will display temperatures. The sensor that I'm
going to be using is the DS18B20. It makes use of a 1-wire bus, so up to 60-some devices can be connected to the
same I/O pin. They're pretty expensive, so I only plan on using 4 or 5 of them. The microprocessor that controls
everything right now is a PIC 16F877. If the code doesn't run over 1K with the temp sensor routines, I'll just
use a 16F84. I'm using software PWM, and the sensors are digital, so the '877 isn't really needed.
Also, I hooked up some LED's that will dim or brighten according to the speed of the fans. There will also be
headers for 7V and full 12V on the PCB, when it's finished.
*****************************************************
11/28/03
Software PWM officially sucks. That's right, you heard it here first. I switched to a 16F628 that has PWM
on-chip, plus more code space, eeprom, ram than the 16F84. I got the temperature sensors working well enough,
but there are a few bugs. They stop working all together if the duty cycle is set too low. Must be a timing
issue. I made a protype pcb using the Eagle software package and its autorouter (I'm new to circuit boards).
I didn't like the way it handled the lower section of the board, so I did that part myself. I messed up some
traces as well, so I'll be making another one soon.
*****************************************************
5/4/04
Final version. It's been done for a few months now. Fitting all that crap together into a 5 1/4 drive bay is
annoying to say the least. The next version will be on a PCI card with an external display and control box. The
hookups are also hard to get to in this version, so if they're on a PCI card's edge it would simplify things immensely.
I'm not sure how much current you can pull across the PCI bus for the fans, so it may use a molex connector for power.
The temp readout works very well, but in the picture I didn't have any connected. I might add some type of voltage
reading into the next version too, and maybe a USB interface to Motherboard Monitor just to play around. Maybe RPM
monitoring too, but only one of my fans uses it, so meh. Multiple PWM channels would be a good feature too. I hook up
my CPU fan to the controller, and it would be nice if I could control its speed independently of the others, or have
some type of auto control based on the temperature, and an RPM alarm if the fan fails to start, etc.
*****************************************************
11/19/04
Newer final version with the board fitting in a PCI slot (not interfacing, just sitting). The display and speed control
are external. I replaced the LCD with a VFD too and added a USB port on the side.