Go Down

Topic: Piloter deux relais en inversion avec un seul bouton ! (Read 1 time) previous topic - next topic

supermac1

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   :smiley-red:

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

Code: [Select]
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

Heloderma-kris

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é

Code: [Select]
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;
    }
  } 
}

B@tto

Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

bricoleau

Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

_pepe_

Supprimé

supermac1

Merci a tous pour votre aide!

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

Go Up