Introduction
In this video I have made a Digital Temperature Controller DIY Homemade using Arduino and a few more components. I hope you learn something from this video.
A temperature controller is an tool used to manipulate temperature calculating the distinction among a setpoint and a measured temperature. The controller takes an enter from a temperature sensor and has an output this is related to a manage detail including a heater or fan.
To as it should be manage system temperature with out large operator involvement, a temperature manage device is based upon a controller, which accepts a temperature sensor including a thermocouple or RTD as enter. It compares the real temperature to the preferred manage temperature, or setpoint, and gives an output to a manage detail. The temperature controller or thermostat is one a part of the whole manage device, and the complete device ought to be analyzed in choosing the right equipment.
An on-off temperature controller is the most effective shape of manage tool. The output from the tool is both on or off, and not using a center state. An on-off manage tool will transfer the output most effective while the temperature crosses the setpoint. For heating manage, the output is on while the temperature is under the setpoint, and rancid above setpoint. Since the temperature crosses the setpoint to alternate the output state, the technique temperature could be biking continually, going from under setpoint to above, and lower back under.
Circuit diagram
of Digital Temperature Controller DIY Homemade
More Circuit Layouts
Programming Code
#include <LiquidCrystal.h> #include <EEPROM.h> LiquidCrystal lcd(2,3,4,5,6,7); const int analogInPin = A5; int sensorValue = 0; float outputValue = 0; float a = 0; int sensorVolt = 0; int outputVolt,b,x,ps,ph,pl,s,m,t; int tt; void setup() { Serial.begin(9600); lcd.begin(16, 2); pinMode(8,INPUT); pinMode(9,INPUT); pinMode(10,INPUT); pinMode(11,INPUT); pinMode(12,OUTPUT); pinMode(13,OUTPUT); ps= EEPROM.read(0); } void loop() { if(m==0){ for(int i=0;i<10;i++){ // read the analog in value: sensorValue = analogRead(analogInPin); // map it to the range of the analog out: outputValue = float(sensorValue); outputValue=outputValue-10; a=a+outputValue; } a=a/10; outputValue=a; //corrections lcd.setCursor(0, 0); lcd.print("Temp=" ); lcd.print(outputValue ); lcd.print("C " ); lcd.setCursor(0, 1); lcd.print("S=" ); lcd.print(ps ); lcd.print("C" ); if(outputValue<(ps-1)){ lcd.print(" Heating " ); digitalWrite(12,HIGH); delay(100); } if(outputValue>(ps+1)){ lcd.print(" Cooling " ); digitalWrite(13,HIGH); delay(100);} if(outputValue<(ps+1)&outputValue>(ps-1)) { lcd.print(" Normal " ); digitalWrite(12,LOW); digitalWrite(13,LOW); } } for(int i=0;i<100;i++){ if(m==1){ lcd.setCursor(0, 0); lcd.print(" Set Temprature " ); lcd.setCursor(0, 1); lcd.print(" Limit = " ); lcd.print(ps); lcd.print("C " ); if(!digitalRead(8)&digitalRead(9)&digitalRead(10)){ x++; Serial.println(x); if(x==100){ m=0; //save values in eeprom EEPROM.write(0, ps); x=0; }} if(!digitalRead(9)){ delay(200); ps=ps+1; if(!digitalRead(8)){ ps=ps+9;} if(ps>250){ ps=250;} } if(!digitalRead(10)){ delay(200); ps=ps-1; if(!digitalRead(8)){ ps=ps-9;} if(ps<0){ ps=0; } } } if(!digitalRead(8)&m==0){ x++; Serial.println(x); if(x==300){ lcd.clear(); m=1; x=0; } }else if (digitalRead(8)){ x=0; } delay(10);} }
Components List
used in Digital Temperature Controller DIY
- 1X ARDUINO NANO
- 1X 16X2 LCD
- 2X 12V RELAYS
- 2X BC547 TRANSISTORS
- 2X 1N4007 DIODES
- 3X PUSH BUTTONS
- 1X 10K THERMISTOR
- 2X 10K VERIABLE RESISTORS
- 2X 1K RESISTORS
- 3X 10K RESISTORS
- 1X 12V ADOPTER
- FEMALE HEADERS
- 2X 2 PIN TERMINAL BLOCKS
- 2X 3 PIN TERMINAL BLOCKS
- PREF BOARD
- JUMPER WIRES