Temperature controller with LCD, LM35
hi guys
i had post similar in design section got no help.
please quite new patient. did control unit in
circuits4you.com arduino temperature controller
i copied , pasted code , i'm trying add set points 2 push buttons , add hysteresis. have looked every post, tutorial etc , cannot find carry on.
please @ code , let me know.
/*
circuits4you.com
digital temperature controller
*/
#include <liquidcrystal.h>
// initialize library numbers of interface pins
liquidcrystal lcd(9, 8, 7, 6, 5, 4);
const int led_red = 10; // red led
const int led_green = 11; // green led
const int relay = 12; // 220v 10amp fan relay
//key connections arduino
const int up_key = 3; // key
const int down_key = 2; // down key
int setpoint = 30;
void setup() {
pinmode(led_red, output);
pinmode(led_green, output);
pinmode(relay, output);
pinmode(up_key, input);
pinmode(down_key, input);
digitalwrite(up_key, high); // pull setpoint button
digitalwrite(down_key, high); // pull setpoint button
lcd.begin(16, 2); // set lcd's number of columns , rows:
lcd.print("ejhg. artois."); // print message lcd.
lcd.setcursor(0, 1); // move coursor second line
lcd.print("temp. controller"); // print message lcd.
digitalwrite(led_green, high); // green led off
digitalwrite(led_red, low); // red led on
digitalwrite(relay, low); // turn off fan relay
delay(5000);
}
void loop() {
double temperature = ((4.6 / 1024.0) * analogread(a0)) * 100; //10mv per degree 0.01v/c.
lcd.setcursor(0, 0);
lcd.print("temperature:");
lcd.print(temperature);
//get user input setpoints
if (digitalread(down_key) == low)
{
if (setpoint > 0)
{
setpoint--;
}
}
if (digitalread(up_key) == low)
{
if (setpoint < 150)
{
setpoint++;
}
}
lcd.setcursor(0, 1);
lcd.print("set point:"); //display set point on lcd
lcd.print(setpoint);
lcd.print(" cel");
if (temperature > setpoint) //check temperature in limit
{
digitalwrite(relay, low); // turn off fan
digitalwrite(led_red, low);
digitalwrite(led_green, high); // turn on green led
}
else
{
digitalwrite(relay, high); // turn on fan
digitalwrite(led_green, low); // turn off green led
digitalwrite(led_red, high); // turn on red led
}
delay(500); //update @ every 500mseconds
if ((temperature - 2) > setpoint) //check temperature in limit
{
digitalwrite(relay, low); // turn off fan
digitalwrite(led_red, low); // turn off red led
digitalwrite(led_green, high); // turn on green led
}
if ((temperature + 2) < setpoint)
{
digitalwrite(relay, high); // turn on fan
digitalwrite(led_green, low); //turn off green led
digitalwrite(led_red, high); // turn on red led
}
}
i had post similar in design section got no help.
please quite new patient. did control unit in
circuits4you.com arduino temperature controller
i copied , pasted code , i'm trying add set points 2 push buttons , add hysteresis. have looked every post, tutorial etc , cannot find carry on.
please @ code , let me know.
code: [select]
/*
circuits4you.com
digital temperature controller
*/
#include <liquidcrystal.h>
// initialize library numbers of interface pins
liquidcrystal lcd(9, 8, 7, 6, 5, 4);
const int led_red = 10; // red led
const int led_green = 11; // green led
const int relay = 12; // 220v 10amp fan relay
//key connections arduino
const int up_key = 3; // key
const int down_key = 2; // down key
int setpoint = 30;
void setup() {
pinmode(led_red, output);
pinmode(led_green, output);
pinmode(relay, output);
pinmode(up_key, input);
pinmode(down_key, input);
digitalwrite(up_key, high); // pull setpoint button
digitalwrite(down_key, high); // pull setpoint button
lcd.begin(16, 2); // set lcd's number of columns , rows:
lcd.print("ejhg. artois."); // print message lcd.
lcd.setcursor(0, 1); // move coursor second line
lcd.print("temp. controller"); // print message lcd.
digitalwrite(led_green, high); // green led off
digitalwrite(led_red, low); // red led on
digitalwrite(relay, low); // turn off fan relay
delay(5000);
}
void loop() {
double temperature = ((4.6 / 1024.0) * analogread(a0)) * 100; //10mv per degree 0.01v/c.
lcd.setcursor(0, 0);
lcd.print("temperature:");
lcd.print(temperature);
//get user input setpoints
if (digitalread(down_key) == low)
{
if (setpoint > 0)
{
setpoint--;
}
}
if (digitalread(up_key) == low)
{
if (setpoint < 150)
{
setpoint++;
}
}
lcd.setcursor(0, 1);
lcd.print("set point:"); //display set point on lcd
lcd.print(setpoint);
lcd.print(" cel");
if (temperature > setpoint) //check temperature in limit
{
digitalwrite(relay, low); // turn off fan
digitalwrite(led_red, low);
digitalwrite(led_green, high); // turn on green led
}
else
{
digitalwrite(relay, high); // turn on fan
digitalwrite(led_green, low); // turn off green led
digitalwrite(led_red, high); // turn on red led
}
delay(500); //update @ every 500mseconds
if ((temperature - 2) > setpoint) //check temperature in limit
{
digitalwrite(relay, low); // turn off fan
digitalwrite(led_red, low); // turn off red led
digitalwrite(led_green, high); // turn on green led
}
if ((temperature + 2) < setpoint)
{
digitalwrite(relay, high); // turn on fan
digitalwrite(led_green, low); //turn off green led
digitalwrite(led_red, high); // turn on red led
}
}
hi all
sorry guys code there , managed working had re-adjust.
what i'm trying find out make adjustable hysteresis set point.
(temperature - 1) > setpoint)
(temperature +1) < setpoint)
if possible using same 2 keys, 2 , 3 please guide me how
sorry guys code there , managed working had re-adjust.
what i'm trying find out make adjustable hysteresis set point.
(temperature - 1) > setpoint)
(temperature +1) < setpoint)
if possible using same 2 keys, 2 , 3 please guide me how
code: [select]
/*
ejhg. artois
digital temperature controller
20161217
with "(circuits4you.com) basic project code and
all arduino forum team mwmbers help.
*/
#include <liquidcrystal.h>
#include <inputdebounce.h>
// initialize library numbers of interface pins
liquidcrystal lcd(9, 8, 7, 6, 5, 4);
const int led_red = 10; // red led
const int led_green = 11; // green led
const int relay = 12; // 220v 10amp fan relay
const int temp_sensor = a0; // lm 35dt temperature sensor
const int up_key = 2; // adjust key
const int down_key = 3; // adjust down key
int vin = a0; // variable read value pin a0
float temperature; // variable receives converted voltage
int setpoint = 25; // start-up,setpoint adjustable push keys 2 , 3
void setup() {
pinmode(led_red, output);
pinmode(led_green, output);
pinmode(relay, output);
pinmode(up_key, input);
pinmode(down_key, input);
digitalwrite(up_key, high); // pull setpoint button
digitalwrite(down_key, high); // pull setpoint button
lcd.begin(16, 2); // lcd's number of columns , rows:
lcd.print("ejhg. artois."); // print message lcd.
lcd.setcursor(0, 1); // move coursor second line
lcd.print("temp. controller"); // print message lcd.
digitalwrite(led_green, high); // green led off
digitalwrite(led_red, low); // red led on
digitalwrite(relay, low); // turn off fan relay
delay(2000);
}
void loop() {
vin = analogread(0); //tell arduino read voltage on pin a0
temperature = (5.0 * vin) * 93.10 / 1024; // convert read value voltage
delay(200);
lcd.setcursor(0, 0); // move coursor first line
lcd.print("temperature:"); // print message lcd.
lcd.print(temperature);
if (digitalread(down_key) == low) // input setpoint
{
if (setpoint > -8)
{
setpoint--;
}
}
if (digitalread(up_key) == low) // input setpoint
{
if (setpoint < 40)
{
setpoint++;
}
}
lcd.setcursor(0, 1);
lcd.print("set point:"); // display set point on lcd
lcd.print(setpoint);
lcd.print(" cel"); // display degree celcius
if ((temperature - 1) > setpoint) //check temperature in - limit
{
digitalwrite(relay, low); // turn off fan
digitalwrite(led_red, low); // turn off red led
digitalwrite(led_green, high); // turn on green led
}
if ((temperature + 1) < setpoint) //check temperature in + limit
{
digitalwrite(relay, high); // turn on fan
digitalwrite(led_red, high); // turn on red led
digitalwrite(led_green, low); // turn off green led
if (temperature > setpoint) // check temperature in limit
{
digitalwrite(relay, low); // turn off fan
digitalwrite(led_red, low); // turn off red led
digitalwrite(led_green, high); // turn on green led
} else {
digitalwrite(relay, high); // turn on fan
digitalwrite(led_red, high); // turn on red led
digitalwrite(led_green, low); // turn off green led
}
}
}
Arduino Forum > Using Arduino > Sensors > Temperature controller with LCD, LM35
arduino
Comments
Post a Comment