Projet 2 moteurs cc 1 joystick arduino rev3 - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 46 sur 46

Projet 2 moteurs cc 1 joystick arduino rev3



  1. #31
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3


    ------

    Il y a ça dans les exemples Arduino:
    Code:
    /*
      ReadAnalogVoltage
      Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.
      Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
     
     This example code is in the public domain.
     */
    
    // the setup routine runs once when you press reset:
    void setup() {
      // initialize serial communication at 9600 bits per second:
      Serial.begin(9600);
    }
    
    // the loop routine runs over and over again forever:
    void loop() {
      // read the input on analog pin 0:
      int sensorValue = analogRead(A0);
      // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
      float voltage = sensorValue * (5.0 / 1023.0);
      // print out the value you read:
      Serial.println(voltage);
    }
    Il faut changer dans le programme le numéro de la pin sur laquelle l'Arduino doit lire le voltage.

    -----
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  2. #32
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    ok mais je pourrai lire le voltage à quel endroit sur mon PC ?

    Merci

  3. #33
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    ReadAnalogVoltage
    Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.


    Tu lances le serial monitor depuis l'utilitaire de programmation Arduino.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  4. #34
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Salut

    j'ai fait le test.Il semblerait que les données soient instables comme lorsque je teste avec le moteur
    PArfois en position neutre cela se situe entre 500 et 530 sur les deux axes (donc plutot juste)
    et tout à coup cela peut passer à 0 sur les deux ou à 1023 sur les deux sans que je ne fasse rien (d'où les réponses anarchiques des moteurs)
    Lorsque je vais dans les postions X et Y extrêmes les données sont stables donnent des valeurs logiques. Si je relache d'un coup le joystick elles vont passer à 0 ou à 1023 et si je reviens progressivement cela se situe entre 500 et 530...
    Cela pourrait il être mes câbles ?

    Merci

  5. #35
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Tu as donc trouvé l'origine du problème. L'arduino fournit un signal incorrect aux moteurs parce qu'il reçoit lui-même un signal incorect.
    Garbage in garbage out (GIGO)

    Il doit y avoir un faux contact quelque part. Ou alors le joystick est nase. Essaie de le remplacer par un potentiomètre pour voir.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  6. #36
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    ok dois-je modifier le code pour la retranscription au serial monitor ?

  7. #37
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Je commencerais par m'intéresser au joystick avec un multimètre.
    Si tu branches le potentiomètre d'essais de la même manière que le joystick, il n'y a pas de raison de modifier le programme.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  8. #38
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Pour les mesures avec multimètre quelles sont les mesures les plus importantes à prendre ?

  9. #39
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Nom : POTENTIO.gif
Affichages : 109
Taille : 12,4 Ko

    La tension entre le curseur et la masse.

    NB: Dans le joystick, il y a deux potentiomètres. Faire la mesure pour chacun des deux et simultanément voir si ça correspond avec ce que l'Arduino lit sur ses deux entrées.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  10. #40
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Salut
    j'ai pris les mesures cela semble correspondre c'est à dire une fluctuence avec de la stabilité par moments et de l'anarchie à d'autres sans que je touche à quoi que ce soit

  11. #41
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Un faux contact?

    Ou alors ton portable dans ta poche qui parasite le circuit lorsqu'il passe en émission?
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  12. #42
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Salut

    Pour ceux que ça intéresse, cela ne dépendait pas de mes branchements mais de mon code. J'ai trouvé la solution et voici le code qui marche !

    Code:
    const byte PIN_VITESSE_MOTEUR_A = 3;
    const byte PIN_SENS_MOTEUR_A    = 12;
    const byte PIN_FREIN_MOTEUR_A   = 9;
    const byte PIN_VITESSE_MOTEUR_B = 11;
    const byte PIN_SENS_MOTEUR_B    = 13;
    const byte PIN_FREIN_MOTEUR_B   = 8;
    
    const byte PIN_JOYSTICK_X = A2;
    const byte PIN_JOYSTICK_Y = A3;
    const byte PIN_JOYSTICK_Z = A4; // Bouton, pas potentiomètre /!\
    
    
    
    
    // Variables "axe1Joystick" et "axe2Joystick": pas besoin d'avoir des variables globales
    
    
    void setup() {
    
      Serial.begin(115200); 
    
      pinMode(PIN_VITESSE_MOTEUR_A, OUTPUT);
      digitalWrite(PIN_VITESSE_MOTEUR_A, LOW);
    
      pinMode(PIN_VITESSE_MOTEUR_B, OUTPUT);
      digitalWrite(PIN_VITESSE_MOTEUR_B, LOW);
    
      pinMode(PIN_SENS_MOTEUR_A, OUTPUT);
      digitalWrite(PIN_SENS_MOTEUR_A, LOW); 
    
      pinMode(PIN_SENS_MOTEUR_B, OUTPUT);
      digitalWrite(PIN_SENS_MOTEUR_B, LOW); 
    
      pinMode(PIN_FREIN_MOTEUR_A, OUTPUT);
      digitalWrite(PIN_FREIN_MOTEUR_A, LOW); 
      
      pinMode(PIN_FREIN_MOTEUR_B, OUTPUT);
        digitalWrite(PIN_FREIN_MOTEUR_B, LOW);
    
      pinMode(PIN_JOYSTICK_Z, INPUT_PULLUP); // L'activation de la résistance de tirage est obligatoire pour le bouton poussoir en Z sinon les valeurs lues seront aléatoires.
    
    
    }
    
    void loop() {
    
      int joystickX = analogRead(PIN_JOYSTICK_X); 
      int joystickY = analogRead(PIN_JOYSTICK_Y);
    
    
    
      byte joystickZ = digitalRead(PIN_JOYSTICK_Z);
    
      if (joystickZ == LOW) {   
    
        // Si le bouton Z est actif les moteurs sont éteints
        digitalWrite(PIN_VITESSE_MOTEUR_A, LOW);
        digitalWrite(PIN_VITESSE_MOTEUR_B, LOW);
    
      } 
      else { // Sinon, si le bouton Z n'est pas actif
    
        if (joystickX > 700) {  
    
          // Si la valeur X est strictement supérieur à 700 le moteur A avance
          digitalWrite(PIN_VITESSE_MOTEUR_A, HIGH);
          digitalWrite(PIN_SENS_MOTEUR_A, HIGH);
    
        } 
        else if (joystickX < 300) {  
    
          // Sinon si la valeur X est strictement inférieur à 300 le moteur A recule
          digitalWrite(PIN_VITESSE_MOTEUR_A, HIGH);
          digitalWrite(PIN_SENS_MOTEUR_A, LOW);
    
        } 
        else {
    
          // Sinon si la valeur X est comprise entre 300 et 700 (bornes inclusent) le moteur A ne bouge pas
          digitalWrite(PIN_VITESSE_MOTEUR_A, LOW);
        }
    
        if (joystickY > 700) {  
    
          // Si la valeur Y est strictement supérieur à 700 le moteur B avance
          digitalWrite(PIN_VITESSE_MOTEUR_B, HIGH);
          digitalWrite(PIN_SENS_MOTEUR_B, HIGH);
    
        } 
        else if (joystickY < 300) {   
    
          // Sinon si la valeur Y est strictement inférieur à 300 le moteur B recule
          digitalWrite(PIN_VITESSE_MOTEUR_B, HIGH);
          digitalWrite(PIN_SENS_MOTEUR_B, LOW);
    
        } 
        else {
    
          // Sinon si la valeur Y est comprise entre 300 et 700 (bornes inclusent) le moteur B ne bouge pas
          digitalWrite(PIN_VITESSE_MOTEUR_B,LOW); 
        } 
      }
    
    }

  13. #43
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    C'était quoi l'erreur?
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  14. #44
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    la façon de programmer le bouton poussoir Z

  15. #45
    Yvan_Delaserge

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    Tu veux dire qu'il n'y avait pas de pullup dans le shield joystick, donc ça captait tout ce qui passait au voisinage?

    Normalement, on câble une résistance de pullup de 10 K entre la borne d'entrée et le + Vcc. Lorsque le bouton est pressé, la broche est mise à 0. Mais on peut aussi dire à l'Arduino d'utiliser une résistance de pullup interne.

    C'est ce que tu as fait dans cette instruction:
    Code:
    pinMode(PIN_JOYSTICK_Z, INPUT_PULLUP); // L'activation de la résistance de tirage est obligatoire pour le bouton poussoir en Z sinon les valeurs lues seront aléatoires.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  16. #46
    invite3203bcfe

    Re : Projet 2 moteurs cc 1 joystick arduino rev3

    oui c'est ça !

    Merci pour ton aide et tes réponses en tout cas

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. - Arduino commandé par Joystick -
    Par invite2f313dba dans le forum Électronique
    Réponses: 224
    Dernier message: 31/12/2014, 19h31
  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, 13h35
  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, 17h22
  4. Arduino + L93D + 2 moteurs 6V: problème
    Par invite8486faf6 dans le forum Électronique
    Réponses: 18
    Dernier message: 30/06/2011, 18h03
  5. commande de 2 moteurs par joystick
    Par invite9fce355b dans le forum Électronique
    Réponses: 3
    Dernier message: 17/09/2005, 11h49
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...