Piloter deux relais en inversion avec un seul bouton !

Bonjour,

Je me remet dans le code après quelque année d'arrêt et je bloque sur un morceau de code assez simple :blush:

Ce que je voudrais faire:

E/S

OUTPUT 3
OUTPUT 4
INTPUT 2

TANT QUE l'entrée 2 est à 1

SI la dernière sorti activé est la 4
ALORS sortie 3 égale 1

SI la dernière sorti activé est la 3
ALORS sortie 4 égale 1
FTQ

en gros je voudrais piloter deux relais en inversion soit l'un soir l'autre avec un seul bouton

j'ai écrit ça mais ça fonctionne pas comme je veux :0

const int buttonPin = 2;     
const int relay =  3;      
const int relay2 =  4;

int buttonState = 0; 
int flag = 0;
int flag2 = 0;


void setup() 
{
  pinMode(relay, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(buttonPin, INPUT);
  
}

void loop() 
{

  buttonState = digitalRead(buttonPin);

  while (buttonState == HIGH) 
  {
     buttonState = digitalRead(buttonPin);
     
    if(flag == 0)
    { 
    digitalWrite(relay, HIGH);
    flag=1;
    }
    else
    { 
    digitalWrite(relay2, HIGH);
    flag=0;
    }
  }

    digitalWrite(relay, LOW);
    digitalWrite(relay2, LOW);
  
}

Merci pour vos lumière
Julien

Salut je ne suis pas sur d'avoir bien compris ce que tu chercher a faire mais bon je dirrai que cela devrait corespondre a ton besoin, ou s'en approché

const int buttonPin = 2;     
const int relay =  3;      
const int relay2 =  4;

int buttonState = 0; 
int flag = 0;
int flag2 = 0;


void setup() 
{
  pinMode(relay, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(buttonPin, INPUT);
  
}

void loop() 
{

  
  if (digitalRead(buttonPin)!=0) // si il y a appuis sur le boutton
  {
     
    if(flag == 0)// on test qui est allumé 
    { 
    digitalWrite(relay, HIGH); // on enclanche le relay1
    digitalWrite(relay2, LOW);//on desenclanche le relay2
    flag=1;
    }
    else
    { 
    digitalWrite(relay2, HIGH);// on enclanche le relay2
    digitalWrite(relay, LOW);//on desenclanche le relay1
    flag=0;
    }
  }  
}

En gros tu veux faire un télérupteur ?

Un unique relais 1RT ne conviendrait-il pas ?

Merci a tous pour votre aide!

En effet pepe tu as réussi a comprendre mon besoin ! ton code fonctionne parfaitement :slight_smile:
Merci beaucoup