Manette analogique pour arduino

ta daaaaa! Voici mon "arduino's analog joystick":

IMG_20160302_232752.jpg

Electronique:

schema.png

(je déteste les logiciels de création de PCB) Pour faire simple [1], la loi d'ohm fait qu'en mettant une résistance différente au cul de chaque bouton poussoir, la valeur lue dans A0 sera unique en fonction du bouton activé.

IMG_20160302_230758.jpg

IMG_20160302_230803.jpg

Code

Il donne quelque chose comme ça:

int joystickPin = A0; 
int getPushedButton(int joystickPin){
  int val=analogRead(joystickPin);
  if(val > 1000){
   return 0; 
  }else if (val > 650){
    return 4;
  }else if(val > 450){
   return 6; 
  }else if(val > 120){
    return 5;
  }else if(val > 45){
    return 3;
  }else if(val > 15){
   return 1; 
  }else{
   return 2; 
  }
}

Adaptez les valeurs en fonction des résistances que vous mettez. On peut aussi gérer les combinaisons de boutons.

Box

Le dessin 3D du carter de la manette peut être téléchargé sur ce dépot github.

Cette manette s’intègre dans mon projet de cube led. Cet article est assez léger techniquement. Mais s'il peut donner des idées à des bidouilleurs arduino, c'est cool.

Note

[1] Comme il est minuit passé au moment où je rédige ces lignes... Je n'ai pas envie de poser des équations

Page top