clavier virtuel 433 4 boutons pour raccourci logiciel par exemple

bonjour,

Pour controller certain logiciel de son et de lumière, étant parfois sur scene, je devais sans arrêt courir à mon ordi ce qui le fait pas toujours pour la mise en scéne.

Debutant en arduino, je vous présente donc mon premier projet fini!

materiel utilisé:

  • 1 arduino micro (32U4 5V) pour pouvoir utiliser la librairie KEYBOARD
  • 4 LED 3mm jaune (couleur à votre convenance)
  • une resistance 220 ohm
  • une plaque de prototypage 6 cm x 4 cm
  • une telecommande 4 bouton RF 433
  • un récepteur 433

le code:

dans mon cas, je souhaitai avec 2 boutons en appuis simple et 2 boutons en appuis "maintenu" (puis sur la télécommande = appris sur la touche, second appuis sur la télécommande = relâche la touche)

// telecomande code protocole 1, 24 bit
// bouton A : 14012419
// bouton B : 14012428
// bouton C : 14012464
// bouton D : 14012608

#include <RCSwitch.h>
#include <Keyboard.h>

RCSwitch mySwitch = RCSwitch();

//pin receiver RF = 3
int static sortieA = 7;
int static sortieB = 6;
int static sortieC = 5;
int static sortieD = 4;
boolean etatSortieC = false;
boolean etatSortieD = false;


void setup() {
  pinMode(sortieA,OUTPUT);
  pinMode(sortieB,OUTPUT);
  pinMode(sortieC,OUTPUT);
  pinMode(sortieD,OUTPUT);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 =>  pin #3 sur arduino micro
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
        
    if(mySwitch.getReceivedValue()==14012419) 
      {
        digitalWrite(sortieA,HIGH);
        Keyboard.press('g');
        delay(50);
        digitalWrite(sortieA,LOW);
        delay(1000);
        Keyboard.releaseAll();
        
      }

     else if(mySwitch.getReceivedValue()==14012428) 
            {
             digitalWrite(sortieB,HIGH);
             Keyboard.press('h');
             delay(50);
             digitalWrite(sortieB,LOW);
             delay(1000);
             Keyboard.releaseAll();
             
            }

      else if(mySwitch.getReceivedValue()==14012464)
             {
              etatSortieC = !etatSortieC;
              digitalWrite(sortieC,etatSortieC);
              delay(1000);
             }

      else if(mySwitch.getReceivedValue()==14012608)
             {
              etatSortieD = !etatSortieD;
              digitalWrite(sortieD,etatSortieD);
              delay(1000);
             }
             
    mySwitch.resetAvailable();
 }

     if(digitalRead(sortieC))
       {     
        Keyboard.press('z');   
       }

     else if(digitalRead(sortieD))
            {
             Keyboard.press('i');   
            }

      else
          { 
           Keyboard.releaseAll();
          }
  
}

Biensur adaptez le code au touche et au fréquence que vous souhaité,

pour le câblage, voir schema, vous noterai que j'ai décidé de mettre une seul resistance sur mes led de control en masse commune, car dans mon cas, je ne lance q'un racourci a la fois donc ca serai suffire...

encore une fois c'est mon premier projet et la premiere fois que j'utilise des plaques de prototypes, donc pour ce qui est du câblage, j'ai un peu (trop) improvisé...

voir photo.

puis un petit coup d'impression 3D pour la boiboite, et le tour et joué

en piece jointes:

-Photo:

circuit devant, derrière
in box
box fini

-vue breadboard

si besoin d'info, ou si j'ai oublié quelque chose, je répondrai avec plaisir,
merci a cette communauté pour l'aide apporté car sans elle j'aurai eu bien plus de mal à finir mon projet..