My first complete design project – A controller for a heat pump system complete with energy saving features and defrost control.
After getting some experience with the PIC 18F4520 in school I worked with some folks to come up with the heat pump control system. 20×2 LCD display with automatic temperature control, automatic defrosting of the compressor pipes, and energy saving “pulse” width control for minutes-per-hour.
Not the sexiest, but everyone’s proud of their first real project, aren’t they?

Although the circuits are complete, I’m not brave enough to hook it to my $12000 home heat pump (yet!) – so the pictures here are of the simulator setup.
The project senses temperature at a few key points – Inside the space, outside the space, and at the compressor reversing valve. There is no auxiliary heat, so if the outside is too cold, the pump simply warns that it can’t run (I don’t play with burning things in the house, generally).
The heat is pumped based on the temperature desired, and the fan can be controlled separately (something that always bugs me about current controls). Since the compressor/reversing valve expands gas and cools, it sometimes get a little too cold. When the controller senses this, it warns and turns off the inside fan, then reverses the valve and pumps for 60 seconds and tries again.
The PIC indirectly controls the hardware through the typical relay setup (transistors into relays with diode-based reversing protection)
I’m looking for a cost-effective (and linux-based) PIC programming system that lets me work partly in C if anyone has any hints …
(complete instructions)