2 Boutons Boussoirs et 4 LEDs

Bonjour tout le monde

J'ai un petit soucis svp
Imaginons que j'ai 2 boutons poussoirs et sur chacun d'eux il y a 2 LEDs de différente couleur branchées avec le bouton poussoir. Avec chaque bouton il y a une led rouge et une led bleu

Du coup je voulais savoir comment faut-il faire pour : lorsque j'appuis sur le 2 ème bouton la LED rouge s'allume et si j'appuis sur le 1er bouton la bleu s'allume. Et vice versa

Du coup les lumières s'alternent quelque soit le bouton appuyé.

Merci beaucoup

Bonne journée

Salut,

Bin rien de bien spécial ...

if(digitalRead(bouton1)==LOW) digitalWrite(LED1,HIGH);
else digitalWrite(LED1,LOW);

if(digitalRead(bouton2)==LOW) digitalWrite(LED2,HIGH);
else digitalWrite(LED2,LOW);

bonjour,
on t'a donné un exemple dans l'autre post.
a toi d'essayer d'imaginer comment faire.
tu mets tout sur papier, et tu code en fonction :wink:
après si tu as un soucis, on pourra t'aider, mais on ne fera pas tout à ta place, même si dans quelques jours, ca sera noël.

@Batto, l'idée est de faire un morpion : 3x3 boutons, 3x3x2 leds. Il faut donc qu'à chaque fois que n'importe quel bouton non allumé est actionné, la couleur de la LED à activer soit alternée :wink:

En fait je sais pas si j'ai bien expliqué mon problème mais je ne panse pas

Bah en fait imaginons que j'ai 3 boutons et 2 leds sur chaque bouton comme précedent
Au départ toutes les leds sont éteintes.

Si j'appuis sur le bouton numéro 3 la led rouge s'allume
Ensuite si j'appuis sur le bouton 1 la led bleu s'allume
Et si j'appuis sur le bouton 2 la led bleu s'allume

Et ça dans n'importe quel ordre

Merci de ton aide B@tto

Oui je le sais infobarquee mais je n'arrive toujours pas c'est pour ça

Merci

XavierMiller à tout à fait raison mais je n'y arrive pas

:frowning:

2325:
En fait je sais pas si j'ai bien expliqué mon problème mais je ne panse pas

Bah en fait imaginons que j'ai 3 boutons et 2 leds sur chaque bouton comme précedent
Au départ toutes les leds sont éteintes.

Si j'appuis sur le bouton numéro 3 la led rouge s'allume
Ensuite si j'appuis sur le bouton 1 la led bleu s'allume
Et si j'appuis sur le bouton 2 la led bleu s'allume

Et ça dans n'importe quel ordre

Merci de ton aide B@tto

soit tu fais comme tu l'explique au dessus et tu te sers du code boolean dans ton autre post.

soit tu ne sais pas expliquer comme il faut.

dans le premier cas, tu as 3 boolean, un pour chaque bouton.
dans le setup, tu mets tout sur LOW, led éteinte
ensuite, il suffit d'appuyer sur un bouton pour activer telle ou telle led.

En fait ce qui me dérange c'est que à chaque bouton poussoir il y a deux leds et elles sont sur des différentes pins et je dois les faire communiquer avec leur propre bouton poussoir.

Donc du coup c'est ça qui me pose soucis

Une autre option que boolean, est de compter les phases de jeu : impair : couleur 1, pair : couleur 2.
"Faire communiquer", ce n'est pas le bouton poussoir ou la LED qui va le faire, mais l'arduino :wink:

Dans

2325:
En fait je sais pas si j'ai bien expliqué mon problème mais je ne panse pas

Bah en fait imaginons que j'ai 3 boutons et 2 leds sur chaque bouton comme précedent
Au départ toutes les leds sont éteintes.

Si j'appuis sur le bouton numéro 3 la led rouge s'allume
Ensuite si j'appuis sur le bouton 1 la led bleu s'allume
Et si j'appuis sur le bouton 2 la led bleu s'allume

Et ça dans n'importe quel ordre

Merci de ton aide B@tto

Dans ce cas c'est juste une question de condition :

if(digitalRead(bouton1)==LOW && digitalRead(bouton2)==HIGH && digitalRead(bouton3)==HIGH)) digitalWrite(LED1,HIGH);
else if(digitalRead(bouton2)==LOW  && digitalRead(bouton2)==LOW && digitalRead(bouton3)==HIGH)) digitalWrite(LED2,HIGH);
else if(digitalRead(bouton2)==HIGH  && digitalRead(bouton2)==LOW && digitalRead(bouton3)==HIGH)) digitalWrite(LED3,HIGH);

....

Sans vouloir t'offenser B@atto ce n'est pas ça du tout :wink:

En fait je pense suivre l'idée de XavierMiller car je pense que se serait la meilleur possibilité pour moi

Merci à tous
Je vous tiens au courant pour vous dire comment j'ai fais

Bonne journée.

En fin de compte voilà ce que j'ai fais

if (digitalRead(bp1) == HIGH  )
	{
     if ( (i % 2) == 0) 
     {
     // nbre pair
     digitalWrite(ledR1, HIGH);	
     digitalWrite(ledB1, LOW);
    
     } 
     else 
     {
     digitalWrite(ledR1, LOW);
     digitalWrite(ledB1, HIGH);
     }
    i=i+1; 
   }
   
   if (digitalRead(bp2) == HIGH  )
	{
     if ( (i % 2) == 0) 
     {
     // nbre pair
     digitalWrite(ledR2, HIGH);	
     digitalWrite(ledB2, LOW);
    
     } 
     else 
     {
     // nbre impaire
     digitalWrite(ledR2, LOW);
     digitalWrite(ledB2, HIGH);
     }
    i=i+1; 
   }

J'ai un soucis là dedans : au début j'ai déclarer que i=0;
Lorsque j'allume un interrupteur les 2 leds s'allument et lorsque je l'éteint il n'y a que la led bleu ( la deuxième ) qui reste allumé alors que l'autre s'éteint
Sachant que j'incrémente i à chaque fois je ne vois pas où est le problème

Merci de votre réponse

J'ai essayé aussi de tout mettre dans une boucle for mais sans plus :frowning:

 for (int i = 0; i < 9; i ++)
{
   if (digitalRead(bp1) == HIGH  )
	{
     if ( (i % 2) == 0) 
     {
     // nbre pair
     digitalWrite(ledR1, HIGH);	
     digitalWrite(ledB1, LOW);
     } 
     else 
     {
     // nbre impaire  
     digitalWrite(ledR1, LOW);
     digitalWrite(ledB1, HIGH);
     }
    
   }
   
   if (digitalRead(bp2) == HIGH  )
	{
     if ( (i % 2) == 0) 
     {
     // nbre pair
     digitalWrite(ledR2, HIGH);	
     digitalWrite(ledB2, LOW);
     } 
     else 
     {
     // nbre impaire
     digitalWrite(ledR2, LOW);
     digitalWrite(ledB2, HIGH);
     }
     
   } 
     
}

Du coup comment faire svp ?

2325:
En fait ce qui me dérange c'est que à chaque bouton poussoir il y a deux leds et elles sont sur des différentes pins et je dois les faire communiquer avec leur propre bouton poussoir.

Donc du coup c'est ça qui me pose soucis

je vois pas le soucis.
tu prends le code dans l'autre post et tu double les boolean et le reste.

c'est a rendre pour quand ton devoir?

OK je vais tester merci du coup de main

Mais sinon devoir est à rendre pour vendredi mais j'ai d'autre projet à faire sur d'autre code que l'arduino donc du coup je dois les faire très vite et j'ai en plus mes partiels à réviser

Merci

NON en fait je pense que il y a un truc qui ne va pas surement ça doit venir du logiciel car je fais mes montages avec 123d.circuits.io car lorsque je met le même code mais avec mes pins et sans le délai de 300 mili-secondes la led bleu scintille bizarrement je ne vois pas pourquoi sachant que lorsque le bouton n'est plus pressé la led bleu devrai s’éteindre

Voici ce que j'ai mis :

Sachant que au dévut j'ai mis

boolean etat = false;

pinMode (ledR1, OUTPUT);
   pinMode (ledB1, OUTPUT);
   //digitalWrite (ledR1, LOW);
   digitalWrite (ledB1, HIGH);



if (digitalRead (bp1) == HIGH)   // si le bouton est appuyé
   {     
     if (etat == true)   // on allume/éteint les leds en fonction de la valeur de etat
      {
     digitalWrite (ledR1, LOW);
      digitalWrite (ledB1, HIGH);
     }
    else
    {
        digitalWrite (ledR1, HIGH);
      digitalWrite (ledB1, LOW);
     }
etat = !etat;   // on inverse la valeur de etat
   
   }

Merci

faux contact quelque part

Je vais voir infobarquee mais je ne pense pas :frowning:

En fait il n'y a aucun faux contact avec les équipements lorsque j'appuis sur le premier bouton les 2 LEDs s'allume et la LED bleu a tendance à s'éteindre mais elle ne s’éteint pas ensuite si j'appuis sur le second bouton leds 2 LEDs s'allume mais la led bleu du 1er bouton s'éteint je ne sais pas pourquoi.

Voici une photo de mon montage
http://hpics.li/12e652f

Merci de ton aide infobarquee