Temperature controller is the prime requirement of any processing or manufacturing or chemical or textile industry. They require temperature controller for their different processes. In any industrial temperature controller system there is temperature sensor, temperature setting device, display device, temperature controlling device (like heater, cooler, compressor etc) and the main controlling device like micro controller. The system can be better explained using block diagram as given below.
The required temperature is set using temperature setting device like potentiometer. The temperature senses actual temperature. The controlling device like micro controller, takes both these temperatures as inputs and display them on display device. It compares actual temperature with set temperature. If actual temperature is higher or lower than require set temperature then it gives signal to temperature controlling device to increase or decrease the temperature and thus it tries to maintain the temperature within required limit. For example, the temperature controlling device is cooler/compressor and it is required to maintain cooling. In this system as the actual sensed temperature increases above certain limit over set temperature, the cooling is increased using cooler/compressor and vice versa. Along with all these devices most of the temperature controller systems have visual indicators (like bulb, LED) for over/ under temperature and sound alarms for audio alert.
So all these are basic building blocks of temperature controller system. The given project is a demonstration of such system. It uses LM35 as temperature sensor and DC motor as a fan as a temperature controlling device. It utilizes Arduino board as controlling device and ATMega328 as a micro controller. It uses 16x4 LCD panel to display actual temperature, set temperature and other message and notifications. Also it has LEDs for indications and speaker for audio alarm.Some of the features of the system are
1. Accurately measures and displays actual temperature with resolution of two digits after decimal point
2. Set temperature range is from 0 – 100 oC
3. LCD panel for message and notification display
4. Variable fan speed control
5. RED, GREEN and BLUE LEDs for under / over temperature indications
6. Audio alarm for under /over temperature
So let us see how the system is built. First see the circuit diagram followed by its description and operation.
Circuit description:
1. The output of LM35 sensor is connected to analog input pin A0 of Arduino board. Its Vcc pin (+) is connected to +5 V and Gnd pin (-) to ground
2. Pot R1 is connected to second analog input A1. Its two fixed terminals are connected to Vcc and ground while middle sliding terminal is connected to A1 pin
3. Data pins D4, D5, D6 and D7 of LCD are connected to digital pins D5, D4, D3 and D2 respectively. En pin of LCDis connected to pin 11 and Rs pin is connected to pin 12
4. RW pin is connected to ground
5. A 10K pot is connected to 3rd pin VEE of LCD to vary its brightness
6. LED+ terminal and LED- terminal are connected to 5V and ground to turn on LED back light for LCD
7. One 8Ω speaker is connected to digital pin 10 as shown
8. The anodes of three RED, GREEN and BLUE LEDs are connected to digital pins 6, 7 and 8 through 470Ω current limiting resistors. Their cathodes are shorted and connected to ground
9. The analog output pin 9 drives DC motor (Fan) through transistor MJE3055. Pin 9 is connected to base of MJE3055 through current limiting resistor R2 and the collector output drives DC motor as shown
Here is the snap of system arrangements
Circuitoperation:
· The LM35 sensor give 0 to 1 V output as 10 mV/oC – means as temperature varies by 1 oC the output voltage from sensor increases by 10 mV and vice versa
· Because the output of sensor isconnected to analog input of arduino it will convert this into digital value from 0 to 1023
· Because LM35 sensor output is limited to 0 – 1 V only, and reference voltage for internal ADC is 5 V, so the output of sensor is multiplied by 5 to get full range
· So as temperature increases, the analog output from sensor increases from 0 to 1 V and arduino generates corresponding digital value from 0 to 1023
· So 0 to 1 V range is divided in 1024 steps – means each step has 1/1024 = 0.00097 = 0.97 mV resolution
· Because LM35 sensor output changes by 10 mV on each 1 oC change in temperature, so when analog reading changes by 10 / 0.97 = 10.31, it indicates temperature changes by 1 oC
· So arduino reads analog voltage output from sensor, gets analog value between 0 to 1023 divide it by factor 10.31 and displays this value on LCD as current temperature
· Arduino gets set temperature value from pot R1. As pot is varied the analog voltage input varies from 0 to 5V and its corresponding output varies as 0 to 1023. It is mapped between 0 to 100 as set temperature between 0 – 100 oC
· So one can set the temperature between 0 oC to 100 oC by varying pot and it is displayed as set temperature on LCD
· Both actual temperature and set temperature are sent to PC through serial port and displayed on serial monitor of arduino IDE
· Now if the actual temperature sensed by LM35 is within ±5 oC of set temperature (reference) then LCD displays message “temperatureis within limit” and it turns ON GREEN LED
· But if actual temperature increases more than 5 oC of set temperature then RED LED turns ON and fan speed is increase by increasing the pulse width at pin 9. The speaker starts generating beep sound and the message is displayed on LCD as “overtemperature, fan speed increased”
· Similarly if actual temperature decreases less than 5 oC of set temperature then BLUE LED turns ON and fan speed is decreased. Again the speaker starts beeping and the message is displayed on LCD as “temperature down, fan speed decreased”
· So the fan speed automatically increased or decreased as the temperature varies
it is shown in given video demonstration
Softwareprogram:
For complete above circuit operation, the program is downloaded into Arduino micro controller ATMega328.The program is edited and compiled in Arduino IDE. And then it is uploaded into Arduino board.
Comments