Votre panier
Il n'y a plus de produit dans votre panierPMODJSTK2 : Mini joystick + Led RGB à pilotage SPI pour arduino
PMODJSTK2
En cours d'approvisionnement 21,22 € TTC
17,68 € HT
Dont 0,01 € d'eco-participation déjà incluse dans le prix
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.
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™
* Schéma publié sous licence CC Attribution-ShareALike (réalisé avec Fritzing)
/************************************************************************
*
* 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.
* 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.
*
************************************************************************/
#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) ;
}
}
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
Produits associés