Compare commits
No commits in common. "67c1f0503acf0bd1aeadbf9b1b981ba2cd01d4df" and "0b8e4d3a5c86c4692087c7644e474f1da8e50e48" have entirely different histories.
67c1f0503a
...
0b8e4d3a5c
1 changed files with 18 additions and 41 deletions
|
@ -16,16 +16,17 @@ DallasTemperature sensors(&oneWire); // declare sensors
|
||||||
double pidset, watertemp, output;
|
double pidset, watertemp, output;
|
||||||
|
|
||||||
// PID adjustment
|
// PID adjustment
|
||||||
double Kp=500, Ki=10, Kd=0;
|
double Kp=2, Ki=5, Kd=1;
|
||||||
PID myPID(&watertemp, &output, &pidset, Kp, Ki, Kd, DIRECT);
|
PID myPID(&watertemp, &output, &pidset, Kp, Ki, Kd, DIRECT);
|
||||||
int WindowSize = 5000;
|
int WindowSize = 5000;
|
||||||
unsigned long windowStartTime;
|
unsigned long windowStartTime;
|
||||||
|
|
||||||
// Temp adjustment
|
// Temp adjustment
|
||||||
float tempset;
|
int tempset;
|
||||||
int poti;
|
int poti;
|
||||||
|
|
||||||
// time
|
// time
|
||||||
|
int onesecond = 1000;
|
||||||
unsigned long previousMillis;
|
unsigned long previousMillis;
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,25 +68,6 @@ void setup() {
|
||||||
delay(3000);
|
delay(3000);
|
||||||
lcd.clear();
|
lcd.clear();
|
||||||
|
|
||||||
// Setup LCD
|
|
||||||
// Output temperatureset
|
|
||||||
lcd.setCursor(0, 1);
|
|
||||||
lcd.print("set: ");
|
|
||||||
lcd.print(pidset);
|
|
||||||
lcd.write((byte)0);
|
|
||||||
|
|
||||||
// Output watertemp
|
|
||||||
lcd.setCursor(0, 2);
|
|
||||||
lcd.print("temp: ");
|
|
||||||
lcd.print(watertemp);
|
|
||||||
lcd.write((byte)0);
|
|
||||||
lcd.print("C");
|
|
||||||
|
|
||||||
// output PID
|
|
||||||
lcd.setCursor (0, 3);
|
|
||||||
lcd.print("output: ");
|
|
||||||
lcd.print(output);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
@ -95,13 +77,11 @@ void loop() {
|
||||||
|
|
||||||
// update LCD
|
// update LCD
|
||||||
unsigned long currentMillis = millis();
|
unsigned long currentMillis = millis();
|
||||||
if (currentMillis - previousMillis >= 250) {
|
if (currentMillis - previousMillis >= onesecond) {
|
||||||
settemp();
|
settemp();
|
||||||
readtemp();
|
readtemp();
|
||||||
lcdoutput();
|
lcdoutput();
|
||||||
previousMillis = currentMillis;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------
|
//------------------------------------------
|
||||||
|
@ -110,6 +90,9 @@ void pid() {
|
||||||
|
|
||||||
myPID.Compute();
|
myPID.Compute();
|
||||||
|
|
||||||
|
/************************************************
|
||||||
|
* turn the output pin on/off based on pid output
|
||||||
|
************************************************/
|
||||||
if (millis() - windowStartTime > WindowSize)
|
if (millis() - windowStartTime > WindowSize)
|
||||||
{ //time to shift the Relay Window
|
{ //time to shift the Relay Window
|
||||||
windowStartTime += WindowSize;
|
windowStartTime += WindowSize;
|
||||||
|
@ -134,20 +117,23 @@ void readtemp() {
|
||||||
// LCD output
|
// LCD output
|
||||||
void lcdoutput() {
|
void lcdoutput() {
|
||||||
// Output temperatureset
|
// Output temperatureset
|
||||||
lcd.setCursor(8, 1);
|
lcd.setCursor(0, 1);
|
||||||
lcd.print(pidset);
|
lcd.print("set: ");
|
||||||
|
lcd.print(tempset);
|
||||||
lcd.write((byte)0);
|
lcd.write((byte)0);
|
||||||
lcd.print("C");
|
lcd.print("C");
|
||||||
|
|
||||||
// Output watertemp
|
// Output watertemp
|
||||||
lcd.setCursor(8, 2);
|
lcd.setCursor(0, 2);
|
||||||
|
lcd.print("temp: ");
|
||||||
lcd.print(watertemp);
|
lcd.print(watertemp);
|
||||||
lcd.write((byte)0);
|
lcd.write((byte)0);
|
||||||
lcd.print("C");
|
lcd.print("C");
|
||||||
lcd.print(" ");
|
lcd.print(" ");
|
||||||
|
|
||||||
// output PID
|
// output PID
|
||||||
lcd.setCursor (8, 3);
|
lcd.setCursor (0, 3);
|
||||||
|
lcd.print("output: ");
|
||||||
lcd.print(output);
|
lcd.print(output);
|
||||||
lcd.print(" ");
|
lcd.print(" ");
|
||||||
|
|
||||||
|
@ -158,15 +144,6 @@ void lcdoutput() {
|
||||||
// Read Poti
|
// Read Poti
|
||||||
void settemp() {
|
void settemp() {
|
||||||
poti = analogRead(A3);
|
poti = analogRead(A3);
|
||||||
tempset = (20+(poti*0.04));
|
tempset = (18+(poti*0.07)); // range between 18°C and 18+1024*0,07 (~89°C)
|
||||||
|
|
||||||
if (tempset <= 50) {
|
|
||||||
pidset = tempset;
|
pidset = tempset;
|
||||||
}
|
|
||||||
|
|
||||||
if (tempset >= 51) {
|
|
||||||
pidset = (tempset+30);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue