[Programmation] [ARDUINO] Probléme bouton ( role de fin de course)
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

[ARDUINO] Probléme bouton ( role de fin de course)



  1. #1
    invite437802bf

    [ARDUINO] Probléme bouton ( role de fin de course)


    ------

    Bonjour a tous, je suis débutant sur arduino et j'ai concu mon premier programme.

    Le principe est simple, une fois que 2 bouton sont appuyés simultanément (boutonstart et boutonporte) le moteur se lance dans un sens. Une fois que le moteur est bloque (tension de surintensité) le moteur change de sens. Jusque la tout va bien. Seulement pour la suite je rencontre un probléme, j'aimerais que le programme s’arrête quant j'appuie sur le troisième bouton ( Fin de course, donc quant fin de course est appuyer le programme s’arrête ). Seulement quant j'essaie de le faire sa ne marche absolument pas.

    J'aimerais donc savoir comment faire en sorte que des que fin de course est appuyé le moteur s’arrête.
    Voici le programme :


    Code:
    // broches
    const int analogInPin = A0;
    int mota = 3;
    int motb = 4;
    int boutonStart = 2;
    int findecourse = 4;
    int boutonporte = 5;
    
    
    int seuilIntensiteBas = 495;
    int seuilIntensiteHaut = 560;
    
    // variables
    int valeur = 0;
    
    
    
    boolean surIntensiteMoteur() {
      valeur = analogRead(analogInPin);
      //Serial.print("valeur = " );
      //Serial.println(valeur);
      if (valeur > seuilIntensiteBas && valeur <  seuilIntensiteHaut)
        return false; //on est pas en surintensité. On retourne Faux
      else return true; //surintensité détectée
    }
    
    void moteur(boolean sens1, boolean marche) {
      if (!marche) { // arret moteur
        digitalWrite(mota, LOW);
        digitalWrite(motb, LOW);
      } else { // Moteur en marche
        if (sens1)  { // sens 1
          digitalWrite(mota, HIGH);
          digitalWrite(motb, LOW);
        } else { // sens 2
          digitalWrite(mota, LOW);
          digitalWrite(motb, HIGH);
        }
      }
    }
    
    
    
    
    void setup()
    {
      pinMode(mota, OUTPUT);
      pinMode(motb, OUTPUT);
      pinMode(boutonStart, INPUT);
      pinMode(boutonporte, INPUT);
    
      Serial.begin(9600);
    }
    
    void loop()
    {
    
      boolean etatBouton = digitalRead(boutonStart);
      boolean etatBoutonn = digitalRead(boutonporte);
       if (etatBouton==HIGH && etatBoutonn==HIGH)
    
        moteur(1, 1);
        //long tempsDepart = millis();
        //delay(2000);
        //while (millis() < (tempsDepart + 2000)) { //tant que on a pas patienté 2000ms (2s), on attend
           delay(40);
          if (surIntensiteMoteur()) {
          
    
          Serial.print("surintensite !");
          moteur(0,0);
          delay(1000);
          moteur(0,1); 
    // la je dois mettre que quant fin de course = 1 le moteur s'arrete
         }
    
          }
    Toute aide sera la bienvenue !

    -----
    Dernière modification par Antoane ; 05/04/2017 à 18h43. Motif: Ajout balises code

Discussions similaires

  1. Interruptions avec bouton (Arduino)
    Par invited35955f1 dans le forum Électronique
    Réponses: 61
    Dernier message: 02/05/2017, 15h42
  2. Bouton + Transistor = ON/OFF automatique Arduino ?
    Par kilouxa dans le forum Électronique
    Réponses: 36
    Dernier message: 20/02/2016, 17h44
  3. [Programmation] Problème bouton poussoir + débitmètre Arduino [Résolu]
    Par invite82939336 dans le forum Électronique
    Réponses: 62
    Dernier message: 15/11/2015, 21h52
  4. arduino, servomoteur et bouton poussoir
    Par invite6170f95c dans le forum Électronique
    Réponses: 68
    Dernier message: 22/07/2015, 13h53
  5. Problème bouton poussoir Arduino
    Par invitee61d2fc4 dans le forum Électronique
    Réponses: 8
    Dernier message: 27/04/2014, 18h07
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...