Arduino Controlled Heat Lamp

Hello everyone!

My name is Tim Broslav, and I am currently new to the Arduino, however I do know some C++. I was wondering if it would be possible to control a heat lamp by using the Arduino to control the voltage input into the lamp. I am designing a bioreactor and the design necessitates an operating temperature of 37 C. So far I have planned out to have the arduino to receive temperature data from a thermocouple, and once a certain threshold in temperature is achieved, the arduino will either raise or lower the voltage to keep the temperature of the bioreactor stable.

Thank for the help! :slight_smile:

37C sounds kind of low for a thermocouple.

  1. What are the voltage and current requirements of the heat lamp?
  2. How do you plan on interfacing the thermocouple to the Arduino?

I was wondering if it would be possible to control a heat lamp by using the Arduino to control the voltage input into the lamp.

Normally a heating element simply switches on/off when you are below/above the target temperature (with some hysteresis to avoid relay "chatter") .

There are several popular temperature sensors. The LM35 (and LM34) are analog and they are pretty easy to use.

If you are cycling the temperature on/off, you can get an AC solid state relay that can be directly controlled from the Arduino (5V, low current). A regular relay can work too, but most relay coils cannot be directly driven from the Arduino so they need a driver circuit.

If you want to dim the lamp that can be done, but that requires a [u]phase-controlled dimmer[/u]. The line-voltage AC output has to be optically isolated from the low-voltage Arduino as does input from the zero-crossing phase detector (or you can use a transformer for isolation, which is handy if you're building your own power supply and you already have a transformer).

hey tim -

I do some similar things with heating livestock water.

yea, its feasible. here is what might work, and what might break -

  • first - get a temp sensor - imo - get a good one. the cheaper ones hard to work with in terms of library,
    I've had good success with DHT22 or equivalent sensors. maybe you find even a better one, with good supportive libraries.

-second - you need a relay. I am doing some relay based projects now, but nothing high amp. I think the biggest risk here is "over amp" on your relay. my relay is rated at 20A DCV - a basic one. heaters tend to use high amps. so must check your specific heater against the relay used. I do know - there are some higher amp relays available for ardunino form suppliers if that is your case.

-last - in the end - if all other conditions mentioned above are met - its a real simple arduino task -
if the temp is in (your range of interest) - then turn then heater relay on (for set condition of time or temp change)

Sure, can be done, and it's quite straightforward even.

  1. get an appropriate temperature sensor. Thermocouples are mostly used for high temperatures (150-500 C and even higher). For body temperature use a regular sensor, they're more accurate in this range.
    The DHT22 has a 1-2 degree error, there are more accurate sensors, which is probably what you will be after. With careful calibration the humble NTC (thermistor) would be the most accurate.

  2. get the correct driver hardware for your lamp. You didn't specify AC, DC, voltage or current. Those are important. DC can be controlled through PWM, AC can be controlled by phase cutting (like the traditional light dimmer).

  3. write the software: look into the PID library, it is designed for this kind of applications: keeping to a setpoint (your temperature reading) by changing an output (the current to your heater).

Thanks for the replies everyone! I have decided to go along with something other than a thermocouple, since I did not realize they are used for high temperature readings only (Probably NTC as recommended by wvmarle).

wvmarle:
Sure, can be done, and it's quite straightforward even.

  1. get an appropriate temperature sensor. Thermocouples are mostly used for high temperatures (150-500 C and even higher). For body temperature use a regular sensor, they're more accurate in this range.
    The DHT22 has a 1-2 degree error, there are more accurate sensors, which is probably what you will be after. With careful calibration the humble NTC (thermistor) would be the most accurate.

  2. get the correct driver hardware for your lamp. You didn't specify AC, DC, voltage or current. Those are important. DC can be controlled through PWM, AC can be controlled by phase cutting (like the traditional light dimmer).

  3. write the software: look into the PID library, it is designed for this kind of applications: keeping to a setpoint (your temperature reading) by changing an output (the current to your heater).

I am not 100% sure if the heat lamp I am planning on using is DC or AC, but it is a 125 Watt lightbulb which is being fed with a 300 Volt, 18 awg wire.

In the msot likely case that it is a DC wire I will see about using a PWM for it- though I do not know that that is.

Also, what is the PID library?

The wire type doesn't determine AC or DC. Your power source does. At that kind of power I would expect you use mains power (AC, 220-240V or 100-120V and 50-60Hz depending on your locality). That would mean you need to do phase cutting using a TRIAC. Be sure you know what you're doing when messing around with mains as it may kill you.

PID library.

PWM.