Tranber72 Débutant
 Hors ligne
Inscrit le: 27 Nov 2014 Messages: 1  Niveau d'éléctronique: Débutant
|
Posté le: Jeu 27 Nov - 16:03 (2014)   Sujet du message: Arduino rev3 deux moteurs CC 1 joystick |
|
|
Bonjour, Je suis débutant dans le monde de l'arduino et voici mon projet : - Un moteur DC sur l'axe X : mobilise l'objet horizontalement - Un moteur DC sur l'axe Y : mobilise l'objet verticalement - Une carte Arduino Motor shield V3 comprenant : Blindage Contrôleur de Moteur Arduino V3 + Microcontrôleur Arduino Mega 2560 Rev3 - Une plaque à essai, des résistances 10 Ohms, des potentiomètres des cables pour breadboard M/M - Un joystick avec carte de déploiement intégrée : http://www.robotshop.com/eu/fr/mini-capteur-manche-cytron.html - 4 interrupteurs de fin de course placés aux extrémités X et Y pour stopper le moteur concerné Je souhaite que l'objet puisse se déplacer avec le joystick dans la direction X ou Y ou les deux simultanément selon une vitesse de moteur constante mais diminuée par rapport à l'initiale avec un arrêt du moteur concerné lorsque l'interrupteur de fin de course est enclenché. Pouvez-vous m'aider pour le code ? Je vous mets en photo mes branchements pour mon essai avec juste les deux moteurs et le joystick
 Et voici mon code pour ce premier montage qui ne fonctionne pas.
Merci à vous
// --- Déclaration des constantes ---
// --- Inclusion des librairies ---
// --- Déclaration des constantes utiles ---
// --- Déclaration des constantes des broches E/S numériques ---
int MotA=12; // Constante pour la broche 12 int MotB=13; // Constante pour la broche 13
// --- Déclaration des constantes des broches analogiques ---
//const int Voie[6]={0,1,2,3,4,5}; //declaration constante de broche analogique
// --- Déclaration des variables globales ---
// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
// --- Déclaration des constantes des broches analogiques ---
int axe1Joystick = A2; // Constante pour la broche analogique 2 int axe2Joystick = A3; // Constante pour la broche analogique 3 int JoyStick_Z = 3; //
// --- 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
// ////////////////////////// 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);Â
// ------- Broches en sorties numériques -------  pinMode (MotA,OUTPUT); // Broche vitesseMotA configurée en sortie pinMode (MotB,OUTPUT); // Broche vitesseMotB configurée en sortie
// ------- Broches en entrées numériques ------- pinMode (axe1Joystick,INPUT); // Broche axe1joystick configurée en entrée pinMode (axe2Joystick,INPUT); // Broche axe2joystick configurée en entrée pinMode (JoyStick_Z,INPUT); // Broche JoyStick_Z configurée en entrée
// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques ------- Â
// Les BP du shield Joystick + BPx2 dispose d'un rappel au plus sur le shield
// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques ------- Â
// ------- Initialisation des variables utilisées ------- Â
// ------- Codes d'initialisation utile ------- Â digitalWrite(MotA,LOW); // a l'arret digitalWrite(MotB,LOW); // Ã l'arretÂ
} // 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() //----- 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
int x,y,z; if (positionAxe1>700) { Â digitalWrite(MotA,HIGH); } else if (positionAxe1<300) { Â digitalWrite(MotA,HIGH); } else if (positionAxe2>700) {Â Â digitalWrite(MotB,HIGH); } else if (positionAxe2<300) { Â Â digitalWrite(MotB,HIGH); }Â else if (analogRead(JoyStick_Z)) { Â Â digitalWrite(MotA,LOW); Â Â digitalWrite(MotB,LOW); Â Â }Â
while(1); // stop loop } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin // ********************************************************************************
Â
____________________________ Tranber |
|