Bonjour a tous,
Internet est de retour !!
petites explications sur la programmation du joystick.
Le joystick fonctionne en X et Y comme un double potentiomètre, c'est a dire qui fait varier une tension de 0 a X volts, comme le bouton du volume d'une radio classique.
il est en mode analogique, contrairement a l'information de type digitale , 1 ou 0 , le binaire.
Pour notre joystick, l'info qu'il renvoie varie de 0 a 1024 environ de sa position extrême gauche a sa position extrême droite, au repos central, la valeur est environ de moitié, soit 500.
Pour récupérer un signal variant a partir de la position centrale du joystick, il faut définir une variable , ici calX, qui récupère la valeur du joystick au repos, au centre.
calX = analogRead(VRx);
Ensuite , dans la boucle void loop{}, lire la valeur de X en soustraillant la valeur de calX
rawX = int (analogRead(VRx)- calX);
la valeur renvoyé par rawX va varier de -500 a +500.
Pour retrouver un champ de valeurs compatible avec le moteur pas a pas, la fonction map().
moteur.step ( map(rawX,-500,500,-20,20) ); //la fonction map() permet a partir de la lecture de la variable rawX
il est possible de formuler directement dans les arguments d'une commande, exemple moteur.step
formulation de la fonction map(), 5 arguments. Nom de la variable a traiter , valeur 1 a traiter, valeur 2 a traiter, valeur 1 demandé, valeur 2 demandé.
const int VRx =A9; //utilise le X, position sur la carte arduino, broche analogique.
// Variables de lecture du joystick
int calX, rawX;
void setup{
// Calibration de la valeur (0, 0) du joystick
calX = analogRead(VRx);
}
void loop {
// Mesure des valeurs en X
rawX = int (analogRead(VRx)- calX);
moteur.step ( map(rawX,-500,500,-20,20) );
}
Modifié par michelflashman, 05 octobre 2018 - 07:34 .