allumer un panneau led 8x8 avec un bouton

boujour,
je suis debutant dans la programation Arduino.
j'ai crée un programme qui consiste a allumée un ecran led 8x8 (je crois que cela s'appelle Martrix) avec un bouton-pousoire.
En appuillant 1 fois sur le bouton, sa met un smiley contant :slight_smile: sur l'ecran
et quand je réappui sur le bouton sa met un smiley triste :frowning: .
si vous m'aider a trouver la solution de mon programme je serais tres heureux.

merci d'avance de votre aide :wink:

bouton_matrix.ino (805 Bytes)

IMG_4346.JPG

pour celui qui voudrai bien m'aider, j'ai joint le programme sur mon premier message :wink:

Topic rapatrié depuis la partie anglophone....

Bonjour,

Je ne vois pas ce que tu appelles sortie_bouton.
On ne voit pas trop ton cablage car la photo est trop petite, mais il ne semble pas y avoir de résistance de pullup sur ton bouton. Il faut une résistance de pullup (ou pulldown) ou alors utiliser le pullup externe avec INPUT_PULLUP.

Il faut mémoriser l'état de l'affichage dans un booleen.
Il faut tester le changement d'état du bouton (en mémorisant l'état précédent) et si l'état a changé et que le bouton est enfoncé il faut changer l'état de l'affichage (le booleen) et afficher le nouveau motif.

Mets ton code entre balises de code.

Bonjour a vous donc voila un code que je suppose bon apres pour les matrice je te laisse les mettre dans le code

#include <LedControl.h>

int din = 7;
int cs = 6;
int clk = 5;
int entre_bouton = 3;
int sortie_bouton = 2;

byte smile[8]= {0x00,0x24,0x24,0x24,0x81,0x42,0x3C,0x00};
byte sad[8]= {0x00,0x24,0x24,0x24,0x00,0x3C,0x42,0x81};

int buff = 0;

LedControl lc=LedControl(din,cs,clk,0);

void setup() {
lc.shutdown(0,false);
lc.setIntensity(0,15);
lc.clearDisplay(0);
pinMode(entre_bouton, INPUT);
pinMode (sortie_bouton, OUTPUT);
}

void loop() {

  while (digitalRead(sortie_bouton) == HIGH && buff == 0){
    buff = 1;
    // le smiley que tu veux faire 
  }
  

  while (digitalRead( sortie_bouton ) == HIGH && buff == 1) { 
    buff = 2;
    // le smiley suivant que tu veux faire
  }

  while (digitalRead( sortie_bouton ) == HIGH && buff == 2){
    buff = 0;
    //tu etein la matrice
  }

  //je ne suis pas un expert des matrice et de l'Arduino
  //mais ce code me semble bien

digitalWrite(din, HIGH);
digitalWrite(cs, HIGH);
digitalWrite(clk, HIGH);


  
 //quand boutont est presse 1fois , alumer matrix (smile)
  //quand bouton représer, allumer matrix (sad)  
}