Electronics & Arduino

4 Dec 2023

Need to 240v power return heat from accum relay from Barn relay

Accumulator pump control Jan 2023

Degrees = Alt-Shift-8 °

LH Accum pump controlled by lower middle cylinder thermostat when less than 60° returns heat from accumulator. Pumps into bottom of accumulator

RH Accum pump runs when over temp alarm shows (more than 78°) ie when too hot leds lit, it pumps towards the right, ie from accum bottom to boiler bottom

 
 //copied off off Boiler_10Dec_2021
 
 int myPin = A2; // INPUT Analogue Sensor
  int stoke = 2; // INPUT Stoking Temp Sensor (below 64° middle of tank)
   int accum = 3; // OUTPUT accumulator Relay
    int runPin = 4; // INPUT Heat Available Temp Sensor (Top of store above 56°)
     int annex = 5; // INPUT Annex Pump
      int house = 6; // INPUT House Pump
       int housePump = 7; // OUTPUT housePump Relay
        int clok = 8; // INPUT from Clock
         int tooHot = 9; // INPUT  Boiler too hot (over Temp stat over 84° middle of tank)
          int hotAlarm = 10; // OUTPUT too hot alarm in porch
           int ledPin = 13; // OUTPUT Indicator LED     
      int dt = 500; // Delay of 500secs

void setup() {
  Serial.begin(9600);
   
pinMode(myPin,INPUT);         //  pin A2
 pinMode(stoke,INPUT);         // stat acts 74°    pin 2
  pinMode(runPin, INPUT);       // stat acts at 56°    pin 4
   pinMode(annex,INPUT);         //    pin 5
    pinMode(house,INPUT);         //    pin 6
     pinMode(housePump, OUTPUT);   // Blue Relay Wire housePump  pin 7
      pinMode(clok,INPUT);          //   clock input   high = on   pin8
       pinMode(tooHot, INPUT);     // stat acts at 84°   pin 9
        pinMode(hotAlarm, OUTPUT);      // Green Relay Wire  pin 10
         pinMode(ledPin, OUTPUT);      // Indicator LED     pin13 
          pinMode(accum, OUTPUT);       // Accumulator Relay Wire  pin 3  
}
void loop() {

int analog = analogRead(myPin);     // Reads data from myPin (A2) pin and puts in analog Int
int readRun = digitalRead(runPin);  // Reads data from runPin (4) and puts it in readRun Int
int readStoke = digitalRead(stoke); // Reads data from stoke (2) and puts in readStoke Int
int readHouse = digitalRead(housePump); // Reads data from house (6) and puts in readHouse Int
int readClock = digitalRead(clok); // Reads data from clok (8) and puts in readClock Int
int readHot = digitalRead(tooHot); // Reads data from hotAlarm (9) and puts it in readHot Int

  Serial.println("System Running ( pin4 high)...........................");
  Serial.println("Boiler_24_Feb_      with Accum pump Relay ");
  
  Serial.print("Run  = ");
Serial.println(readRun);

 Serial.print("Hot Alarm  = ");
Serial.println(readHot);

Serial.print("Alarm LED = ");
Serial.println(readHot);

Serial.print("clock  = ");
Serial.println(readClock);

Serial.print("housePump Relay = ");
Serial.println(readHouse);

if (readStoke == 0){                    
  Serial.println("Boiler Requires Stoking");
  Serial.println(     );               
  delay(dt);
  digitalWrite(ledPin,HIGH);            // short flash led PIN 13 when boiler needs stoking
    delay(dt/16);
  digitalWrite(ledPin,LOW);
  delay(dt*12);
}
else{
  digitalWrite(ledPin,LOW);     //     stops flash
  Serial.println(     );
  delay(dt*2);
}
if (readHot == 1){
  Serial.println("Boiler too Hot");
  digitalWrite(hotAlarm,LOW);       // Red Alarm LED on pin 10, also shows in porch
  }
else{
  digitalWrite(hotAlarm,HIGH);      // Turns Alarm LED off
  }
if (readHot == 1){
 digitalWrite(accum,LOW);       // accumulator Pump on
  }
else{
  digitalWrite(accum,HIGH);      // accumulator Pump off
  }
  //housePump
  if (readClock == 1){
 digitalWrite(housePump,LOW);       // housePump Pump relay 7 on
  }
else{
  digitalWrite(housePump,HIGH);      // housePump Pump relay 7 off
  }
  
}

Latest arduino sketch Winter 2021

Boiler_10Dec_2021

// stoke flash time shortended, flash period extended,

int myPin = A2; // INPUT Analogue Sensor
int stoke = 2; // INPUT Stoking Temp Sensor (Bottom of store below 64deg)
int runPin = 4; // INPUT Heat Available Temp Sensor (Top of store above 58deg)
int annex = 5; // INPUT Annex Pump
int house = 6; // INPUT House Pump
int alarm = 7; // OUTPUT Alarm Light Relay
int clok = 8; // INTPUT from Clock
int veryHot = 9; // INPUT Boiler too hot (above 84°deg heat exchanger out to house)
int logStoreUFH = 10; // OUTPUT Log Store UFH Relay
int ledPin = 13; // OUTPUT Indicator LED
//int pin3 = 3 OUTPUT accumulator Relay

  int dt = 500; // Delay of 500secs

void setup() {
Serial.begin(9600);

pinMode(myPin,INPUT);          //  pin A2
 pinMode(stoke,INPUT);           // stat acts 70deg    pin 2
   pinMode(runPin, INPUT);         // stat acts at 60deg    pin 4
    pinMode(annex,INPUT);            //    pin 5
     pinMode(house,INPUT);             //    pin 6
      pinMode(alarm, OUTPUT);            // Blue Relay Wire   pin 7
        pinMode(veryHot, INPUT);        // stat acts at 81deg   pin 9
         pinMode(logStoreUFH, OUTPUT); // Green Relay Wire  pin 10
          pinMode(ledPin, OUTPUT);     // Indicator LED     pin13 
                                     // Yellow Relay Wire  pin 3  

}
void loop() {

int analog = analogRead(myPin); // Reads data from myPin (A2) pin and puts in analog Int
int readRun = digitalRead(runPin); // Reads data from runPin (4) and puts it in readRun Int
int readStoke = digitalRead(stoke); // Reads data from stoke (2) and puts in readStoke Int
int readAlarm = digitalRead(alarm); // Reads data from alarm (7) and puts in readAlarm Int
int readHot = digitalRead(veryHot); // Reads data from veryHot (9) and puts it in readHot Int
int readUFH = digitalRead(veryHot); // Reads data from veryHot (9) and puts it in readUFH Int

//if (readRun == 1){
Serial.println(“System On”);

//digitalWrite(houseUFH,HIGH); // Turns pin3off if readRun = 0

if (readStoke == 0){ //
Serial.println(“Boiler Requires Stoking”);
Serial.println( );
delay(dt);
digitalWrite(ledPin,HIGH); // short flash led PIN 13 when boiler needs stoking
delay(dt/12);
digitalWrite(ledPin,LOW);
delay(dt*12);
}
else{
digitalWrite(ledPin,LOW); // digitalWrite(alarm,HIGH);
}

if (readHot == 1){
Serial.println(“Log Store Pump Turned On”);
digitalWrite(logStoreUFH,LOW); // Turns Log Store Pump on pin 10
}
else{
digitalWrite(logStoreUFH,HIGH); // Turns Log Store Pump off
}
Serial.print(“Run = “);
Serial.println(readRun);
Serial.print(“Storing = “);
Serial.println(readHot);

}

last sketch on iMac RelieFapr08

Push button code for insertion into Logboilerjan2021

NicorAlarm working but cancel button no effect

Working Versions of my boiler sketch; V2relayPrint; V2relayP2

Comparison Operators

!= (not equal to)
< (less than)
<= (less than or equal to)
== (equal to)
> (greater than)
>= (greater than or equal to)

Instructions for LAE MTC12 dual output stat currently switching set point of boiler( cylinder central at 65°)

current sketch in boiler room = Boiler_10Dec_2021