activate a int

Hi folks,

I really need help for this,

i want to activate a int ( Mode1) with a if fonction. And i wanna know if this could work, because it didn't seem to :frowning:

 int Mode1;

if(digitalRead(S1)==1&&digitalRead(S2)==0&&digitalRead(S3)==0&&digitalRead(S4)==0){
  Mode1=1;

}

You code doesn't compile, so it isn't surprising it doesn't work.

Please post your code.

Isthespacebarbrokenonyourkeyboard?

Please post a complete program

[code]Mode1=1;[/code]
That is not the syntax to get the Mode1() function to return an int data type. Use:

return 1;

in place of Mode1=1;
Call the function like

int mode = Mode1();

groundFungus:

Mode1=1;

That is not the syntax to get the Mode1() function to return an int data type. Use:

return 1;

in place of Mode1=1;
Call the function like

int mode = Mode1();

Mode1 is defined as an int variable, not a function.

Oops. I am starting to see things. Nap time.

I don't really see anything logically or syntactically wrong with:

if( digitalRead(S1)==1 && digitalRead(S2)==0 && digitalRead(S3)==0 && digitalRead(S4)==0 )
{
  Mode1=1;

}

but without the rest of the code and an idea of what's connected externally we can't know where the problem lies...

nimbusDK:
And i wanna [sic] know if this could work, because it didn't seem to

What makes you think it doesn't "seem" to work? Have you printed the digitalReads to make sure they have the values you think they have, and then that of Mode1 too?

Seems that pin S1...S4 have switches or buttons on: how are they wired and pinMode()-ed?

Willpatel_Kendmirez:
What makes you think it doesn't "seem" to work? Have you printed the digitalReads to make sure they have the values you think they have, and then that of Mode1 too?

Seems that pin S1...S4 have switches or buttons on: how are they wired and pinMode()-ed?

I chekt it with a while loop and it didn't have any effects.

Here is the whole programme, but it´s not finish yet. So don't be scared if its not "beutifull" :stuck_out_tongue:

// ENTREE matériel
#define  S5 41 // ON
#define  S6 112 // OFF
#define  S1 2 // BP position 1
#define  S2 3 // BP position 2
#define  S3  55// BP position 3
#define  S4  56// BP position 4
#define  B1 4 // Capteur 1
#define  B2 5 // Capteur 2
#define  B3 6// Capteur 3
#define  B4 7 // Capteur 4
#define  SAV  76// BP Marche avant
#define  SAR  77// BP Marche arriere
#define  H1 8
#define  H2 9
#define  H3 90
#define  H4 99

// SORTIE matériel 

#define SORTIE_Lampe1 10
#define SORTIE_Lampe2 11
#define SORTIE_Lampe3 15
#define SORTIE_Lampe4 16
#define SORTIE_Lampe5 17
#define SORTIE_Relais1 18
#define SORTIE_Relais_AV 12
#define SORTIE_Relais_AR 13

/*
void mise_sous_tension(){    

if((digitalRead(S5)==1)&&digitalRead(S6)==1){
      digitalWrite(SORTIE_Relais1, 1);
    }
    
    if(digitalRead(S6)==0){
        digitalWrite(SORTIE_Relais1, 0);
    }
} 
*/
void setup() {
  
// Les Entrées

    pinMode(S5, INPUT);
    pinMode(S6, INPUT);
    pinMode(S1, INPUT);
    pinMode(S2, INPUT);
    pinMode(S3, INPUT);
    pinMode(S4, INPUT);
    pinMode(B1, INPUT);
    pinMode(B2, INPUT);
    pinMode(B3, INPUT);
    pinMode(B4, INPUT);
    pinMode(SAV, INPUT);
    pinMode(SAR, INPUT);
    pinMode(H1, INPUT);
    pinMode(H2, INPUT);
    pinMode(H3, INPUT);
    pinMode(H4, INPUT);
    
    
    // Les Sorties
    pinMode(SORTIE_Lampe1, OUTPUT);
    pinMode(SORTIE_Lampe2, OUTPUT);
    pinMode(SORTIE_Lampe3, OUTPUT);
    pinMode(SORTIE_Lampe4, OUTPUT);
    pinMode(SORTIE_Lampe5, OUTPUT);
    pinMode(SORTIE_Relais1, OUTPUT);
    pinMode(SORTIE_Relais_AV, OUTPUT);
    pinMode(SORTIE_Relais_AR, OUTPUT);
    
}

void loop(){
/*
//+++++++++++++++++++++++++++++++++++++++++++++++++Création des variables "mode" :

int Mode1,Mode2,Mode3,Mode4;



if(digitalRead(S1)==1){
  Mode1=1;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++Envoyer la pièce vers la position 1
if(digitalRead(S1)==1&&(digitalRead(B4)==1||digitalRead(B2)==1||digitalRead(B3)==1)&&digitalRead(S2)==0&&digitalRead(S3)==0&&digitalRead(S4)==0){

      digitalWrite(SORTIE_Relais_AR, 1);
      digitalWrite(SORTIE_Lampe1, 1); 
}
while(Mode1==1 && digitalRead(B1)==0)
{
  digitalWrite(SORTIE_Relais_AR, 1);
  digitalWrite(SORTIE_Lampe1, 1);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++Fin de cycle
if((digitalRead(B1)==1)&&digitalRead(S2)==0&&digitalRead(S3)==0&&digitalRead(S4)==0){

      Mode1=0; 
}


}

*/
//+++++++++++++++++++++++++++++++++++++++++++++++++Sécurité cours de traitement

if(digitalRead(H1)==1){
     
      digitalWrite(SORTIE_Lampe2, 0);
      digitalWrite(SORTIE_Lampe3, 0);
      digitalWrite(SORTIE_Lampe4, 0);
  } 

if(digitalRead(H2)==1){
     
      digitalWrite(SORTIE_Lampe1, 0);
      digitalWrite(SORTIE_Lampe3, 0);
      digitalWrite(SORTIE_Lampe4, 0);
  } 
if(digitalRead(H3)==1){
     
      digitalWrite(SORTIE_Lampe1, 0);
      digitalWrite(SORTIE_Lampe2, 0);
      digitalWrite(SORTIE_Lampe4, 0);
      
  } 

if(digitalRead(H4)==1){
     
      digitalWrite(SORTIE_Lampe1, 0);
      digitalWrite(SORTIE_Lampe2, 0);
      digitalWrite(SORTIE_Lampe3, 0);     
      
  } 


//+++++++++++++++++++++++++++++++++++++++++++++++++Création des Modes
int Mode1;
if(digitalRead(S1)==1&&digitalRead(S2)==0&&digitalRead(S3)==0&&digitalRead(S4)==0){
  Mode1=1;
}

int Mode2;
if(digitalRead(S2)==1&&digitalRead(S1)==0&&digitalRead(S3)==0&&digitalRead(S4)==0){
  Mode2=1;
}

int Mode3;
if(digitalRead(S3)==1&&digitalRead(S1)==0&&digitalRead(S2)==0&&digitalRead(S4)==0){
  Mode3=1;
}

int Mode4;
if(digitalRead(S4)==1&&digitalRead(S1)==0&&digitalRead(S2)==0&&digitalRead(S3)==0){
  Mode4=1;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++Création des Modes_H
int ModeH1;
if(digitalRead(H1)==1&&digitalRead(H2)==0&&digitalRead(H3)==0&&digitalRead(H4)==0){
  ModeH1=1;

}

int ModeH2;
if(digitalRead(H1)==1&&digitalRead(H2)==0&&digitalRead(H3)==0&&digitalRead(H4)==0){
  ModeH1=1;

}

int ModeH3;
if(digitalRead(H1)==1&&digitalRead(H2)==0&&digitalRead(H3)==0&&digitalRead(H4)==0){
  ModeH1=1;

}

int ModeH4;
if(digitalRead(H1)==1&&digitalRead(H2)==0&&digitalRead(H3)==0&&digitalRead(H4)==0){
  ModeH1=1;

}
//+++++++++++++++++++++++++++++++++++++++++++++++++Envoyer la pièce vers la position 1

//if(Mode1==1&&(digitalRead(B4)==1||digitalRead(B2)==1||digitalRead(B3)==1)&&ModeH1==1)----------------->>>> ceci au lieu de ca en-bas.Histoire de le rendre plus legé

if(digitalRead(S1)==1&&digitalRead(S2)==0&&digitalRead(S3)==0&&digitalRead(S4)==0&&(digitalRead(B4)==1||digitalRead(B2)==1||digitalRead(B3)==1)&&digitalRead(H2)==0){

   
      digitalWrite(SORTIE_Relais_AR, 1);
      digitalWrite(SORTIE_Lampe1, 1);
      
  } 

// Fin du cycle 
  
if((digitalRead(B1)==1)&&(digitalRead(H1)==1)&&digitalRead(S2)==0&&digitalRead(S3)==0&&digitalRead(S4)==0){
  
    
     digitalWrite(SORTIE_Relais_AR, 0);
     digitalWrite(SORTIE_Lampe1, 0);
     
  } 


 
//+++++++++++++++++++++++++++++++++++++++++++++++++Envoyer la pièce vers la position 2  
//Marche arriere
if(digitalRead(S2)==1&&digitalRead(S1)==0&&digitalRead(S3)==0&&digitalRead(S4)==0&&(digitalRead(B4)==1||digitalRead(B3)==1)&&digitalRead(H1)==0){
  
   
      digitalWrite(SORTIE_Relais_AR, 1);
      digitalWrite(SORTIE_Lampe2, 1);
      
  } 
//Marche avant
if(digitalRead(S2)==1&&digitalRead(S1)==0&&digitalRead(S3)==0&&digitalRead(S4)==0&&digitalRead(B1)==1&&digitalRead(H1)==0){
  
   
      digitalWrite(SORTIE_Relais_AV, 1);
      digitalWrite(SORTIE_Lampe2, 1);
      
  } 

// Fin du cycle : 

if((digitalRead(B2)==1)&&(digitalRead(H2)==1)&&digitalRead(S1)==0&&digitalRead(S3)==0&&digitalRead(S4)==0){
  
    digitalWrite(SORTIE_Relais_AR, 0);
    digitalWrite(SORTIE_Relais_AV, 0);
    digitalWrite(SORTIE_Lampe2, 0);
    
  }
//+++++++++++++++++++++++++++++++++++++++++++++++++Envoyer la pièce vers la position 3
//Marche arriere
if(digitalRead(S3)==1&&digitalRead(S1)==0&&digitalRead(S2)==0&&digitalRead(S4)==0&&(digitalRead(B4)==1)&&digitalRead(H2)==0){

   
      digitalWrite(SORTIE_Relais_AR, 1);
      digitalWrite(SORTIE_Lampe3, 1);
      
  } 
//Marche avant 
if(digitalRead(S3)==1&&digitalRead(S1)==0&&digitalRead(S2)==0&&digitalRead(S4)==0&&(digitalRead(B1)==1||digitalRead(B2)==1)&&digitalRead(H2)==0){

   
      digitalWrite(SORTIE_Relais_AV, 1);
      digitalWrite(SORTIE_Lampe3, 1);
      
  } 

// Fin du cycle 
  
if((digitalRead(B3)==1)&&(digitalRead(H3)==1)&&digitalRead(S1)==0&&digitalRead(S2)==0&&digitalRead(S4)==0){
  
    
     digitalWrite(SORTIE_Relais_AR, 0);
     digitalWrite(SORTIE_Lampe3, 0);
     
  } 
/*
//+++++++++++++++++++++++++++++++++++++++++++++++++Envoyer la pièce vers la position 4
//Marche arriere
if(digitalRead(S4)==1&&digitalRead(S1)==0&&&&digitalRead(S2)==0&&&&digitalRead(S3)==0&&(digitalRead(B4)==1||digitalRead(B2)==1||digitalRead(B3)==1)&&digitalRead(H2)==0){

   
      digitalWrite(SORTIE_Relais_AR, 1);
      digitalWrite(SORTIE_Lampe4, 1);
      
  } 

// Fin du cycle 
  
if((digitalRead(B4)==1)&&(digitalRead(H4)==1)&&digitalRead(S1)==0&&digitalRead(S2)==0&&digitalRead(S3)==0){
  
    
     digitalWrite(SORTIE_Relais_AR, 0);
     digitalWrite(SORTIE_Relais_AV, 0);
     digitalWrite(SORTIE_Lampe4, 0);
     
  } 


*/
 }

.

/*
//+++++++++++++++++++++++++++++++++++++++++++++++++Création des variables "mode" :

int Mode1,Mode2,Mode3,Mode4;



if(digitalRead(S1)==1){
  Mode1=1;

All commented-out

int ModeH1;
if(digitalRead(H1)==1&&digitalRead(H2)==0&&digitalRead(H3)==0&&digitalRead(H4)==0){
  ModeH1=1;

}

An else clause or a variable initialisation would be welcome

AWOL:

int ModeH1;

if(digitalRead(H1)==1&&digitalRead(H2)==0&&digitalRead(H3)==0&&digitalRead(H4)==0){
  ModeH1=1;

}


An else clause or a variable initialisation would be welcome

But i can't use a else on this line.

nimbusDK:
But i can't use a else on this line.

So, initialise the variable to zero.

AWOL:
So, initialise the variable to zero.

Aaaah i see, sorry ^^