• -20%
PMODJSTK2 : Mini joystick + Led RGB à pilotage SPI pour arduino

Module PMOD Two-axis Joystick

PMODJSTK2
Disponible
16,97 € TTC 21,22 €TTC -20%

Dont 0,01 € d'eco-participation déjà incluse dans le prix (non impacté par la promotion)


14,14 € HT
Temps restant

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.

Fonction du moduleInterface du moduleConnectique du module


Doté d'un connecteur mâle 1 x 6 broches, ce module pourra être directement enfiché sur une platine BreadBoard ou être déporté via des cordons optionnels (voir modèles en bas de page).
 
Ce module est soumis au contrôle de la réglementation américaine relative à l’exportation (15 CFR Part 730 et. seq.). 
  
   
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)

* N'importez pas le programme par un copier/coller dans l'IDE de l'arduino. 
* Utilisez le lien ci-dessous pour télécharger le code source.
*
* 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) ;
}
}
   

 
Notes d'applications pour modules Pmod 

 
La note d'application ci-dessus a retenu votre attention ? Téléchargez toutes les autres notes d'applications concernant l'utilisation des modules Pmod™ avec un arduino™ Uno. 
Aucun avis
Il est nécessaire d'être connecté pour laisser un avis
Produit ajouté à ma liste