Stream Deck fait maison

Bonjour / bonsoir

je commence juste à m’intereser aux arduinos et au codage

en bref je souhaiterais fabriquer un clavier qui servirait de “Stream deck”

avec la librairie keyboard.h

je compte acheter un arduino leonardo

et des bouttons

je prépare mon projet en avance pour ensuite commander des pcb et tout réaliser en impression 3d

j’ai réutilisé un code déjà fait et je l’ai modifié aucune erreur de compilation mais je voulais l’avis d’autres personnes

#include <Keyboard.h>
const int bouton1 = 2;
const int bouton2 = 3;
const int bouton3 = 4;
const int bouton4 = 5;
const int bouton5 = 6;
const int bouton6 = 7;
const int bouton7 = 8;
const int bouton8 = 9;
const int bouton9 = 10;
const int bouton10 = 11;
const int bouton11 = 12;
const int bouton12 = 13;
const int boutonEtat = A1;
bool flag = true;

void setup()
{
  pinMode(bouton1, INPUT);
  pinMode(bouton2, INPUT);
  pinMode(bouton3, INPUT);
  pinMode(bouton4, INPUT);
  pinMode(bouton5, INPUT);
  pinMode(bouton6, INPUT);
  pinMode(bouton7, INPUT);
  pinMode(bouton8, INPUT);
  pinMode(bouton9, INPUT);
  pinMode(bouton10, INPUT);
  pinMode(bouton11, INPUT);
  pinMode(bouton12, INPUT);
  
  pinMode(boutonEtat, INPUT);
}

void loop()
{
  if (digitalRead(boutonEtat))
  {
    if(flag)
    {
      Keyboard.begin();
      flag = false;
    }
    
    if(digitalRead(bouton1))
    {
      Keyboard.press(KEY_F1);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }
    
    if(digitalRead(bouton2))
    {
      Keyboard.press(KEY_F2);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton3))
    {
      Keyboard.press(KEY_F3);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton4))
    {
      Keyboard.press(KEY_F4);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton5))
    {
      Keyboard.press(KEY_F5);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton6))
    {
      Keyboard.press(KEY_F6);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton7))
    {
      Keyboard.press(KEY_F7);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton8))
    {
      Keyboard.press(KEY_F8);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton9))
    {
      Keyboard.press(KEY_F9);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton10))
    {
      Keyboard.press(KEY_F10);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    if(digitalRead(bouton11))
    {
      Keyboard.press(KEY_F11);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }

    else if(digitalRead(bouton12))
    {
      Keyboard.press(KEY_F12);
      delay(50);
      Keyboard.releaseAll();
      delay(50);
    }
  }
  else
  {
    if(!flag)
    {
      Keyboard.end();
      flag = true;
    }
  }
}


les résistances sont de 10k ohms

merci à tous de la potentielle aide que vous pouvez m’apporter

Utiliser des tableaux économiserait bcp de lignes de code....pourquoi faire un delay() après le releaseAll?
Est-ce que l’appui sur 2 boutons à la fois est important?
Vos pins ont des PULL-UP ça vous permettrait de vous passer des résistances

Est-ce que l'appui sur 2 boutons à la fois est important?

On a eu la même idée?

bonjour deja merci pour vos réponses

Comme je l'ai dis dans mon message, je débute et l'utilisation des tableau est encore "trop" compliquer pour moi.

j'utilise un delay(50) après le releaseAll car je suit le code écrit par tommy desrochers

et

l'appui sur 2 boutons à la fois n'est pas important.

montage sans resistances

Bonjour,

Quand tu appuies sur le bouton tu court-circuites l'alimentation.

  • le 5V ne doit pas être relié au bouton
  • les entrés doivent être connectées sur la pin d'à-coté (normalement les deux pins verticales de ton bouton sont reliées).

De plus tes tests sont faits à l'envers: avec un pullup (interne ou externe) l'entrée est à LOW quand tu appuies sur le bouton.