Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[51] temperature controller using MOSFET

Status
Not open for further replies.

jay_3189

Banned
Joined
Sep 19, 2013
Messages
104
Helped
0
Reputation
0
Reaction score
0
Trophy points
16
Location
Ahmedabad
Activity points
0
Hello
I have one device and I want to control its temperature constant between 20 to 35 degree.
so, please suggest me, how to make temperature controller using MOSFET and coil. I am using 89c51 controller.
again how to choose temperature sensor?
what is way again to cool the device?
 
Last edited:

Hello,
What is the domain of the ambient temperature? What do you mean by "coil"?
 

Hello,
What is the domain of the ambient temperature? What do you mean by "coil"?

I am just putting there two heater and for one heater I will fix the temperature in Celsius.
and for other heater I will make continuous changes of 2 to 3 degree Celsius and that I will thinking to do by just changing in current of heater to very temperature and for that I am not using any cooling system but I will just give on and off pulse. so, temperature will very in between 1 to 2 degree Celsius.
for this I have many options like MOSFET , Relay, and PID controller but I don't have idea that how to do this and which sensors is best and again which is the best way from above.
please suggest me.
I am using AT89C51 controller.
 

You can use some temperature sensor ICs with I2C interface which can be placed on the monitoring region & you can turn on/off your relay/mosfet according to the temperature reading. You can use a fan also for lowering the temperature fast.
 

You can use some temperature sensor ICs with I2C interface which can be placed on the monitoring region & you can turn on/off your relay/mosfet according to the temperature reading. You can use a fan also for lowering the temperature fast.

actually I do not want to use fan but will you please say may the temperature sensor ic which can be used with 89c51 where programming part is easy. I don't want to use I2C.
 

Check this IC

https://www.linear.com/product/LTC2996

You can use the alert outputs for the relay/mosfet control

You can adjust the upper & lower threshold using the three resistors.

- - - Updated - - -

If this temperature control is only your requirement, you dont need any micontroller. You can use the alert outputs directly to a Relay driver/mosfet driver to control them.
 
Hello,
If the ambient temperature reaches 36 Celsius degree or above, you have to cool someway your system; if the ambient temperature never reaches 20 Celsius degree than you only have to warm your system.
Now I have another question for you: what is the precision you want to regulate the temprature; if this precision is about 1-2 Celsius degree you have to implement some proportional control that is not involving relays.
If you don't want to use a digital sensor, your option remains an analog output one.
 

Hello,
Now I have another question for you: what is the precision you want to regulate the temprature; if this precision is about 1-2 Celsius degree you have to implement some proportional control that is not involving relays.
If you don't want to use a digital sensor, your option remains an analog output one.


As you asked I have to maintain Celsius difference only in between 3-4 degree Celsius as posted in post 3 above. but will you please elaborate this proportional control?
 

I think, in your case, a PID algorithm is not necessary, being too hard to implement; only a proprortional control with difference between the programmed and the actual temperature is enough. As you are using a microcontroller the easyest way to do is attacking a heat element by means of a power tranzistor (possibly a MOS-FET) with a PWM signal; the duty cycle is proprotional, as I have said, with the difference between the programmed and the actual temperature (not vice versa): as the actual temperature is closer to the programmed temperature so the the duty cycle is lower. The formula you should use is Dc=a*dt+b where Dc is the duty cycle, dt is the difference between the two temperatures, and a and b are two constants. These constants can only be pozitive, and you should be able to change them in the firmware until you reach an optimum: at the equilibrium of temperatures, constant b should have the smallest value that mantaines this equilibrium.
 
can any one say me that which sensor is better to use LM35 or AD590? Why?
can anyone differentiate this to sensor?
 

LM35 gives an analog voltage output corresponding to temperature. AD590 will give current output proportional to temperature.
 

LM35 gives an analog voltage output corresponding to temperature. AD590 will give current output proportional to temperature.

temperature is in Celsius or Fahrenheit.
is most of C programming same for both?
 

AD590 will give Fahrenheit output. LM35 gives in Celsius. For both, you need to get the sensor data & convert to Celsius/Fahrenheit if you are using LM35/AD590. If you want to use the temperature in Celsius, you have to convert from Fahrenheit to Celsius, using simple formula descibed in https://en.wikipedia.org/wiki/Fahrenheit .
 

AD590 will give Fahrenheit output. LM35 gives in Celsius. For both, you need to get the sensor data & convert to Celsius/Fahrenheit if you are using LM35/AD590. If you want to use the temperature in Celsius, you have to convert from Fahrenheit to Celsius, using simple formula descibed in https://en.wikipedia.org/wiki/Fahrenheit .

with which temperature sensor programming will be easy?
 

In which output you have to measure ? If ti is Celsius, go for LM35. It will give voltage output which can be directly connected to ADC. Are you using LTC2996 ?
 

In which output you have to measure ? If ti is Celsius, go for LM35. It will give voltage output which can be directly connected to ADC. Are you using LTC2996 ?

actually I want to measure temperature in Celsius only and I am suppose to use pic16f887 controller so, it has inbuilt a to d converter pin.
 

Then you can use LM35.

- - - Updated - - -

You have to use an external voltage reference (can be resistive pots) since the LM35 outputs are in millivolt range. If you use 1.024V (For 10-bit ADC) reference , it will help you for easier calculation (1mV for 1 step change).
 
Last edited:
Use LM35 with Vref+ set to 1.6V. For 1.6V you will get ADC value of 1023. Calculate how much you get for 1.5V (max for 150 deg C). Convert this raw adc value to 150.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top