Test simple du Shield Arduino Joystick + BPx2Par X. HINAULT - Page créée le : 18/2/2011. (cliquer sur l'image pour agrandir) On this page... (hide) 1. PrésentationCe programme test le Shield Arduino Joystick + BPx2 et affiche l'état des BP et du Joystick dans la fenetre Terminal série. Ce programme utilise les fonctionnalités suivantes :
Ressources utiles associées à ce programme :
2. Matériel Nécessaire2.1 L'espace de développement Arduino
![]() 2.2 Le matériel suivant pour réaliser le montage associé![]() 3. Instructions de montage
4. Le schéma théorique du montageLe schéma théorique du montage (cliquer pour agrandir) 5. Le circuit du montageLe schéma du montage à réaliser (cliquer pour agrandir) 6. Fonctionnement du programme6.1 Structure globale du programmeCe programme simple comprend :
6.2 Déroulement du programmeLe programme se déroule de la façon suivante :
![]() Le déroulement du programme 7. Explication du programme7.1 Au niveau de la partie déclarative :
7.2 Au niveau de la fonction d'initialisation setup( ) :
7.3 Au niveau de la boucle principale, la fonction loop ( ) :
8. Mise en oeuvre du programme8.1 Préparation du montage et programmation de la carte Arduino :
8.2 Préparation du Terminal côté PC dans le logiciel Arduino
![]()
![]()
![]() 8.3 Fonctionnement
(cliquer sur l'image pour agrandir) 9. Le programme complet en langage ArduinoA copier/coller directement dans l'éditeur Arduino // --- Programme Arduino --- // Trame de code générée par le générateur de code Arduino // du site www.mon-club-elec.fr // Auteur du Programme : X. HINAULT - Tous droits réservés // Programme écrit le : 18/2/2011. // ------- Licence du code de ce programme ----- // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, // or any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // //////////////////// PRESENTATION DU PROGRAMME //////////////////// // -------- Que fait ce programme ? --------- /* Ce programme test le Shield Arduino Joystick + BPx2 et affiche l'état des BP et du Joystick dans la fenetre Terminal série. */ // --- Fonctionnalités utilisées --- // Utilise la connexion série vers le PC // Utilise la conversion analogique numérique 10 bits // Utilise la carte d'extension Arduino (shield) Joystick + BP x 2 // -------- Circuit à réaliser --------- // La connexion série vers le PC utilise les broches 0 et 1 (via le câble USB) // Enficher la carte d'extension Joystick + BPx2 broche à broche sur la carte Arduino // /////////////////////////////// 1. Entête déclarative /////////////////////// // A ce niveau sont déclarées les librairies incluses, les constantes, les variables, les objets utiles... // --- Déclaration des constantes --- // --- Inclusion des librairies --- // --- Déclaration des constantes utiles --- const int APPUI=LOW; // constante pour tester état BP // --- Déclaration des constantes des broches E/S numériques --- const int bpRouge=3; // Constante pour la broche 3 const int bpBleu=4; // Constante pour la broche 4 const int bpJoystick=5; // Constante pour la broche 5 // --- Déclaration des constantes des broches analogiques --- const int axe1Joystick=0; // Constante pour la broche analogique 0 const int axe2Joystick=1; // Constante pour la broche analogique 1 // --- Déclaration des variables globales --- int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique float mesuref=0.0;// Variable pour calcul résultat décimal de conversion analogique numérique int positionAxe1=0; // Variable pour acquisition résultat brut de conversion analogique numérique axe 1 Joystick int positionAxe2=0; // Variable pour acquisition résultat brut de conversion analogique numérique axe 2 Joystick // --- Déclaration des objets utiles pour les fonctionnalités utilisées --- // ////////////////////////// 2. FONCTION SETUP = Code d'initialisation ////////////////////////// // La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme void setup() { // debut de la fonction setup() // --- ici instructions à exécuter 1 seule fois au démarrage du programme --- // ------- Initialisation fonctionnalités utilisées ------- Serial.begin(115200); // initialise connexion série à 115200 bauds // IMPORTANT : régler le terminal côté PC avec la même valeur de transmission // ------- Broches en sorties numériques ------- // ------- Broches en entrées numériques ------- pinMode (bpRouge,INPUT); // Broche bpRouge configurée en entrée pinMode (bpBleu,INPUT); // Broche bpBleu configurée en entrée pinMode (bpJoystick,INPUT); // Broche bpJoystick configurée en entrée // ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques ------- //digitalWrite (bpRouge,HIGH); // Rappel au + activé sur la broche bpRouge configurée en entrée //digitalWrite (bpBleu,HIGH); // Rappel au + activé sur la broche bpBleu configurée en entrée //digitalWrite (bpJoystick,HIGH); // Rappel au + activé sur la broche bpJoystick configurée en entrée // cette activation n'est pas indispensable pour le shield Joystick + BPx2 // ------- Initialisation des variables utilisées ------- } // fin de la fonction setup() // ******************************************************************************** ////////////////////////////////// 3. FONCTION LOOP = Boucle sans fin = coeur du programme ////////////////// // la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension void loop(){ // debut de la fonction loop() // --- ici instructions à exécuter par le programme principal --- //mesure_brute= analogRead(broche_analogique) ; // acquisition conversion analogique numérique (100µs env.) sur broche analogique indiquée //----- lecture position Joytstick positionAxe1=analogRead(axe1Joystick); // acquisition conversion analogique numérique sur broche analogique axe 1 positionAxe2=analogRead(axe2Joystick); // acquisition conversion analogique numérique sur broche analogique axe 2 Serial.print("Position axe 1 = "), Serial.println(positionAxe1); // affiche état Axe 1 Serial.print("Position axe 2 = "), Serial.println(positionAxe2); // affiche état Axe 2 //---- lecture état des BP du shield Joystick if (digitalRead(bpRouge)==APPUI) Serial.print("Appui BP rouge / "); if (digitalRead(bpBleu)==APPUI) Serial.print("Appui BP bleu / "); if (digitalRead(bpJoystick)==APPUI) Serial.print("Appui BP Joystick / "); Serial.println(); // saut de ligne Serial.println(); // saut de ligne delay(1000); // entre 2 lectures } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin // ******************************************************************************** // ////////////////////////// FONCTIONS DE GESTION DES INTERRUPTIONS //////////////////// // ////////////////////////// AUTRES FONCTIONS DU PROGRAMME //////////////////// // ////////////////////////// Fin du programme //////////////////// |