Aquarium Heater Controller - Timer Method

Poor Signal Integrity

The problem with using hysteresis was signal noise. The unshielded leads of the temperature sensor ran next to a lot of noisy contraptions:

That millivolt-range signal didn't even stand a chance.

With my multimeter set to AC, the temperature sensor leads at the breadboard measured about 5VACRMS on top of the ~2.978VDC. This meant that the heat would never turn off. This led me to add a bypass capacitor to the sensor input, called C1 in the schematic from when I tried the hysteresis method.

Aquarium Heater Controller - Hysteresis Schematic

When the temperature sensor (D1) outputs a voltage less than the voltage output by the potentiometer (R2), the output of the

I tried twisting the leads together, but that didn't go much. The lowest I could bring the noise to with the capacitors I had on hand was 50mVACRMS. Two orders of magnitude is great. After all, that's -20dB, but it's still more than the hysteresis threshold I was counting on. It was time for plan B.

What Am I Really Trying to Accomplish?

Once the aquarium temperature hits the low threshold, warm the water. What if I just adjust the trigger to activate at the low threshold, turn the heater on for an hour or so, then wait for another trigger? That could work... and any electronics lab worth its salt has an extra 555 laying around. I'll give it a shot.

The Updated Design

Automatic Aquarium Heater - Timer Method Schematic
Warning: The is mostly from my horrible memory.

When the output voltage of the temperature sensor (D1) is less than the threshold voltage set by the potentiometer (R2), the output of the op-amp/comparator (U1) will be low. A high-to-low transition ("negative edge") on the trigger pin (pin 2) of the 555 timer (U2) will set the output (pin 3) high for the period determined by R3 and C2. The relay switch is closed while the timer's output is high, turning on the heater.

The period of the timer is determined by this formula:


I used a 1.5MΩ resistor and a 2200μF capacitor for a period of approximately 1 hour.

Good Enough

This design worked well for me. It turned the heater on for an hour when the aquarium was cold. It worked well enough until I came back from vacation. There was one problem, though. Sometimes when the relay was supposed to switch off, it would switch on and off like a buzzer for a minute. This is bad for the relay, and worse, for the heater. Because this was temporary and I planned on buying a functioning heater after vacation, I called this design done.

A week later, I was able to replace all this with a proper heater.