Projet 2 moteurs cc 1 joystick arduino rev3
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 46

Projet 2 moteurs cc 1 joystick arduino rev3



  1. #1
    Tranber72

    Projet 2 moteurs cc 1 joystick arduino rev3


    ------

    Nature du projet
    Motor shield V3 joystick deux moteurs
    Bonjour,
    Je suis complètement 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-...he-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 en termes de branchements (je ne comprends pas les schémas théoriques) ? Pouvez-vous m'aider pour le code de la carte Arduino ?
    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


    Code:
    const int vitesseMotA=3; // Constante pour la broche 3
    const int sensMotA=12; // Constante pour la broche 12
    const int freinMotA=9; // Constante pour la broche 9
    const int intensiteMotA=A0; // intensité du moteur 0
    
    const int vitesseMotB=11; // Constante pour la broche 11
    const int sensMotB=13; // Constante pour la broche 13
    const int freinMotB=8; // Constante pour la broche 8
    const int intensiteMotB=A1; // intensité du moteur 1
    
    
    // --- 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 ---
    
    const int axe1Joystick=2; // Constante pour la broche analogique 2
    const int axe2Joystick=3; // Constante pour la broche analogique 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
    
    
    
    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 (vitesseMotA,OUTPUT); // Broche vitesseMotA configurée en sortie
    pinMode (freinMotA,OUTPUT); // Broche freinMotA configurée en sortie
    pinMode (vitesseMotB,OUTPUT); // Broche vitesseMotB configurée en sortie
    pinMode (sensMotA,OUTPUT); // Broche sensMotA configurée en sortie
    pinMode (sensMotB,OUTPUT); // Broche senMotB configurée en sortie
    
    // ------- Broches en entrées numériques ------- 
    pinMode (bpJoystick,INPUT); // Broche bpJoystick 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(vitesseMotA,LOW); // a l'arret
    digitalWrite(sensMotA,LOW); 
    digitalWrite(freinMotA,LOW); // frein off 
    
    digitalWrite(vitesseMotB,LOW); // à l'arret 
    digitalWrite(sensMotB,LOW);  
    digitalWrite(freinMotB,LOW); // frein off
    
    } 
    
    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
    
    if (positionAxe1>700) {
     digitalWrite(vitesseMotA,HIGH);
    digitalWrite(sensMotA,HIGH);
    }
    
    if (positionAxe1<300) {
     digitalWrite(vitesseMotA,HIGH);
    digitalWrite(sensMotA,LOW);
    }
    
    if (positionAxe2>700) { 
     digitalWrite(vitesseMotB,HIGH);
    digitalWrite(sensMotB,HIGH);
    }
    
    if (positionAxe2<300) {
      digitalWrite(vitesseMotA,HIGH);
    digitalWrite(sensMotA,LOW);
    } 
    
    while(1); // stop loop
    }

    -----
    Images attachées Images attachées  
    Dernière modification par JPL ; 27/11/2014 à 13h52.

  2. #2
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    La doc du joystick dit qu'il se compose de deux potentiomètres 10 K, Mais on a les sorties X-A et y-A qui doivent correspondre aux curseurs des potentiomètres.
    Mais qu'est-ce que c'est la sortie SW? Le bouton de sélection probablement. Qui se situe où?
    Dans un premier temps, il faut connecter X-A et Y-A à deux entrées analogiques de l'Arduino. Et les déclarer dans setup.
    connecter Vcc au + 5 V et GND à la masse.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  3. #3
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Oui les connexions sont effectuées comme sur la photo que j'ai jointes. J'ai branché le X sur A2 et le Y sur A3.
    Ensuite j'ai téléchargé ce code ci-dessus à partir de ce que j'ai pu retrouvé sur le net et rien ne bouge...

    Merci de votre aide

  4. #4
    jiherve

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Bonjour,
    Commencez donc par faire clignoter une led, ici c'est comme si débutant au violon vous vouliez faire partie d'un orchestre symphonique.
    Au mieux vous reproduirez le montage mais au moindre problème(ici c'est le cas) vous serez noyé, l’électronique n'est pas un jeu vidéo.
    autre exemple : n'ayant jamais pratiqué le modélisme penseriez vous réaliser ceci :http://www.google.fr/imgres?imgurl=h...9QEwAQ&dur=345
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Je vous remercie mais je viens pour être aidé et pas pour avoir des leçons.

  7. #6
    jiherve

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Re
    il n'est pas questions de leçons mais de progresser pas à pas, vous êtes débutant en programmation et vous ne savez pas lire un schéma donc commençons par les bases.
    Bonne chance!!
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Citation Envoyé par Tranber72 Voir le message
    Oui les connexions sont effectuées comme sur la photo que j'ai jointes. J'ai branché le X sur A2 et le Y sur A3.
    ça ça devrait être ok car le lis dans le code:
    Code:
    // --- Déclaration des constantes des broches analogiques ---
    
    const int axe1Joystick=2; // Constante pour la broche analogique 2
    const int axe2Joystick=3; // Constante pour la broche analogique 3

    Mais je ne retrouve pas axe1joystick et axe2joystick dans le setup. Il faut pourtant les déclarer comme inputs.
    Code:
    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 (vitesseMotA,OUTPUT); // Broche vitesseMotA configurée en sortie
    pinMode (freinMotA,OUTPUT); // Broche freinMotA configurée en sortie
    pinMode (vitesseMotB,OUTPUT); // Broche vitesseMotB configurée en sortie
    pinMode (sensMotA,OUTPUT); // Broche sensMotA configurée en sortie
    pinMode (sensMotB,OUTPUT); // Broche senMotB configurée en sortie
    
    // ------- Broches en entrées numériques ------- 
    pinMode (bpJoystick,INPUT); // Broche bpJoystick 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(vitesseMotA,LOW); // a l'arret
    digitalWrite(sensMotA,LOW); 
    digitalWrite(freinMotA,LOW); // frein off 
    
    digitalWrite(vitesseMotB,LOW); // à l'arret 
    digitalWrite(sensMotB,LOW); 
    digitalWrite(freinMotB,LOW); // frein off
    
    }
    Ensuite j'ai téléchargé ce code ci-dessus à partir de ce que j'ai pu retrouvé sur le net et rien ne bouge...

    Merci de votre aide
    A mon avis le code n'est pas correct.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  9. #8
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Merci pour votre réponse

    Comment puis les mettre dans le setup ? mes branchements sont-ils justes pour vous ?

    Merci

  10. #9
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Citation Envoyé par Tranber72 Voir le message
    Merci pour votre réponse

    Comment puis les mettre dans le setup ?
    Avec l'utilitaire de programmation Arduino
    mes branchements sont-ils justes pour vous ?

    Merci
    On ne voit pas assez bien sur la photo. Il faudrait un schéma.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  11. #10
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Je viens d'ajouter cela dans la fonction setup

    pinMode (axe1Joystick,INPUT); // Broche axe1joystick configurée en entrée
    pinMode (axe2Joystick,INPUT); // Broche axe2joystick configurée en entrée

    j'ai chargé le code sur la carte : les moteurs tournent en continu

  12. #11
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    et ils ne changent ni de sens ni de vitesse selon la position du joystick?
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  13. #12
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Le joystick n'a aucune influence sur les moteurs.

    Les moteurs tournent seuls et en continu

  14. #13
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Le programme ne tourne pas en boucle. il ne fait qu'un seul passage et il s'arrête. Il faudrait virer le while 1 stop loop de la fin
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  15. #14
    Antoane
    Responsable technique

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Bonsoir,
    Il faut le déplacer pour mettre l'intégralité du void dans la boucle while :
    Code:
    [...]
    digitalWrite(vitesseMotB,LOW); // à l'arret 
    digitalWrite(sensMotB,LOW);  
    digitalWrite(freinMotB,LOW); // frein off
    
    } 
    
    void loop(){ // debut de la fonction loop()
    while(1) {
    
    //----- 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
    
    [...]
    
    if (positionAxe2<300) {
      digitalWrite(vitesseMotA,HIGH);
    digitalWrite(sensMotA,LOW);
    } 
    
    }// stop loop
    }
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  16. #15
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Bonjour

    Merci pour votre aide. J'ai ajouté dans void loop

    Code:
    else if (positionAxe1==0)&&(positionAxe2==0){ 
    digitalWrite(MotA,LOW);  // turn motor off when between points
    digitalWrite(MotB,LOW);  // turn motor off when between points
    mais j'ai un message d'erreur du software
    Code:
    Code_joystick___moteurs.ino: In function 'void loop()':
    Code_joystick___moteurs:104: error: expected identifier before '(' token
    Code_joystick___moteurs:104: error: expected `;' before '(' token
    Merci

  17. #16
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Citation Envoyé par Tranber72 Voir le message
    Bonjour

    Merci pour votre aide. J'ai ajouté dans void loop

    Code:
    else if (positionAxe1==0)&&(positionAxe2==0){ 
    digitalWrite(MotA,LOW);  // turn motor off when between points
    digitalWrite(MotB,LOW);  // turn motor off when between points
    mais j'ai un message d'erreur du software
    Code:
    Code_joystick___moteurs.ino: In function 'void loop()':
    Code_joystick___moteurs:104: error: expected identifier before '(' token
    Code_joystick___moteurs:104: error: expected `;' before '(' token
    Merci
    Il y a deux erreurs de syntaxe.

    Essaie comme ça:
    Code:
    else if (positionAxe1==0 && positionAxe2==0){ 
    digitalWrite(MotA,LOW);  // turn motor off when between points
    digitalWrite(MotB,LOW);  // turn motor off when between points
    }
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  18. #17
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Citation Envoyé par Antoane Voir le message
    Bonsoir,
    Il faut le déplacer pour mettre l'intégralité du void dans la boucle while :
    Hello Antoane,

    Non, le while est inutile, parce que loop tourne de lui-même.
    Quand on met while(1){},
    comme la condition (1) est toujours vraie, l'instruction while tourne sur elle-même indéfiniment, donc le processeur reste sur ce while au lieu de continuer à tourner le loop.

    Ce qu'on veut ici, c'est que le microcontrôleur continue à lire le joystick et agisse sur les moteurs. Donc il faut que loop continue à tourner. Par conséquent,il faut virer ce while.
    Code:
    [...]
    digitalWrite(vitesseMotB,LOW); // à l'arret 
    digitalWrite(sensMotB,LOW);  
    digitalWrite(freinMotB,LOW); // frein off
    
    } 
    
    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
    
    [...]
    
    if (positionAxe2<300) {
      digitalWrite(vitesseMotA,HIGH);
    digitalWrite(sensMotA,LOW);
    } 
    
    }
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  19. #18
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Bonsoir,

    J'ai retravaillé le code. Bonne nouvelle : le joystick a une influence sur les moteurs !

    Mais quand je vais :
    - à droite : Le moteur B tourne dans le sens horaire
    - à gauche : Le moteur A tourne dans le sens horaire
    - en haut : Le moteur A tourne dans le sens horaire
    - en bas : Le moteur A tourne dans le sens horaire
    Quand j'appuie sur le bouton poussoir (Joystick_Z) : cela n'arrête pas les moteurs.

    Quand je relâche en position neutre, souvent le moteur A ou les deux tournent encore...

    Voici le code et merci encore
    Code:
    // --- Déclaration des constantes des broches E/S numériques ---
    
    int vitesseMotA=3; // Constante pour la broche 3
    int sensMotA=12; // Constante pour la broche 12
    int vitesseMotB=11; // Constante pour la broche 11
    int sensMotB=13; // Constante pour la broche 13
    
    // --- Déclaration des constantes des broches analogiques ---
    
    int axe1Joystick=16; // Constante pour la broche 16
    int axe2Joystick=17; // Constante pour la broche 17
    int JoyStick_Z=18; // Constante pour la brocche 18
    
    // --- 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
    
    void setup()   { // debut de la fonction setup()
    
    // ------- Initialisation fonctionnalités utilisées -------  
    
    Serial.begin(115200); 
    
    // ------- Broches en sorties numériques -------  
    pinMode (vitesseMotA,OUTPUT); // Broche vitesseMotA configurée en sortie
    pinMode (vitesseMotB,OUTPUT); // Broche vitesseMotB configurée en sortie
    pinMode (sensMotA,OUTPUT); // Broche vitesseMotA configurée en sortie
    pinMode (sensMotB,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
    
    // ------- Codes d'initialisation utile -------  
    digitalWrite(vitesseMotA,LOW); // a l'arret
    digitalWrite(sensMotA,LOW); 
    digitalWrite(vitesseMotB,LOW); // à l'arret 
    digitalWrite(sensMotB,LOW); 
    
    } 
    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>0) {
      digitalWrite(vitesseMotA,HIGH);
      digitalWrite(sensMotA,HIGH);
    }
    else if (positionAxe1<0) {
      digitalWrite(vitesseMotA,HIGH);
      digitalWrite(sensMotA,LOW);
    }
    else if (positionAxe2>0) { 
      digitalWrite(vitesseMotB,HIGH);
      digitalWrite(sensMotB,HIGH);
    }
    else if (positionAxe2<0) {
       digitalWrite(vitesseMotB,HIGH);
       digitalWrite(sensMotB,LOW);
    } 
    else if (analogRead(JoyStick_Z)) {
       digitalWrite(vitesseMotA,LOW);
       digitalWrite(vitesseMotB,LOW);
    } 
    else {
    digitalWrite(vitesseMotA,LOW);  // turn motor off when between points
    digitalWrite(vitesseMotB,LOW);  // turn motor off when between points
    }
    
    }

  20. #19
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    //----- lecture position Joytstick
    positionAxe1=analogRead(axe1Jo ystick);
    positionAxe2=analogRead(axe2Jo ystick);

    positionaxe1 et position axe2 vont être >0 quelle que soit la position du joystick.
    Documente-toi un peu sur analogRead.
    Il faut faire à la suite une instruction map pour chaque positionAxe.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  21. #20
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    J'ai modifié comme suit

    Code:
    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
    
    if (positionAxe1>700) // Joystick right
    {  digitalWrite(vitesseMotA,HIGH);
      digitalWrite(sensMotA,HIGH);
    }
    else if (positionAxe1<300) // Joystick left
    {  digitalWrite(vitesseMotA,HIGH);
      digitalWrite(sensMotA,LOW);
    }
    else if (positionAxe2>700) // Joystick left
    {  digitalWrite(vitesseMotB,HIGH);
      digitalWrite(sensMotB,HIGH);
    }
    else if (positionAxe2<300) // Joystick left
    {   digitalWrite(vitesseMotB,HIGH);
       digitalWrite(sensMotB,LOW);
    } 
    else if (analogRead(JoyStick_Z)) // Joystick Button STOP
    {   digitalWrite(vitesseMotA,LOW);
       digitalWrite(vitesseMotB,LOW);
    } 
    else if (positionAxe1>300) && (positionAxe1<700)
    {digitalWrite(vitesseMotA,LOW);  // turn motor off when between points
    } 
    else if (positionAxe2>300) && (positionAxe2<700)
    {digitalWrite(vitesseMotB,LOW);  // turn motor off when between points
    } 
    } 
    
    }
    j'ai des messages d'erreur avec
    Code:
    else if (positionAxe1>300) && (positionAxe1<700)
    {digitalWrite(vitesseMotA,LOW);  // turn motor off when between points
    } 
    else if (positionAxe2>300) && (positionAxe2<700)
    {digitalWrite(vitesseMotB,LOW);  // turn motor off when between points
    }

  22. #21
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    La syntaxe correcte est:
    Code:
    else if (positionAxe1>300 && positionAxe1<700)
    {digitalWrite(vitesseMotA,LOW);  // turn motor off when between points
    } 
    else if (positionAxe2>300 && positionAxe2<700)
    {digitalWrite(vitesseMotB,LOW);  // turn motor off when between points
    }
    Dernière modification par Yvan_Delaserge ; 29/11/2014 à 07h08.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  23. #22
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Salut

    J'ai corrigé le code et le bilan :
    - le bouton stop du joystick n’arrête pas les moteurs
    - parfois les moteurs tournent en position neutre et parfois non
    - parfois une direction du moteur change le sens et parfois non
    Bref l'influence du joystick semble aléatoire
    Quand je mets le code de l'axe1 seulement ou de l'axe2, c'est un peu pareil mais avec un seul moteur.
    Qu'en pensez-vous ?
    Merci

  24. #23
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Avec un multimètre, il faudrait mesurer la tension présente sur les curseurs des potentiomètres du joystick.
    Noter pour quelle tension le moteur concerné s'arrête ou se met en marche.

    Eventuellement, pour essayer de mieux cerner l'origine du problème, enlever le shield moteur et connecter des leds aux broches de sortie de l'Arduino. Voir si elles s'allument et s'éteignent comme prévu par le programme.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  25. #24
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    En mettant seulement ce code, le moteur A se lance en continu sans jamais s'arrêter

    Code:
    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
    
    if (positionAxe1>700) // Joystick right
    {  digitalWrite(vitesseMotA,HIGH);
      digitalWrite(sensMotA,HIGH);
      }
    
    }

  26. #25
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Quelle est la valeur de Positionaxe1?
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  27. #26
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    La valeur est de 512

    Est ce que cela peut être une erreur dans le setup ou dans la déclaration des constantes ?

  28. #27
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Trop beau pour être vrai. Comment obtiens-tu cette valeur?
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  29. #28
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Si je suis en position neutre normalement je suis à 512 non ?

  30. #29
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    normalement, oui. 512 est la valeur théorique. Mais en pratique elle est de combien?
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  31. #30
    Tranber72

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    en pratique je ne sais pas je n'ai pas le moyen de le savoir je n'ai pas d'écran LCD. A moins qu'il y ait un programme pour lire ces données via USB sur mon ordi

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. - Arduino commandé par Joystick -
    Par vinvin69 dans le forum Électronique
    Réponses: 224
    Dernier message: 31/12/2014, 18h31
  2. Contrôler deux moteurs pas-à-pas avec un joystick
    Par Yvan_Delaserge dans le forum Électronique
    Réponses: 26
    Dernier message: 28/07/2014, 12h35
  3. [URGENT !!!] Programmation d'un robot M3Pi et un Joystick via Arduino
    Par invitebb4a2db9 dans le forum Électronique
    Réponses: 5
    Dernier message: 10/04/2013, 16h22
  4. Arduino + L93D + 2 moteurs 6V: problème
    Par Globoeil dans le forum Électronique
    Réponses: 18
    Dernier message: 30/06/2011, 17h03
  5. commande de 2 moteurs par joystick
    Par invite9fce355b dans le forum Électronique
    Réponses: 3
    Dernier message: 17/09/2005, 10h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.