[Programmation] Fin de courses arduino
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Fin de courses arduino



  1. #1
    Warzen31

    Fin de courses arduino


    ------

    Bonjour,

    J'ai un problème avec mon projet pour le bac. Nous avons réalisé un système avec un moteur qui monte et qui descend sur support contrôlé par des boutons.
    Bon rien de mieux qu'une image pour expliquer :
    IMG_20170525_171313-iloveimg-resized.jpg

    Donc lorsque un des fin de courses est activé le moteur s'arrete. Le problème c'est qu'il est impossible de déplacer a nouveau la structure car le fin de courses est toujours activé.

    Le moteur est relié a l'arduino a l'aide d'une DFROBOT dual h-bridge v1.3. ( https://www.dfrobot.com/wiki/index.p...(SKU:_DRI0002) )

    Voici le programme:
    Code:
    int E1 = 5;
    int M1 = 4;
    int LED_Rouge = 9;
    int LED_Verte = 8;
    int Bouton_Montee = 2;
    int Bouton_Descente = 3;
    int FdC_Descente = 6;
    int FdC_Montee = 7;
    
    
    
    void setup() {
      pinMode(Bouton_Montee, INPUT); //Bouton montée
      pinMode(Bouton_Descente, INPUT); //Bouton descente
      pinMode(M1, OUTPUT); //M1
      pinMode(E1, OUTPUT); //E
      pinMode(LED_Verte, OUTPUT); //LED VERTE SENS BACK
      pinMode(LED_Rouge, OUTPUT); // LED ROUGE SENS FORWARD
      pinMode(FdC_Descente, INPUT);
      pinMode(FdC_Montee, INPUT);
       if (digitalRead(FdC_Descente) == HIGH || digitalRead(FdC_Montee) == HIGH)
      {
        digitalWrite(LED_Verte, LOW);//LED VERTE SENS BACK
        digitalWrite(LED_Rouge, LOW);// LED ROUGE SENS FORWARD
        digitalWrite(M1, LOW);//M1
        digitalWrite(E1, LOW);//E
    
    
      }
    }
    
    void loop() {
     
     
    
    //BOUTON MONTEE?
    if (digitalRead(Bouton_Montee) == HIGH)//Back direction
    {
      digitalWrite(LED_Verte, HIGH);//LED VERTE SENS BACK
      digitalWrite(M1, HIGH);//M1
      digitalWrite(E1, HIGH);//E
    }
    
    else//BOUTON DESCENTE?
    
    {
      if (digitalRead(Bouton_Descente) == HIGH )//Forward direction
      {
        digitalWrite(LED_Rouge, HIGH);// LED ROUGE SENS FORWARD
        digitalWrite(M1, LOW);//M1
        digitalWrite(E1, HIGH);//E
      }
    
      else (digitalRead(Bouton_Descente) == LOW && digitalRead(Bouton_Montee) == LOW );//ARRET
      {
        digitalWrite(LED_Verte, LOW);//LED VERTE SENS BACK
        digitalWrite(LED_Rouge, LOW);// LED ROUGE SENS FORWARD
        digitalWrite(M1, LOW);//M1
        digitalWrite(E1, LOW);//E
      }
    }
    }

    -----
    Images attachées Images attachées  
    Dernière modification par Jack ; 26/05/2017 à 09h06. Motif: remplacement par les bonnes balises

  2. #2
    DAUDET78

    Re : Fin de courses arduino

    Bonjour Warzen31 et bienvenue sur FUTURA
    Citation Envoyé par Warzen31 Voir le message
    Donc lorsque un des fin de courses est activé le moteur s'arrete. Le problème c'est qu'il est impossible de déplacer a nouveau la structure car le fin de courses est toujours activé.
    Coté câblage, comment est relié le fin de course au µC ? il y a une résistance de PullUP ?
    J'aime pas le Grec

  3. #3
    Warzen31

    Re : Fin de courses arduino

    Qu'est qu'une resistance pullUP ? J'utilise des resistances fourni avec le arduino uno. (je débute dans le domaine)

  4. #4
    Warzen31

    Re : Fin de courses arduino

    Nom : 507be711a3e855672616f1e5e5c4a9f0.jpg
Affichages : 1630
Taille : 47,5 Ko

    Les fin de course sont relié comme ça (en NC)

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

    Re : Fin de courses arduino

    Les résistances sont reliées à l'alimentation du µC ?
    Les fins de courses sont reliées au 0V du µC ?
    J'aime pas le Grec

  7. #6
    gienas
    Modérateur

    Re : Fin de courses arduino

    Bonsoir Warzen31 et tout le groupe.

    Bienvenue sur le forum.

    Citation Envoyé par Warzen31 Voir le message
    Qu'est qu'une resistance pullUP ? ...
    Comme son nom l'indique, c'est une résistance qui "tire" vers le haut, vers le plus, quand le contact est ouvert.

    Citation Envoyé par Warzen31 Voir le message
    ... Les fin de course sont relié comme ça (en NC)
    Si l'on suppose que les deux résistances sont effectivement les fameuses pull-up, elles ne tirent au plus ... que si elles sont reliées au plus.

    Là, je vois (sur le dessin) que le plus n'est pas relié. Le moins non plus d'ailleurs n'est pas relié. Faute de ces liaisons, rien ne peut fonctionner.

    C'est peut-être la signification du "en NC".


    Édit: grillé par DAUDET78, à très peu près.
    Dernière modification par gienas ; 25/05/2017 à 19h06.

  8. #7
    DAUDET78

    Re : Fin de courses arduino

    Citation Envoyé par gienas Voir le message
    grillé par DAUDET78, à très peu près.
    Un Daudet gonflé à bloc en retour de vacances !
    J'aime pas le Grec

  9. #8
    jiherve

    Re : Fin de courses arduino

    Bonjour
    Où sont testé les fin de course ?
    J'espère que le test du fin de course haut n'est exécuté que si le chariot monte et de mème pour le fin de course bas donc il est necessaire d'avoir memorisé l'etat de la machine ce qui semble absent du code.
    Par ailleurs une indentation du code le rendrait plus lisible surtout pour le concepteur car il me semble qu'il y a un loup dans les if else if else.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. Exo de physique (courses)
    Par VEROTIL dans le forum Physique
    Réponses: 4
    Dernier message: 15/03/2016, 07h45
  2. La liste des courses.
    Par bigmat11 dans le forum Électronique
    Réponses: 3
    Dernier message: 03/07/2014, 08h11
  3. comparrateur de prix courses courante
    Par invite61786235 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 22/09/2009, 14h52
  4. Sens de rotation des courses (athlétisme)?
    Par mau13 dans le forum Discussions scientifiques
    Réponses: 7
    Dernier message: 12/08/2008, 17h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.