Claviers - Joysticks

Module PMOD Two-axis Joystick

Conçu pour être piloté par un arduino via une liaison SPI, ce module "Pmod" intègre un mini joystick 2 axes avec bouton-poussoir sur le dessus + un bouton poussoir supplémentaire + une led RGB.

Plus de détails

PMODJSTK2

17,68 € HT 21,21 € TTC

Dont 0,01 € TTC d'éco-part.

Disponible

Envoyer à un ami

Envoyer à un ami

Module PMOD Two-axis Joystick

Module PMOD Two-axis Joystick

Conçu pour être piloté par un arduino via une liaison SPI, ce module "Pmod" intègre un mini joystick 2 axes avec bouton-poussoir sur le dessus + un bouton poussoir supplémentaire + une led RGB.

Destinataire :

* Champs requis

  OU  Annuler

Imprimer
Fonction du moduleInterface du moduleConnectique du module


Doté d'un connecteur mâle 1 x 6 broches, ce module pourra être déporté via des cordons optionnels (voir modèles en bas de page).
  
   
Exemple d'application avec un arduino™


Module Pmodjstk2


/************************************************************************
*
* Test du module Pmod joystick 2
*
*************************************************************************
* Description: Pmod_JSTK2
* Les valeurs X et Y sont affichées dans le moniteur série sous forme de
* tableau et la led du module s'allume avec une couleur différente lorsque
* les boutons sont actifs.
*
*
* Matériel
* 1. Arduino Uno
* 2. Module Pmod JSTK2
*
* Schéma publié sous licence CC Attribution-ShareALike (réalisé avec Fritzing)
* Code source téléchargeable ici:
************************************************************************/
#define CS 10 // affectation de la broche CS
#include <SPI.h> // appel de la bibliothèque
int i;
byte recu[7]; // stockage des données du module
int X;
int Y;
int cmd=0;
void setup()
{
Serial.begin(9600); // initialisation de la liaison série
SPI.begin(); // initialisation du port SPI
SPI.setDataMode(SPI_MODE0); // configuration de la liaison SPI en mode 0
SPI.setClockDivider(SPI_CLOCK_DIV16); // configuration de l'horloge à 1MHz
pinMode(CS, OUTPUT);
}
void loop()
{
digitalWrite(CS, LOW); // activation de la ligne CS
delayMicroseconds(15); // voir doc: pause de 15us après l'activation de la ligne CS
for (i=0;i<6;i=i+1)
{
recu[i] = SPI.transfer(cmd); // envoi de 6 données pour récupérer les données du module
delayMicroseconds(10); // voir doc: pause de 10us après chaque envoi
}
digitalWrite(CS, HIGH); // désactivation de la ligne CS
X = recu[0]; // X a un format de 10 bit
X |= (recu[1] << 8);
Y = recu[2]; // Y a un format de 10 bit
Y |= (recu[3] << 8);
for (i=0;i<6;i=i+1) // écriture dans le moniteur série
{
Serial.print("i");
Serial.print(i);
Serial.print("=");
Serial.print(recu[i]);
Serial.print('t'); // tabulation
}
Serial.print("X=");
Serial.print(X);
Serial.print('t'); // tabulation
Serial.print("Y=");
Serial.println(Y);
delay(10);
switch (recu[4])
{
case 1: // bouton joystick actif
// allumage de la led en rouge
digitalWrite(CS, LOW); // activation de la ligne CS
SPI.transfer(0x84);
delayMicroseconds(15);
SPI.transfer(255);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
digitalWrite(CS, HIGH); // désactivation de la ligne CS
delay(1000);
// extinction de la led
digitalWrite(CS, LOW); // activation de la ligne CS
SPI.transfer(0x84);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
digitalWrite(CS, HIGH); // désactivation de la ligne CS
break;
case 2: // bouton trigger actif
// allumage de la led en vert
digitalWrite(CS, LOW); // activation de la ligne CS
SPI.transfer(0x84);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(255);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
digitalWrite(CS, HIGH); // désactivation de la ligne CS
delay(1000);
// extinction de la led
digitalWrite(CS, LOW); // activation de la ligne CS
SPI.transfer(0x84);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
digitalWrite(CS, HIGH); // désactivation de la ligne CS
break;
case 3: // deux boutons actifs
// allumage de la led en bleu
digitalWrite(CS, LOW); // activation de la ligne CS
SPI.transfer(0x84);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(255);
delayMicroseconds(15);
digitalWrite(CS, HIGH); // désactivation de la ligne CS
delay(1000);
// extinction de la led
digitalWrite(CS, LOW); // activation de la ligne CS
SPI.transfer(0x84);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
SPI.transfer(0);
delayMicroseconds(15);
digitalWrite(CS, HIGH); // désactivation de la ligne CS
break;
default:
break;
delay(1000) ;
}
}
 
 

Datasheet du module

Nous vous proposons 12 produits pouvant être associés à cet article

Platine Arduino Uno (Rev 3)
A000066

16,21 € HT 19,45 € TTC Disponible

Support Clip pour modules Pmod
PMODCLIP

2,90 € HT 3,48 € TTC Disponible

Cordon 6 Pin Cable Connector 6"
6PINCC6

5,14 € HT 6,16 € TTC Disponible

Platine d'évaluation "NEXYS VIDEO"
TRENZ-26723

290,00 € HT 348,00 € TTC Disponible

Platine d'évaluation "Nexys™4 DDR"
TRENZ-26283

165,00 € HT 198,00 € TTC Disponible

Jeu de 20 straps flexibles M-F...
PRT-12794

2,21 € HT 2,65 € TTC Disponible

Platine d'évaluation "BASYS3"
TRENZ-26083

82,00 € HT 98,40 € TTC Disponible

Cordon "2 x 6 Pin Cable"
TRENZ-24450

3,89 € HT 4,67 € TTC Disponible

Platine de développement "ZYBO"
TRENZ-25398

129,17 € HT 155,00 € TTC Disponible

Platine d'évaluation "ZedBoard™
TRENZ-24539

320,00 € HT 384,00 € TTC Disponible

Cordon 6 Pin Cable Connector 18"
TRENZ-24459

5,14 € HT 6,16 € TTC Disponible

Cordon "2x6 Pin to Dual 6 Pin...
TRENZ-24451

3,75 € HT 4,50 € TTC Disponible