projet 9LED affichage d'un nbre aléatoire après mouvement (shaking)

Bonjour,

Je suis sur un projet Arduino, et j'ai besoin de votre aide, étant débutant.
Voici l'objectif :
J'ai 9 LED disposé en matrice 3X3. Et un accéléromètre, qui permettrait de détecter un mouvement et enclencherait une opération afin d'afficher au hasard un nombre entre 0 et 9... Après j'aimerais pouvoir choisir la couleur dans laquelle s'allumera chaque LED.

Pour le moment je suis sur la partie qui consiste à afficher indépendamment chaque LED d'une matrice 3X3 LED. J'ai entamé un code (ci-dessous), mais je suis bloqué.

CE QUE JE VOUDRAIS, c'est de pouvoir faire le code à ce que chaque LED s'allume dès que j'indique sa position avec 'position[ligne][colonne]' dans une fonction que je vais créer. Mais il se trouve que je n'arrive pas à trouver une corrélation entre f(ligne, colonne) et la broche de toutes les LED de la matrice... Pourriez-vous me proposer une autre solution au problème OU faudra-t-il procéder autrement ?

J'attends vos réponses SVP !!!

byte LED[]={3, 4, 5, 6, 7, 8, 9, 10, 11};
boolean etat;
boolean couleur;
int choixV=12;
int choixR=13;
byte position[2][2];

void setup ()
{
for (int i=0; i<9; i++)
{
pinMode(LED*, OUTPUT);*

  • }*
  • pinMode(choixV, OUTPUT);*
  • pinMode(choixR, OUTPUT);*
    }
    void loop ()
    {
  • for (int l=0; l<3; l++)*
  • {*
  • for (int c=0; c<3; c++)*
  • {*
  • position[l]*
    ```c
    *=(1<<l);
        }
      }
     
    }

void affiche()
{
  for (int l=0; l<3; l++)
  {
    for (int c=0; c<3; c++)
    {
      etat = position[l][c]&(1<<l);
    }
  }
}

void affiche(){
 
    for (int i=0; i<3; i++)
  {
    etat = position[0][i]&(1<<i);
    digitalWrite(LED[i], etat);
  }

}*
```

Déjà, position est mal défini. C'est un tableau 3x3

byte position[3][3];

La relation entre position et LED
Si tu adresses position avec [ligne][colonne] pour adresser LED avec les même informations il faut faire
LED[ligne*3 + colonne]
Pour allumer la LED situé à [ligne][colonne] avec le contenu du tableau position il faut faire

digitalWrite(LED[ligne*3 + colonne],position[ligne][colonne])

Dans le setup

pinMode(LED[i], OUTPUT);

Ici

etat = position[0]&(1<<i);

Si position est un tableau de dimension 2 il te manque un indice.
J'ai du mal à comprendre ce que tu obtiens avec ces instructions binaires.

Tu as deux fonctions affiche qui ont le même nom mais font des choses différentes.
La loop fait la même chose que ta première fonction affiche. Cette fonction affiche n'est jamais appelée...

Je pense que tu dois revoir ton code qui n'est pas vraiment terminé.

Et lis les messages épinglés pour savoir comment poster un code. Merci.