coding issues....

ok, so I'm trying to set up what started out to be a simple code to turn some LED lights on up the drive in sequence.
Then I wanted an exit sequence.

Then I though adding Ultrasonic system to start the lights automatically when someone entered the drive...

After that I decided a PIR would be better suited for the job..
Which I have placed inside a PIR based Cat/animal scare unit.. so looks like original, but will trigger lights

but I cant seem to get the coding quite right.....

it will probably appear messy, as its been changed sooooo many times....

I'm using a 8 way relay block, and just an Uno board, 16x2 LCD display for info inside the house..

it seems to sit and just detect things all the time, or as seems fit enter the exit mode sequence

code is below..

#include "LiquidCrystal.h"



LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);

#define RELAY_ON 0
#define RELAY_OFF 1

#define Buzzer 2     //output to buzzer +'ve
#define PIRin 3      //from PIR sensor
#define Switch 4     //switch to reverse trigger LED's for exit
// #define Turnon 1     //switch LED's on until switched off

#define RELAY1 5     //relay for LED light section 1  by post
#define RELAY2 6     //relay for LED light section 2
#define RELAY3 7     //relay for LED light section 3
#define RELAY4 8     //relay for LED light section 4
#define RELAY5 9     //relay for LED light section 5
#define RELAY6 10    //relay for LED light section 6
#define RELAY7 11    //relay for LED light section 7   step 1
#define RELAY8 12    //relay for LED light section 8   step 2

#define Led 13                  //LED to indicate outside lights triggereed

int count = 0;                 // Count the number of triggers
int Exit = 0;                   // set Exit switch to LOW
int Gate = 0;                    // Sets PIR Sensors to Low to start with

// PIR power =  Brown >  blue > Yellow
//     earth =  Green >  black > Green
//     signal = Orange > yellow > Orange

void setup() {


 lcd.begin(16, 2);        // set up the LCD's number of columns(16) and rows(2):
 {
   Serial.begin (9600);       // initiate serial com
   {

     // Initialise the Arduino data pins for OUTPUT / INPUT options
     pinMode(RELAY1, OUTPUT);
     pinMode(RELAY2, OUTPUT);
     pinMode(RELAY3, OUTPUT);
     pinMode(RELAY4, OUTPUT);
     pinMode(RELAY5, OUTPUT);
     pinMode(RELAY6, OUTPUT);
     pinMode(RELAY7, OUTPUT);
     pinMode(RELAY8, OUTPUT);
     pinMode(PIRin,   INPUT);
     pinMode(Led,    OUTPUT);
     pinMode(Switch,  INPUT);
     pinMode(Buzzer, OUTPUT);

     // set the outputs ready to start
     digitalWrite(RELAY1, RELAY_OFF);
     digitalWrite(RELAY2, RELAY_OFF);
     digitalWrite(RELAY3, RELAY_OFF);
     digitalWrite(RELAY4, RELAY_OFF);
     digitalWrite(RELAY5, RELAY_OFF);
     digitalWrite(RELAY6, RELAY_OFF);
     digitalWrite(RELAY7, RELAY_OFF);
     digitalWrite(RELAY8, RELAY_OFF);

     Gate = digitalRead(PIRin);            // read and rename input value
     Exit = digitalRead(Switch);           // read and rename input value
     delay (3000);
     lcd.setCursor(0, 0);
     lcd.print("  CALIBRATING! ");
     delay (10000);
     lcd.setCursor(0, 1);
     lcd.print(count);
     lcd.setCursor(3, 1);
     lcd.print(" Objects Seen");

   }
 }
}

void loop() {


 lcd.setCursor(0, 0);                // set up lcd display with text..
 lcd.print(" STAND BY MODE! ");
 lcd.setCursor(0, 1);
 lcd.print(count);
 lcd.setCursor(3, 1);
 lcd.print(" Objects Seen");

 digitalWrite(Led, LOW);
 delay (1250);                   // stablise sensor signal

 if (Exit == 1)                  // check switch settig for exit mode

 { lcd.setCursor(0, 0);
   lcd.print("  <EXIT MODE!>  ");
   Serial.println("EXIT");
   digitalWrite(Led, HIGH);
   digitalWrite(Buzzer, HIGH);
   delay (50);
   digitalWrite(Buzzer, LOW);

   digitalWrite(RELAY8, RELAY_ON);
   delay (300);                                 //time ON between each light
   digitalWrite(RELAY7, RELAY_ON);
   delay (300);
   digitalWrite(RELAY6, RELAY_ON);
   delay (300);
   digitalWrite(RELAY5, RELAY_ON);
   delay (300);
   digitalWrite(RELAY4, RELAY_ON);
   delay (300);
   digitalWrite(RELAY3, RELAY_ON);
   delay (300);
   digitalWrite(RELAY2, RELAY_ON);
   delay (300);
   digitalWrite(RELAY1, RELAY_ON);

   delay (4000);                                 // TIME ALL ON....

   digitalWrite(RELAY8, RELAY_OFF);
   delay (100);                                  //time OFF between each light
   digitalWrite(RELAY7, RELAY_OFF);
   delay (100);
   digitalWrite(RELAY6, RELAY_OFF);
   delay (200);
   digitalWrite(RELAY5, RELAY_OFF);
   delay (200);
   digitalWrite(RELAY4, RELAY_OFF);
   delay (200);
   digitalWrite(RELAY3, RELAY_OFF);
   delay (200);
   digitalWrite(RELAY2, RELAY_OFF);
   delay (200);
   digitalWrite(RELAY1, RELAY_OFF);
   delay (500);                                    // TIME ALL OFF BEFORE RETRIGGER
   digitalWrite(Led, LOW);
   digitalWrite(Exit, LOW);
   
 }


 if (Gate == 1)                     // check if the input from PIR is HIGH
 {
   Serial.println("Detected something...");

   count++ ;                          // increase "Objects seen" count by 1
   lcd.setCursor(0, 1);
   lcd.print(count);
   lcd.setCursor(0, 0);
   lcd.print(" LIGHTS ARE ON!");      // Display "Light are On" on LCD inside

   digitalWrite(Led, HIGH);            // turn LED ON

   digitalWrite(Buzzer, HIGH);         //Beep beep
   delay (50);
   digitalWrite(Buzzer, LOW);
   delay (50);
   digitalWrite(Buzzer, HIGH);
   delay (50);
   digitalWrite(Buzzer, LOW);

   digitalWrite(RELAY1, RELAY_ON);
   delay (300);                                   //time ON between each light
   digitalWrite(RELAY2, RELAY_ON);
   delay (300);
   digitalWrite(RELAY3, RELAY_ON);
   delay (300);
   digitalWrite(RELAY4, RELAY_ON);
   delay (300);
   digitalWrite(RELAY5, RELAY_ON);
   delay (300);
   digitalWrite(RELAY6, RELAY_ON);
   delay (300);
   digitalWrite(RELAY7, RELAY_ON);
   delay (300);
   digitalWrite(RELAY8, RELAY_ON);

   delay (3000);                                    // TIME ALL ON....

   digitalWrite(RELAY1, RELAY_OFF);
   delay (150);                                      //time OFF between each light
   digitalWrite(RELAY2, RELAY_OFF);
   delay (150);
   digitalWrite(RELAY3, RELAY_OFF);
   delay (150);
   digitalWrite(RELAY4, RELAY_OFF);
   delay (150);
   digitalWrite(RELAY5, RELAY_OFF);
   delay (150);
   digitalWrite(RELAY6, RELAY_OFF);
   delay (150);
   digitalWrite(RELAY7, RELAY_OFF);
   delay (150);
   digitalWrite(RELAY8, RELAY_OFF);
   delay (500);                                     // TIME ALL OFF BEFORE RETRIGGER
   digitalWrite(Led, LOW);                     // turn LED off again

 }

 else
 {
   lcd.setCursor(0, 0);
   lcd.print(" STAND BY MODE! ");
 }


}

Delta_G:
You seem to be using Gate and Exit as if you believe their values will always be updated. But that's not true. They're always just going to keep whatever value the pin had when you read it in setup. If you want to update those values then you need to read the pin again and store the new value there.

can you point me in the right direction, as its really annoying me now... and like this project, but in danger of scraping it lol

do I just need to add something like
" digitalRead(Exit);
digitalRead(Gate);"
in the Loop

You got it.

ok, I have added that, and its still looping in "exit mode".....

Hopefully that is ok now!

Move these two lines to top of void loop()

      Gate = digitalRead(PIRin);            // read and rename input value
      Exit = digitalRead(Switch);           // read and rename input value

You have quite high total delay in your relay on/off sequence, so it might not be very responsive code.

the delay is quite high, as I want the leds (run by the relay) to stay on while people are walking up the drive etc..

And I have moved the code you mentioned, and it is still looping within Exit mode...

(gets the feeling ive upset someone... ) didn't mean too

People are probably upset that you have not posted your revised code

ok, point taken..... I'm just trying to get a few pointers on this platform, and get the code perfect.. with NO intentions of upsetting anyone....

#include "LiquidCrystal.h"



LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);

#define RELAY_ON 0
#define RELAY_OFF 1

#define Buzzer 2     //output to buzzer +'ve
#define PIRin 3      //from PIR sensor
#define Switch 4     //switch to reverse trigger LED's for exit
// #define Turnon 1     //switch LED's on until switched off

#define RELAY1 5     //relay for LED light section 1  by post
#define RELAY2 6     //relay for LED light section 2
#define RELAY3 7     //relay for LED light section 3
#define RELAY4 8     //relay for LED light section 4
#define RELAY5 9     //relay for LED light section 5
#define RELAY6 10    //relay for LED light section 6
#define RELAY7 11    //relay for LED light section 7   step 1
#define RELAY8 12    //relay for LED light section 8   step 2

#define Led 13                 //LED to indicate outside lights triggereed

int count = 0;                 // Count the number of triggers
int Exit = LOW;                  // set Exit switch to LOW
int Gate = LOW;                  // Sets PIR Sensors to Low to start with

// PIR power =  Brown >  blue > Yellow
//     earth =  Green >  black > Green
//     signal = Orange > yellow > Orange

void setup() {


  lcd.begin(16, 2);        // set up the LCD's number of columns(16) and rows(2):
  {
    Serial.begin (9600);       // initiate serial com
    {

      // Initialise the Arduino data pins for OUTPUT / INPUT options
      pinMode(RELAY1, OUTPUT);
      pinMode(RELAY2, OUTPUT);
      pinMode(RELAY3, OUTPUT);
      pinMode(RELAY4, OUTPUT);
      pinMode(RELAY5, OUTPUT);
      pinMode(RELAY6, OUTPUT);
      pinMode(RELAY7, OUTPUT);
      pinMode(RELAY8, OUTPUT);
      pinMode(PIRin,   INPUT);
      pinMode(Led,    OUTPUT);
      pinMode(Switch,  INPUT);
      pinMode(Buzzer, OUTPUT);

      // set the outputs ready to start
      digitalWrite(RELAY1, RELAY_OFF);
      digitalWrite(RELAY2, RELAY_OFF);
      digitalWrite(RELAY3, RELAY_OFF);
      digitalWrite(RELAY4, RELAY_OFF);
      digitalWrite(RELAY5, RELAY_OFF);
      digitalWrite(RELAY6, RELAY_OFF);
      digitalWrite(RELAY7, RELAY_OFF);
      digitalWrite(RELAY8, RELAY_OFF);

      Gate = digitalRead(PIRin);            // read and rename input value
      Exit = digitalRead(Switch);           // read and rename input value
      lcd.setCursor(0, 0);
      lcd.print("  CALIBRATING! ");
      delay (1000);
      lcd.setCursor(0, 1);
      lcd.print(count);
      lcd.setCursor(3, 1);
      lcd.print(" Objects Seen");

    }
  }
}

void loop() {
   Gate = digitalRead(PIRin);            // read and rename input value
   Exit = digitalRead(Switch);           // read and rename input value

  lcd.setCursor(0, 0);                // set up lcd display with text..
  lcd.print(" STAND BY MODE! ");
  lcd.setCursor(0, 1);
  lcd.print(count);
  lcd.setCursor(3, 1);
  lcd.print(" Objects Seen");

  digitalWrite(Led, LOW);
  delay (1250);                   // stablise sensor signal

  if (Exit == HIGH)                  // check switch settig for exit mode
  digitalWrite(Buzzer, HIGH);         //Beep beep
  delay (50);
  digitalWrite(Buzzer, LOW);
  delay (50);

  { lcd.setCursor(0, 0);
    lcd.print("  <EXIT MODE!>  ");
    Serial.println("EXIT");
    digitalWrite(Led, HIGH);
    digitalWrite(Buzzer, HIGH);
    delay (50);
    digitalWrite(Buzzer, LOW);

    digitalWrite(RELAY8, RELAY_ON);
    delay (300);                      //time ON between each light
    digitalWrite(RELAY7, RELAY_ON);
    delay (300);
    digitalWrite(RELAY6, RELAY_ON);
    delay (300);
    digitalWrite(RELAY5, RELAY_ON);
    delay (300);
    digitalWrite(RELAY4, RELAY_ON);
    delay (300);
    digitalWrite(RELAY3, RELAY_ON);
    delay (300);
    digitalWrite(RELAY2, RELAY_ON);
    delay (300);
    digitalWrite(RELAY1, RELAY_ON);

    delay (4000);                     // TIME ALL ON....

    digitalWrite(RELAY8, RELAY_OFF);
    delay (100);                      //time OFF between each light
    digitalWrite(RELAY7, RELAY_OFF);
    delay (100);
    digitalWrite(RELAY6, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY5, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY4, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY3, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY2, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY1, RELAY_OFF);
    delay (500);                     // TIME ALL OFF BEFORE RETRIGGER
    digitalWrite(Led, LOW);


  }


  if (Gate == HIGH)                     // check if the input from PIR is HIGH
  {
    Serial.println("Detected something...");

    count++ ;                          // increase "Objects seen" count by 1
    lcd.setCursor(0, 1);
    lcd.print(count);
    lcd.setCursor(0, 0);
    lcd.print(" LIGHTS ARE ON!");      // Display "Light are On" on LCD inside

    digitalWrite(Led, HIGH);            // turn LED ON

    digitalWrite(Buzzer, HIGH);         //Beep beep
    delay (50);
    digitalWrite(Buzzer, LOW);
    delay (50);
    digitalWrite(Buzzer, HIGH);
    delay (50);
    digitalWrite(Buzzer, LOW);

    digitalWrite(RELAY1, RELAY_ON);
    delay (300);                          //time ON between each light
    digitalWrite(RELAY2, RELAY_ON);
    delay (300);
    digitalWrite(RELAY3, RELAY_ON);
    delay (300);
    digitalWrite(RELAY4, RELAY_ON);
    delay (300);
    digitalWrite(RELAY5, RELAY_ON);
    delay (300);
    digitalWrite(RELAY6, RELAY_ON);
    delay (300);
    digitalWrite(RELAY7, RELAY_ON);
    delay (300);
    digitalWrite(RELAY8, RELAY_ON);

    delay (3000);                         // TIME ALL ON....

    digitalWrite(RELAY1, RELAY_OFF);
    delay (150);                         //time OFF between each light
    digitalWrite(RELAY2, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY3, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY4, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY5, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY6, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY7, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY8, RELAY_OFF);
    delay (500);                     // TIME ALL OFF BEFORE RETRIGGER
    digitalWrite(Led, LOW);          // turn LED off again

  }

  else
  {
    lcd.setCursor(0, 0);
    lcd.print(" STAND BY MODE! ");
  }


}
if (Exit == HIGH)                  // check switch settig for exit mode
  digitalWrite(Buzzer, HIGH);         //Beep beep
  delay (50);
  digitalWrite(Buzzer, LOW);
  delay (50);

You realise that only one of those actions is conditional?

Maybe needs more { } braces - you've got some spare ones in setup ()

the idea behind the Buzzer HIGH and LOW was just to give a very brief Beep Beep before continuing on with the rest of that sequence....

I'm lost now, and cant figure this out on my own... :o(

Don't like being beaten by anything like this....

AWOL:

if (Exit == HIGH)                  // check switch settig for exit mode

digitalWrite(Buzzer, HIGH);         //Beep beep
 delay (50);
 digitalWrite(Buzzer, LOW);
 delay (50);



You realise that only one of those actions is conditional?

Maybe needs more { } braces - you've got some spare ones in setup ()

Of course, if the code were properly formatted (Ato Format in the IDE) then the problem might be more obvious

if (Exit == HIGH)                  // check switch settig for exit mode
  digitalWrite(Buzzer, HIGH);         //Beep beep
delay (50);
digitalWrite(Buzzer, LOW);
delay (50);

Much better to write it as

if (Exit == HIGH)   // check switch settig for exit mode
{
  digitalWrite(Buzzer, HIGH);         //Beep beep
  delay (50);
  digitalWrite(Buzzer, LOW);
  delay (50);
}

which makes it very clear which block of code will be executed if the test returns true

Fait point, it wasn't included in the code properly...

I just seem to be blind to something as ive stared at this too long now...

thank you...

will see if that helps, or it still loops in Exit mode....

#include "LiquidCrystal.h"



LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);

#define RELAY_ON 0
#define RELAY_OFF 1

#define Buzzer 2     //output to buzzer +'ve
#define PIRin 3      //from PIR sensor
#define Switch 4     //switch to reverse trigger LED's for exit
// #define Turnon 1     //switch LED's on until switched off

#define RELAY1 5     //relay for LED light section 1  by post
#define RELAY2 6     //relay for LED light section 2
#define RELAY3 7     //relay for LED light section 3
#define RELAY4 8     //relay for LED light section 4
#define RELAY5 9     //relay for LED light section 5
#define RELAY6 10    //relay for LED light section 6
#define RELAY7 11    //relay for LED light section 7   step 1
#define RELAY8 12    //relay for LED light section 8   step 2

#define Led 13                 //LED to indicate outside lights triggereed

int count = 0;                 // Count the number of triggers
int Exit = LOW;                  // set Exit switch to LOW
int Gate = LOW;                  // Sets PIR Sensors to Low to start with

// PIR power =  Brown >  blue > Yellow
//     earth =  Green >  black > Green
//     signal = Orange > yellow > Orange

void setup() {


  lcd.begin(16, 2);        // set up the LCD's number of columns(16) and rows(2):
  {
    Serial.begin (9600);       // initiate serial com
    {

      // Initialise the Arduino data pins for OUTPUT / INPUT options
      pinMode(RELAY1, OUTPUT);
      pinMode(RELAY2, OUTPUT);
      pinMode(RELAY3, OUTPUT);
      pinMode(RELAY4, OUTPUT);
      pinMode(RELAY5, OUTPUT);
      pinMode(RELAY6, OUTPUT);
      pinMode(RELAY7, OUTPUT);
      pinMode(RELAY8, OUTPUT);
      pinMode(PIRin,   INPUT);
      pinMode(Led,    OUTPUT);
      pinMode(Switch,  INPUT);
      pinMode(Buzzer, OUTPUT);

      // set the outputs ready to start
      digitalWrite(RELAY1, RELAY_OFF);
      digitalWrite(RELAY2, RELAY_OFF);
      digitalWrite(RELAY3, RELAY_OFF);
      digitalWrite(RELAY4, RELAY_OFF);
      digitalWrite(RELAY5, RELAY_OFF);
      digitalWrite(RELAY6, RELAY_OFF);
      digitalWrite(RELAY7, RELAY_OFF);
      digitalWrite(RELAY8, RELAY_OFF);

      Gate = digitalRead(PIRin);            // read and rename input value
      Exit = digitalRead(Switch);           // read and rename input value
      lcd.setCursor(0, 0);
      lcd.print("  CALIBRATING! ");
      delay (1000);
      lcd.setCursor(0, 1);
      lcd.print(count);
      lcd.setCursor(3, 1);
      lcd.print(" Objects Seen");

    }
  }
}

void loop() {
   Gate = digitalRead(PIRin);            // read and rename input value
   Exit = digitalRead(Switch);           // read and rename input value

  lcd.setCursor(0, 0);                // set up lcd display with text..
  lcd.print(" STAND BY MODE! ");
  lcd.setCursor(0, 1);
  lcd.print(count);
  lcd.setCursor(3, 1);
  lcd.print(" Objects Seen");

  digitalWrite(Led, LOW);
  delay (1250);                   // stablise sensor signal

  if (Exit == HIGH)        // check switch settig for exit mode
  {
   lcd.setCursor(0, 0);
    lcd.print("  <EXIT MODE!>  ");
    Serial.println("EXIT");
    digitalWrite(Led, HIGH);      // set LED HIGH
    digitalWrite(Buzzer, HIGH);   // Beep.. (single for exit)
    delay (50);
    digitalWrite(Buzzer, LOW);

    digitalWrite(RELAY8, RELAY_ON);
    delay (300);                      //time ON between each light
    digitalWrite(RELAY7, RELAY_ON);
    delay (300);
    digitalWrite(RELAY6, RELAY_ON);
    delay (300);
    digitalWrite(RELAY5, RELAY_ON);
    delay (300);
    digitalWrite(RELAY4, RELAY_ON);
    delay (300);
    digitalWrite(RELAY3, RELAY_ON);
    delay (300);
    digitalWrite(RELAY2, RELAY_ON);
    delay (300);
    digitalWrite(RELAY1, RELAY_ON);

    delay (4000);                     // TIME ALL ON....

    digitalWrite(RELAY8, RELAY_OFF);
    delay (100);                      //time OFF between each light
    digitalWrite(RELAY7, RELAY_OFF);
    delay (100);
    digitalWrite(RELAY6, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY5, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY4, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY3, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY2, RELAY_OFF);
    delay (200);
    digitalWrite(RELAY1, RELAY_OFF);
    delay (500);                     // TIME ALL OFF BEFORE RETRIGGER
    digitalWrite(Led, LOW);


  }


  if (Gate == HIGH)                     // check if the input from PIR is HIGH
  {
    Serial.println("Detected something...");

    count++ ;                          // increase "Objects seen" count by 1
    lcd.setCursor(0, 1);
    lcd.print(count);
    lcd.setCursor(0, 0);
    lcd.print(" LIGHTS ARE ON!");      // Display "Light are On" on LCD inside

    digitalWrite(Led, HIGH);            // turn LED ON

    digitalWrite(Buzzer, HIGH);         //Beep beep
    delay (50);
    digitalWrite(Buzzer, LOW);
    delay (50);
    digitalWrite(Buzzer, HIGH);
    delay (50);
    digitalWrite(Buzzer, LOW);

    digitalWrite(RELAY1, RELAY_ON);
    delay (300);                          //time ON between each light
    digitalWrite(RELAY2, RELAY_ON);
    delay (300);
    digitalWrite(RELAY3, RELAY_ON);
    delay (300);
    digitalWrite(RELAY4, RELAY_ON);
    delay (300);
    digitalWrite(RELAY5, RELAY_ON);
    delay (300);
    digitalWrite(RELAY6, RELAY_ON);
    delay (300);
    digitalWrite(RELAY7, RELAY_ON);
    delay (300);
    digitalWrite(RELAY8, RELAY_ON);

    delay (3000);                         // TIME ALL ON....

    digitalWrite(RELAY1, RELAY_OFF);
    delay (150);                         //time OFF between each light
    digitalWrite(RELAY2, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY3, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY4, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY5, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY6, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY7, RELAY_OFF);
    delay (150);
    digitalWrite(RELAY8, RELAY_OFF);
    delay (500);                     // TIME ALL OFF BEFORE RETRIGGER
    digitalWrite(Led, LOW);          // turn LED off again

  }

  else
  {
    lcd.setCursor(0, 0);
    lcd.print(" STAND BY MODE! ");
  }


}

still looping.... and the switch (physical rocker switch) to activate "exit" is good, and the signal is currently LOW.

So I really do not know what is wrong...

Any help, would be great

still looping....

If you mean that it is looping because Exit is HIGH then that is what you need to investigate. Try printing the value of Exit after reading it. If it never goes LOW then no wonder you have a problem. Even better, write a small sketch to test the input that you are reading the exit value from and print that. Does it ever return a value of LOW ? If not, then why not ?

I don't see an issue with the code. I suspect your Switch input is floating. Try a pulldown resistor, or better, use INPUT_PULLUP in your pinmode statement and test for the switch being pressed by seeing if it is LOW.

ok, the code include a serial print line,

void loop() {
   Gate = digitalRead(PIRin);            // read and rename input value
   Exit = digitalRead(Switch);           // read and rename input value
   
    Serial.println(Exit);

and it shows in the serial monitor
1
Exit
1
Exit

I will rewire this to include a small pull down resistor from input pit (Exit) to ground, in order to pull it right down beween switches...

Not sure how to include the option of "INPUT_PULLUP" in my code....

Not sure how to include the option of "INPUT_PULLUP" in my code....

pinMode(Switch,  INPUT_PULLUP);

entered the following code

pinMode(RELAY1, OUTPUT);
      pinMode(RELAY2, OUTPUT);
      pinMode(RELAY3, OUTPUT);
      pinMode(RELAY4, OUTPUT);
      pinMode(RELAY5, OUTPUT);
      pinMode(RELAY6, OUTPUT);
      pinMode(RELAY7, OUTPUT);
      pinMode(RELAY8, OUTPUT);
      pinMode(PIRin,   INPUT);
      pinMode(Led,    OUTPUT);
      pinMode(Switch,  INPUT_PULLUP);
      pinMode(Buzzer, OUTPUT);

and the following error when compiling

PIR_attemp_2_LCD_UNO:53: error: stray '\302' in program

pinMode(Switch(INPUT_PULLUP);

^

PIR_attemp_2_LCD_UNO:53: error: stray '\240' in program

exit status 1
stray '\302' in program