Problem with the Sequence

Problems in this Programming

For this Programming I have to have 3 sequences for which I used three While, the problem I have in this programming is that what (If) in Sequence 2 and Sequence 3 are not working in the correct way since without sending a pass or a fail enters the if and they go to the next sequences without having had a HIGH in that digitalRead. I would be grateful if you could tell me what is the problem I have in this programming Thank you very much.

Q3_Programming_Elian_TEST_2_NO_DNAR_Elian_Otra.ino (6.27 KB)

I would be grateful if you read "Read this before posting a programming question ..." at the top of the forum.

Seriously, if you don't post the code properly, most people on the forum aren't going to download and open it.

Apart from what SteveMann said there, you need to describe the requirement.

Forget the code for a while: explain in words and / or a diagram of some kind what's supposed to happen, like:

"The system starts and happens, then I do and happens"

... kind of thing.

Your file name "Q3_Programming...." makes me think it's some kind of course assignment, so the requirement must be written down somewhere?

Problems in this Programming

For this Programming I have to have 3 sequences for which I used three While, the problem I have in this programming is that what (If) in Sequence 2 and Sequence 3 are not working in the correct way since without sending a pass or a fail enters the if and they go to the next sequences without having had a HIGH in that digitalRead. I would be grateful if you could tell me what is the problem I have in this programming Thank you very much.

Program Operation

  1. The Start button is pressed and the first sequence begins.
  2. Enter the First If and wait if the test is fail or pass.
  3. If it is Fail no matter in which sequence it should go to the first sequence again.
  4. If you send a pass it sends me to the second sequence, but importantly the pass stays stuck until I do not start Start (High) and then Start Program (LOW) .When it goes off I should wait for test two to send me the pass again to enter sequence 3 and do the same after finishing sequence 3 either pass or fail as we do the same steps again.

int Start = 2;// Start button I/O-2
int PASS = 3; // PASS send to the Arduino I/O-3
int FAIL = 4; // FAIL send to the Arduino I/O-4
int S1 = 5; //Switch 1 I/O-5
int S2 = 6; //switch 2 I/O-6
int S3 = 7; //switch 3 I/O-7
int S4 = 8; //switch 4 I/O-8
int S1_Supervisor = 9; //Led Indication I/O-9
int S2_Main = 10;//Led Indication I/O-10
int S3_Data = 0; //Led Indication I/O-11
int PASS_LED = 12;//Led Indication I/O-12
int FAIL_LED = 13;//Led Indication I/O-13
int Start_Program = 11; //Start Program I/O-22
int S4_1 = 23; //switch 4 I/O-23
int x;
int j;
int k;

void setup()
{
Serial.begin(9600);
pinMode(Start, INPUT);
pinMode(Start_Program, OUTPUT);
pinMode(PASS, INPUT);
pinMode(FAIL, INPUT);
pinMode(PASS_LED, OUTPUT);
pinMode(FAIL_LED, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(S4, OUTPUT);
pinMode(S4_1, OUTPUT);
pinMode(S1_Supervisor, OUTPUT);
pinMode(S2_Main, OUTPUT);
pinMode(S3_Data, OUTPUT);

}

void loop()
{

if (digitalRead(Start) == HIGH)
{
x = 10;
j = 0;
k = 0;
}
while ( x >= 10)
{
if (digitalRead(Start) == HIGH)
{
delay (1000);
digitalWrite(S1, HIGH);
digitalWrite(S2, HIGH); // state:ON of the sequency #1
digitalWrite(S3, HIGH);
digitalWrite(S4, HIGH);
digitalWrite(S4_1, HIGH);
delay (1000);
digitalWrite(Start_Program, HIGH);
delay (1000);
digitalWrite(Start_Program, LOW);
delay (2000);
digitalWrite(PASS_LED, LOW);
digitalWrite(FAIL_LED, LOW);
delay (2000);
digitalWrite(S1_Supervisor, HIGH);
delay (3000);
}
if (digitalRead(PASS)== HIGH && digitalRead(S1_Supervisor)== HIGH)
{
Serial.println(PASS);
Serial.println(S1_Supervisor);
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #1
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S1_Supervisor, LOW);
digitalWrite(PASS_LED, HIGH);
delay (2000);
j = 10;
x = 0;
delay (2000);
}
if (digitalRead(FAIL)== HIGH && digitalRead(S1_Supervisor)== HIGH)
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #1
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S1_Supervisor, LOW);
digitalWrite(FAIL_LED, HIGH);
delay (2000);
x = 0;
delay (1000);
}
}

while ( j >= 10)
{

if ((digitalRead(PASS)== HIGH) && (digitalRead(S2_Main)== LOW))
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, HIGH);
digitalWrite(S4_1, HIGH);
delay (1000);
digitalWrite(Start_Program, HIGH);
delay (1000);
digitalWrite(Start_Program, LOW);
do
{
digitalWrite(PASS_LED, LOW);
digitalWrite(FAIL_LED, LOW);
delay (2000);
digitalWrite(S2_Main, HIGH);
delay (3000);
}while(digitalRead(PASS)== HIGH && digitalRead(S2_Main)== LOW);
}
if ((digitalRead(PASS)== HIGH) && (digitalRead(S2_Main)== HIGH))
{
Serial.println(PASS);
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #1 for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S2_Main, LOW);
digitalWrite(PASS_LED, HIGH);
delay (2000);
k = 10;
j = 0;
delay (1000);
}
if (digitalRead(FAIL)== HIGH && digitalRead(S2_Main)== HIGH && digitalRead(FAIL_LED) == LOW && digitalRead(Start_Program) == LOW) //
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #2 for the MAIN
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S2_Main, LOW);
digitalWrite(FAIL_LED, HIGH);
delay (2000);
x = 0;
j = 0;
delay (1000);
}
}
while ( k >= 10)
{

if (digitalRead(PASS) == HIGH && digitalRead(S3_Data) == LOW)
{
delay (300);
digitalWrite(S1, HIGH);
digitalWrite(S2, LOW); // state:ON of the sequency #3
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
delay (1000);
digitalWrite(Start_Program, HIGH);
delay (1000);
digitalWrite(Start_Program, LOW);
do
{
digitalWrite(PASS_LED, LOW);
digitalWrite(FAIL_LED, LOW);
delay (2000);
digitalWrite(S3_Data, HIGH);
delay (3000);
}while(digitalRead(PASS) == HIGH && digitalRead(S3_Data) == LOW);
}
if (digitalRead(PASS) == HIGH && digitalRead(S3_Data) == HIGH) // && digitalRead(PASS_LED)==LOW) //&& digitalRead(Start_Program)==LOW )
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #3
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S3_Data, LOW);
digitalWrite(PASS_LED, HIGH);
delay (1000);
digitalWrite(Start_Program, HIGH);
delay (1000);
digitalWrite(Start_Program, LOW);
x = 0;
j = 0;
k = 0;
delay (2000);
}
if (digitalRead(FAIL) == HIGH && digitalRead(S3_Data) == HIGH) // && digitalRead(FAIL_LED)== LOW) //&& digitalRead(Start_Program)==LOW)
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #3
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S3_Data, LOW);
digitalWrite(FAIL_LED, HIGH);
delay (1000);
digitalWrite(Start_Program, HIGH);
delay (1000);
digitalWrite(Start_Program, LOW);
x = 0;
k = 0;
j = 0;
delay (2000);
}
}
}

Why did you start yet another thread?

But whatever, I'm afraid this:

Program Operation

  1. The Start button is pressed and the first sequence begins.
  2. Enter the First If and wait if the test is fail or pass.
  3. If it is Fail no matter in which sequence it should go to the first sequence again.
  4. If you send a pass it sends me to the second sequence, but importantly the pass stays stuck until I do not start Start (High) and then Start Program (LOW) .When it goes off I should wait for test two to send me the pass again to enter sequence 3 and do the same after finishing sequence 3 either pass or fail as we do the same steps again.

... pretty much fried my brain.

Back up a bit, forget the program (first if etc) and just say what the heck this sequence is all about. I'm keen to see a flowchart or similar, at a high level.

(Maybe others understand what you're explaining, I certainly don't)

I agree with Reply #1 #2 (after the merge)

Also, when posting code please use the code button </>
codeButton.png

so your code 
looks like this

and is easy to copy to a text editor See How to use the Forum

Your code is too long for me to study quickly without copying to my text editor. The text editor shows line numbers, identifies matching brackets and allows me to search for things like all instances of a particular variable or function.

Also please use the AutoFormat tool to indent your code for easier reading.

...R

I've merged your cross posts elianmorales.

Cross posting is against the rules of the forum. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend 15 minutes writing a detailed answer on this thread, without knowing that someone else already did the same in the other thread.

Repeated cross posting will result in a suspension from the forum.

In the future, please take some time to pick the forum section that best suits the topic of your question and then only post once to that forum section. This is basic forum etiquette, as explained in the sticky "How to use this forum - please read." post you will find at the top of every forum section. It contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

Poblems in this Programming

For this Programming I have to have 3 sequences for which I used three While, the problem I have in this programming is that what (If) in Sequence 2 and Sequence 3 are not working in the correct way since without sending a pass or a fail enters the if and they go to the next sequences without having had a HIGH in that digitalRead. I would be grateful if you could tell me what is the problem I have in this programming Thank you very much.
Program Operation

  1. The Start button is pressed and the first sequence begins.
  2. Enter the First If and wait if the test is fail or pass.
  3. If it is Fail no matter in which sequence it should go to the first sequence again.
  4. If you send a pass it sends me to the second sequence, but importantly the pass stays stuck until I do not start Start (High) and then Start Program (LOW) .When it goes off I should wait for test two to send me the pass again to enter sequence 3 and do the same after finishing sequence 3 either pass or fail as we do the same steps again.

// set pin numbers:
int Start = 2;// Start button I/O-2
int PASS = 3; // PASS send to the Arduino I/O-3
int FAIL = 4; // FAIL send to the Arduino I/O-4
int S1=5; //Switch 1 I/O-5
int S2 =6;//switch 2 I/O-6
int S3 =7;//switch 3 I/O-7
int S4 =8;//switch 4 I/O-8
int S1_Supervisor =9; //Led Indication I/O-9
int S2_Main = 10;//Led Indication I/O-10
int S3_Data=11;//Led Indication I/O-11
int PASS_LED = 12;//Led Indication I/O-12
int FAIL_LED = 13;//Led Indication I/O-13
int Start_Program =22;//Start Program I/O-14
int S4_1 =23;//switch 4 I/O-15
int x;
int j;
int k;

void setup()
{
// set the digital pins as outputs:
pinMode(Start, INPUT);
pinMode(Start_Program,OUTPUT);
pinMode(PASS, INPUT);
pinMode(FAIL, INPUT);
pinMode(PASS_LED, OUTPUT);
pinMode(FAIL_LED, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(S4, OUTPUT);
pinMode(S4_1, OUTPUT);
pinMode(S1_Supervisor, OUTPUT);
pinMode(S2_Main, OUTPUT);
pinMode(S3_Data, OUTPUT);

}

void loop()
{
if(digitalRead(Start)==HIGH)
{
x=0;
j=0;
k=0;
}
for( x=0 ; x>=0 ; x++)
{
if(digitalRead(Start)==HIGH)
{
delay (1000);
digitalWrite(S1, HIGH);
digitalWrite(S2, HIGH); // state:ON of the sequency for the supevisor
digitalWrite(S3, HIGH);
digitalWrite(S4, HIGH);
digitalWrite(S4_1, HIGH);
delay (2000);
digitalWrite(Start_Program, HIGH);
delay (2000);
digitalWrite(Start_Program, LOW);
digitalWrite(S1_Supervisor, HIGH);
digitalWrite(PASS_LED,LOW);
digitalWrite(FAIL_LED,LOW);
delay (5000);
}
if (digitalRead(PASS)==HIGH && digitalRead(S1_Supervisor)==HIGH)
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S1_Supervisor,LOW);
digitalWrite(PASS_LED,HIGH);
delay (2000);
digitalWrite(Start_Program,LOW);
j=10;
delay (3000);
break;
}
if (digitalRead(FAIL)==HIGH && digitalRead(S1_Supervisor)==HIGH)
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S1_Supervisor,LOW);
digitalWrite(FAIL_LED,HIGH);
delay (2000);
digitalWrite(Start_Program,LOW);
x=0;
delay (1000);
break;
}
}
for( j=10 ; x>=10 ; x++)
{

if (digitalRead(PASS)==HIGH && digitalRead(S2_Main)== LOW) //&& digitalRead(S3_Data)== LOW)
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, HIGH);
digitalWrite(S4_1, HIGH);
delay (2000);
digitalWrite(Start_Program, HIGH);
delay (2000);
digitalWrite(Start_Program, LOW);
delay (3000);
digitalWrite(S2_Main, HIGH);
delay (2000);
digitalWrite(PASS_LED,LOW);
digitalWrite(FAIL_LED,LOW);
delay (2000);
}
if (digitalRead(PASS)==HIGH && digitalRead(S2_Main)== HIGH && digitalRead(PASS_LED)==LOW && digitalRead(Start_Program)==LOW)
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #1 for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S2_Main,LOW);
digitalWrite(PASS_LED,HIGH);
delay (800);
digitalWrite(Start_Program,LOW);
k=10;
delay (800);
}
if (digitalRead(FAIL)==HIGH && digitalRead(S2_Main)== HIGH)// && digitalRead(FAIL_LED)== LOW)) //&& digitalRead(Start_Program)==LOW)
{
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency #2 for the MAIN
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1, LOW);
digitalWrite(S2_Main,LOW);
digitalWrite(FAIL_LED,HIGH);
delay (800);
digitalWrite(Start_Program,LOW);
x=0;
j=0;
delay (800);
break;
}
}
for( k=10 ; x>=10 ; x++)
{

if(digitalRead(PASS)==HIGH && digitalRead(S3_Data)== LOW)
{
delay (300);
digitalWrite(S1, HIGH);
digitalWrite(S2, LOW); // sequency#3
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1,LOW);
delay (2000);
digitalWrite(Start_Program, HIGH);
delay (2000);
digitalWrite(Start_Program, LOW);
digitalWrite(S3_Data, HIGH);
delay (1000);
digitalWrite(PASS_LED,LOW);
digitalWrite(FAIL_LED,LOW);
delay (2000);
}
if (digitalRead(PASS)==HIGH && digitalRead(S3_Data)==HIGH) // && digitalRead(PASS_LED)==LOW) //&& digitalRead(Start_Program)==LOW )
{

delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1,LOW);
digitalWrite(S3_Data,LOW);
digitalWrite(PASS_LED,HIGH);
delay (1000);
digitalWrite(Start_Program,HIGH);
delay (1000);
digitalWrite(Start_Program,LOW);
x=0;
delay (3000);
break;
}
if (digitalRead(FAIL)==HIGH && digitalRead(S3_Data)== HIGH) // && digitalRead(FAIL_LED)== LOW) //&& digitalRead(Start_Program)==LOW)
{
x=0;
delay (300);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW); // state:ON of the sequency for the supevisor
digitalWrite(S3, LOW);
digitalWrite(S4, LOW);
digitalWrite(S4_1,LOW);
digitalWrite(S3_Data,LOW);
digitalWrite(FAIL_LED,HIGH);
delay (1000);
digitalWrite(Start_Program,HIGH);
delay (1000);
digitalWrite(Start_Program,LOW);
delay (3000);
break;
}
}
return;
}

for( j=10 ; x>=10 ; x++)Unusual

Yet another cross post merged. @elianmorales I've already told you not to do that. This is your last warning. If you do it again I'm giving you an account suspension.

elianmorales:
Poblems in this Programming

The first problem is the way you posted your program code.

To make it easy for people to help you please modify your post and use the code button </>
codeButton.png

so your code 
looks like this

and is easy to copy to a text editor. See How to use the Forum

Your code is too long for me to study quickly without copying to my text editor. The text editor shows line numbers, identifies matching brackets and allows me to search for things like all instances of a particular variable or function.

Also please use the AutoFormat tool to indent your code consistently for easier reading.

...R

Poblems in this Programming

For this Programming I have to have 3 sequences for which I used three While, the problem I have in this programming is that what (If) in Sequence 2 and Sequence 3 are not working in the correct way since without sending a pass or a fail enters the if and they go to the next sequences without having had a HIGH in that digitalRead. I would be grateful if you could tell me what is the problem I have in this programming Thank you very much.
Program Operation

  1. The Start button is pressed and the first sequence begins.
  2. Enter the First If and wait if the test is fail or pass.
  3. If it is Fail no matter in which sequence it should go to the first sequence again.
  4. If you send a pass it sends me to the second sequence, but importantly the pass stays stuck until I do not start Start (High) and then Start Program (LOW) .When it goes off I should wait for test two to send me the pass again to enter sequence 3 and do the same after finishing sequence 3 either pass or fail as we do the same steps again.
/*

  eX1 IC programming

      This program will control the programming
      sequence for the ICs on the eX1

     Input       Output              Output

     Start

     S1          Supervisor          Main

     S2          Flash/SUP           Main

     S3          Supervisor          Flash/Main

                 Pass
                 Fail

*/



int Start = 2;// Start button I/O-2
int PASS =  3; // PASS send to the Arduino I/O-3 int FAIL =  4; // FAIL send to the Arduino  I/O-4
int FAIL =  4;
int S1 = 5; //Switch 1 I/O-5
int S2 = 6; //switch 2 I/O-6
int S3 = 7; //switch 3 I/O-7
int S4 = 8; //switch 4 I/O-8
int S1_Supervisor = 9; //Led Indication I/O-9
int S2_Main = 10;//Led Indication I/O-10
int S3_Data = 0; //Led Indication  I/O-11
int PASS_LED = 12;//Led Indication  I/O-12
int FAIL_LED = 13;//Led Indication  I/O-13
int Start_Program = 11; //Start Program I/O-22
int S4_1 = 23; //switch 4 I/O-23
int  x;
int  j;
int  k;





void setup()
{
 Serial.begin(9600);
  pinMode(Start, INPUT);
  pinMode(Start_Program, OUTPUT);
  pinMode(PASS, INPUT);
  pinMode(FAIL, INPUT);
  pinMode(PASS_LED, OUTPUT);
  pinMode(FAIL_LED, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(S4, OUTPUT);
  pinMode(S4_1, OUTPUT);
  pinMode(S1_Supervisor, OUTPUT);
  pinMode(S2_Main, OUTPUT);
  pinMode(S3_Data, OUTPUT);


}

void loop()
{
  
  if (digitalRead(Start) == HIGH)
  {
    x = 10;
    j = 0;
    k = 0;
  }
  while ( x >= 10)
  {
    if (digitalRead(Start) == HIGH)
    {
      delay (1000);
      digitalWrite(S1, HIGH);
      digitalWrite(S2, HIGH);  // state:ON of the sequency #1
      digitalWrite(S3, HIGH);
      digitalWrite(S4, HIGH);
      digitalWrite(S4_1, HIGH);
      delay (1000);
      digitalWrite(Start_Program, HIGH);
      delay (1000);
      digitalWrite(Start_Program, LOW);
      delay (2000);
      digitalWrite(PASS_LED, LOW);
      digitalWrite(FAIL_LED, LOW);
      delay (2000);
      digitalWrite(S1_Supervisor, HIGH);
      delay (3000);
    }
    if (digitalRead(PASS)== HIGH && digitalRead(S1_Supervisor)== HIGH)
    {
      Serial.println(PASS);
      Serial.println(S1_Supervisor);
      delay (300);
      digitalWrite(S1, LOW);
      digitalWrite(S2, LOW);  // state:ON of the sequency #1
      digitalWrite(S3, LOW);
      digitalWrite(S4, LOW);
      digitalWrite(S4_1, LOW);
      digitalWrite(S1_Supervisor, LOW);
      digitalWrite(PASS_LED, HIGH);
      delay (2000);
      j = 10;
      x = 0;
      delay (2000);
    }
    if (digitalRead(FAIL)== HIGH && digitalRead(S1_Supervisor)== HIGH)
    {
      delay (300);
      digitalWrite(S1, LOW);
      digitalWrite(S2, LOW);  // state:ON of the sequency #1
      digitalWrite(S3, LOW);
      digitalWrite(S4, LOW);
      digitalWrite(S4_1, LOW);
      digitalWrite(S1_Supervisor, LOW);
      digitalWrite(FAIL_LED, HIGH);
      delay (2000);
      x = 0;
      delay (1000);
    }
  }
  
  while ( j >= 10)
  {
 
    if ((digitalRead(PASS)== HIGH) && (digitalRead(S2_Main)== LOW))
    {
      delay (300);
      digitalWrite(S1, LOW);
      digitalWrite(S2, LOW);  // state:ON of the sequency for the supevisor
      digitalWrite(S3, LOW);
      digitalWrite(S4, HIGH);
      digitalWrite(S4_1, HIGH);
      delay (1000);
      digitalWrite(Start_Program, HIGH);
      delay (1000);
      digitalWrite(Start_Program, LOW);
      do
      {
      digitalWrite(PASS_LED, LOW);
      digitalWrite(FAIL_LED, LOW);
      delay (2000);
      digitalWrite(S2_Main, HIGH);
      delay (3000);
      }while(digitalRead(PASS)== HIGH && digitalRead(S2_Main)== LOW);
 }
    if ((digitalRead(PASS)== HIGH) && (digitalRead(S2_Main)== HIGH))
    {
      Serial.println(PASS);
      delay (300);
      digitalWrite(S1, LOW);
      digitalWrite(S2, LOW);  // state:ON of the sequency #1 for the supevisor
      digitalWrite(S3, LOW);
      digitalWrite(S4, LOW);
      digitalWrite(S4_1, LOW);
      digitalWrite(S2_Main, LOW);
      digitalWrite(PASS_LED, HIGH);
      delay (2000);
      k = 10;
      j = 0;
      delay (1000);
    }
    if (digitalRead(FAIL)== HIGH && digitalRead(S2_Main)== HIGH && digitalRead(FAIL_LED) == LOW && digitalRead(Start_Program) == LOW) //
    {
      delay (300);
      digitalWrite(S1, LOW);
      digitalWrite(S2, LOW);  // state:ON of the sequency #2 for the MAIN
      digitalWrite(S3, LOW);
      digitalWrite(S4, LOW);
      digitalWrite(S4_1, LOW);
      digitalWrite(S2_Main, LOW);
      digitalWrite(FAIL_LED, HIGH);
      delay (2000);
      x = 0;
      j = 0;
      delay (1000);
    }
  }
  while ( k >= 10)
  {

    if (digitalRead(PASS) == HIGH && digitalRead(S3_Data) == LOW)
    {
      delay (300);
      digitalWrite(S1, HIGH);
      digitalWrite(S2, LOW);  // state:ON of the sequency #3
      digitalWrite(S3, LOW);
      digitalWrite(S4, LOW);
      digitalWrite(S4_1, LOW);
      delay (1000);
      digitalWrite(Start_Program, HIGH);
      delay (1000);
      digitalWrite(Start_Program, LOW);
      do
      {
      digitalWrite(PASS_LED, LOW);
      digitalWrite(FAIL_LED, LOW);
      delay (2000);
      digitalWrite(S3_Data, HIGH);
      delay (3000);
      }while(digitalRead(PASS) == HIGH && digitalRead(S3_Data) == LOW);
  }
    if (digitalRead(PASS) == HIGH && digitalRead(S3_Data) == HIGH)  // && digitalRead(PASS_LED)==LOW) //&& digitalRead(Start_Program)==LOW )
    {
      delay (300);
      digitalWrite(S1, LOW);
      digitalWrite(S2, LOW);  // state:ON of the sequency #3
      digitalWrite(S3, LOW);
      digitalWrite(S4, LOW);
      digitalWrite(S4_1, LOW);
      digitalWrite(S3_Data, LOW);
      digitalWrite(PASS_LED, HIGH);
      delay (1000);
      digitalWrite(Start_Program, HIGH);
      delay (1000);
      digitalWrite(Start_Program, LOW);
      x = 0;
      j = 0;
      k = 0;
      delay (2000);
    }
    if (digitalRead(FAIL) == HIGH && digitalRead(S3_Data) == HIGH) // && digitalRead(FAIL_LED)== LOW) //&& digitalRead(Start_Program)==LOW)
    {
      delay (300);
      digitalWrite(S1, LOW);
      digitalWrite(S2, LOW);  // state:ON of the sequency #3
      digitalWrite(S3, LOW);
      digitalWrite(S4, LOW);
      digitalWrite(S4_1, LOW);
      digitalWrite(S3_Data, LOW);
      digitalWrite(FAIL_LED, HIGH);
      delay (1000);
      digitalWrite(Start_Program, HIGH);
      delay (1000);
      digitalWrite(Start_Program, LOW);
      x = 0;
      k = 0;
      j = 0;
      delay (2000);
    }
}
}

I read your explanation and it makes no sense at all.

Stop coding!

Go back and rethink this in human. Get your steps all straightened out in human. Like a user manual that a 9 year old can understand. THEN code it. It'll be easy.

-jim lee

Aren't you already asking this here:
https://forum.arduino.cc/index.php?topic=636320.0

@elianmorales

TOPICS MERGED.
PLEASE DO NOT CROSS POST.

Take a few minutes to read THIS POST before adding anything further.

T.I.A.

Bob.

As promised, I have given @elianmorales a 48 hour account suspension due to their repeated cross posting.