// set pin numbers
const int HRrelay = 34; // the pin on which to read the Heater Relay State
const int HRSolOnOff = 22; // the output pin to activate temp + button
const int HRSolOnOff2 = 26; // the output pin to activate temp + button
// variables for storing the relay status
int HRRelayState = 0;
bool PrevEnergized = false;
void setup() {
Serial.begin(115200);
Serial.println("Welcome to Mash/Ferment Heater Control by Bill Niester");
pinMode(HRrelay, INPUT); // init HRrelay pin as Input to read state of heater relay
pinMode(HRSolOnOff, OUTPUT); // init HRSolOnOff pin as output to provide + button activation
pinMode(HRSolOnOff2, OUTPUT); // init HRSolOnOff pin as output to provide + button activation
digitalWrite(HRSolOnOff, LOW); // make sure that we are not activating the capaitive switch at start
}
void loop() {
// read the state of the PID controller relay's Heating and Cooling state (high or low)
// Achived throhgh pulldown of 10K resistor
HRRelayState = digitalRead(HRrelay);
Serial.println("INIT Value for HRRelayState = ");
Serial.println(HRRelayState);
Serial.println("Value of PrevEnergized = ");
Serial.println(PrevEnergized);
delay(2500);
// HEATING SECTION
// check if the heater relay is active (energized).
// If it is, the RelayState is HIGH and the temperature of the wash needs to increase
// so write to HRSolOnOff to press + button on induction heater
if (HRRelayState == HIGH) {
Serial.println("HRRelayState = ");
Serial.println(HRRelayState);
// delay(3000);
if (PrevEnergized == false) {
Serial.println("PrevEnergized: FALSE ");
Serial.println("CYCLING ON/OFF ... FLASH 50% DUTY CYCLE");
for (int i = 0; i <= 5; i++) {
Serial.println("Cycling ON/OFF....");
digitalWrite(HRSolOnOff, HIGH);
delay(300);
digitalWrite(HRSolOnOff, LOW);
delay(150);
}
// delay(1000);
// digitalWrite(HRSolOnOff2, HIGH);
// delay(1000);
// digitalWrite(HRSolOnOff2, LOW);
// delay(1000);
for (int i = 0; i <= 5; i++) {
Serial.println("Cycling PWR @ 40% duty cycle....");
digitalWrite(HRSolOnOff2, HIGH);
delay(200);
digitalWrite(HRSolOnOff2, LOW);
delay(800);
}
HRRelayState = digitalRead(HRrelay);
PrevEnergized = true;
Serial.println("PrevEnergized: set TRUE ");
delay(2000);
}
}
else if (HRRelayState == LOW) {
Serial.println("HRRelayState = ");
Serial.println(HRRelayState);
if (PrevEnergized == true) {
Serial.println("PrevEnergized: TRUE ");
Serial.println("TURNING OFF ... FLASH 37.5% DUTY CYCLE");
for (int i = 0; i <= 5; i++) {
digitalWrite(HRSolOnOff2, HIGH);
delay(150);
digitalWrite(HRSolOnOff2, LOW);
delay(400);
}
delay(2000);
// for (int i = 0; i <= 5; i++) {
// digitalWrite(HRSolEnergize, HIGH);
// delay(150);
// digitalWrite(HRSolEnergize, LOW);
// delay(400);
// }
// digitalWrite(HRSolOnOff, HIGH);
HRRelayState = digitalRead(HRrelay);
PrevEnergized = false;
Serial.println("PrevEnergized: set FALSE ");
delay(2000);
}
}
}