Led bicolore

Bonjour

Bonjour,

Le changement de couleur se fait par inversion de tension (elle est constituée de deux leds tête bêche en parallèle).
Il faut donc un circuit qui permet d'inverser la tension.
Tu peux les relier à 2 pins de sortie (avec résistance de limitation).

Bonjour Réfléchissez à comment obtenir du rouge et comment obtenir du vert et vous trouverez la réponse un regardez le diagramme symbolique d'une de ces double LED)

ÉDIT/ kamill plus rapide que l'éclair :slight_smile:

Ben, tu mets les numéros de pins ou la led est connectée.

C'est un peu "luxueux" d'utiliser une bibliothèque pour une chose si simple. Il suffit de deux digitalWrite pour la commander.

Je devrais commander comment pour une led par exemple ?

Comme ça par exemple (j'ai représenté la led bicolore comme une simple led)

Merci ça fonctionne. Je voudrais savoir comment allumer une led à la fois à chaque fois que j'appuie sur un bouton poussoir sachant que les 6 led sont branchées en série ?

Merci d'avance pour votre aide

????

Si tes 6 leds sont branchées en série ce n'est pas possible (mais ça m'étonnerait qu'elles soient branchées en série).

Si elles sont branchées en séries que pensez vous que le courant fasse une fois qu'il passe dans la première ??

Chaque led doit être pilotée independamment elles ne doivent donc pas être en série

Regardez des montages type cube de LED pour voir comment on peut gérer de multiples LEDs

Ca fait beaucoup de leds!
C'est possible, mais il faudra des circuits externes.

Des circuits externes ? C'est-à-dire ?

Circuit externe ---> cf ma reco d'aller voir un cube de LED, tapez arduino cube de led sur google et vous verrez

Sinon changer de type de led et prendre des bandeaux genre APA102, elles seront adressables individuellement soit sous forme d'une longue bande et il ne faudra que 2 pins ou alors 7 bandes de 6 LEDs pour faire vos colonnes par exemple (et vous pourrez choisir la couleur)

Effectivement des leds type neopixels paraissent plus adaptées.
Ca dépend de la taille de ton jeu, mas il existe de plaques de leds neopixel 8x8 toutes faites

si vous n'avez que ces LEDs non.

si vous avez des résistances en plus en théorie oui, mais seulement si votre arduino dispose de nombreuses entrées sorties... 2 pins par LED, 7 colonnes et 6 leds par colonnes = 84 pins... et là ça va être difficile de trouver un arduino avec autant d'E/S (la méga en a 54)

Donc faudra vous intéresser à des méthodes de multiplexages

Pourquoi 2 pins par led ?

J-M-L:
Donc faudra vous intéresser à des méthodes de multiplexages

Avec la complexité de devoir inverser la tension pour changer de couleur

Une autre solution est d'utiliser des registres à décalage (genre 74HC595)

bendra:
Pourquoi 2 pins par led ?

Voir réponse #6

bendra:
Pourquoi 2 pins par led ?

si vous regardez la doc de vos diodes vous verrez qu'il s'agit en fait de 2 LEDs "tête bêche" dans un seul boîtier

quand une est alimentée avec un courant raisonnable, l'autre est bloquante et donc vous ne voyez qu'une seule couleur. (si vous faites alterner rapidement le courant dans un sens et l'autre, votre diode prendra alors une couleur intermédiaire / composée de vos 2 couleurs à cause de la persistence rétinienne).

Il suffit donc de mettre une des PINs HIGH et l'autre à LOW pour avoir le fonctionnement souhaité. c'est ce que fait votre librairie sans doute en ayant mis les 2 pins en OUTPUT

Electriquement c'est pas super clean à mon avis, vous allez avoir des soucis de courant total absorbé (max 100mA) ou émis sur les pins dès que vous commencez à avoir un nombre conséquent de ces LEDs connectées à un certains nombres de pins (cf limitations)

--> Donc faudra bien soigner le schéma électrique d'alimentation et de pilotage de chacune des diodes... (c'est pour cela que des APA102 auraient été plus pertinente et simple à mettre en oeuvre)

Voilà le programme pour 6 leds simples qui permet d'allumer chaque led une après l'autre en appuyant sur un bouton:

//le bouton est connecté à la broche 2 de la carte Adruino
const int bouton = 2;
int compteur=0;
const int ledCount = 6;
int etatboutonprecedent; 
int etatBouton;
int ledPins[] = {3, 4, 5, 6, 7, 8}; 

void setup()
{
etatboutonprecedent= LOW;
pinMode(bouton, INPUT); //le bouton est une entrée
etatBouton = LOW; //on initialise l'état du bouton comme "relaché"
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}

void loop()
{    
    
  etatBouton = digitalRead(bouton); //Rappel : bouton = 2
  
    if(etatBouton == HIGH) 
    {
      if (etatboutonprecedent== LOW)
      {
      digitalWrite(ledPins[compteur], HIGH);
      compteur ++;
      delay(500);
     
    }
    }
    else {
      if (compteur == 6)
      {
      if (etatboutonprecedent == HIGH)
      {
      digitalWrite(ledPins[compteur], HIGH);
      compteur --;
      }
      }

Si vous pourriez m'aider, je voudrais savoir comment déclarer les 2 pins pour chaque led ,ainsi que lorsque j'appuie sur le bouton: la 1ère led s'allume en rouge, la 2ème en jaune, la 3ème en rouge... et ainsi de suite.

Je bloque là-dessus depuis toute à l'heure. Je vous remercie vivement pour votre aide