Heating Pad Controller

I recently had occasion to use our family's heating pad. It has 3 settings, low, medium and high. I set it on low, and found I was getting roasted. So I inserted my wattmeter, and found that all 3 settings resulted in almost the same heat which was high. (Heating pads on high usually take between 45 and 50 watts.) I would expect that low should run around 20 watts give or take.

I thought about my electric blanket controller which has a 2 digit LED display and my heater controller. They both control power to a resistive load. What I needed was a simpler version of the blanket controller, with 1 LED readout and 9 steps. Using a simple pushbutton rotary encoder I could control the power precisely and turn the unit on and off.

Here I'm using an ATtiny861A microcontroller. An ATtiny461 would probably do but I did not have it on hand. Instead of the Greyhill encoder I used the EC11-1B-18T which is functionally equivalent but requires different support code.

The power supply is the guts of a 5V wall wart used for charging gadgets. There is a 1 mH inductor on the output to reduce noise.

WARNING THIS PROJECT IS *HOT* WITH RESPECT TO THE POWER MAIN. THERE IS REAL RISK OF SHOCK IF YOU ARE NOT CAREFUL. ALSO, YOU MUST USE AN ISOLATED POWER SOURCE WHEN PROGRAMMING THE MICROCONTROLLER IN CIRCUIT. IF YOU FORGET, YOU'LL BLOW UP YOUR PROGRAMMER AND POSSIBLY YOUR COMPUTER, AND YOU MAY BE INJURED. Best bet is to program the AVR externally then plug it into the circuit, or use an isolation transformer.

project photo 1 project photo 2

In operation, the project is powered up all the time it is plugged in. When not in actual use the power consumption is tiny. The decimal point on the display is used as a power indicator and is lit as long as there is power. Press the encoder button and it turns on and displays 1. Turn the encoder clockwise and the setting increments to 9. 4 or 5 is comfortable and avoids roasting.

Download WinAVR C source code for the controller

Back to VE3LNY's AVR Project Page