Bouton qui fonctionne a moitier

a marqué ce sujet comme résolu.

Alors voila j'avance dans mon projet mais me voila de nouveau bloqué.

J'essais de faire fonctionné le bouton dans le programme mais quand j'essais de le passé a l'etat bas en appuyant dessus rien ne se passe par contre l'état Haut fonctionne …

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <Stepper.h>

const int stepsPerRevolution = 48;  

Stepper variateur(stepsPerRevolution, 12,13); 

const int relais1 = 2; // relais pour les pulsations 
const int relais2 = 4; // relais pour le moteur de droite
const int relais3 = 5; // relais pour le moteur de gauche
const int relais4 = 6; // relais pour la mise sous tension
const int bouton = 7;  // bouton de mise en marche

const int pwmA = 3;
const int pwmB = 11;
const int dirA = 12;
const int dirB = 13;
char i;

int etatbouton = 0;

void setup() {

  pinMode(relais1, OUTPUT);
  pinMode(relais2, OUTPUT);
  pinMode(relais3, OUTPUT);
  pinMode(relais4, OUTPUT);
  pinMode(bouton, INPUT_PULLUP);


  digitalWrite(relais1,HIGH);
  digitalWrite(relais2,LOW);
  digitalWrite(relais3,HIGH);
  digitalWrite(relais4,HIGH);

  pinMode(pwmA, OUTPUT);
  pinMode(pwmB, OUTPUT);

  digitalWrite(pwmA, HIGH);
  digitalWrite(pwmB, HIGH);

  Serial.begin(9600);
  Serial.println("     ");
  Serial.println("Combien de temps?");
}

void loop() {


  etatbouton = digitalRead(bouton);


  if (Serial.available() > 1) {   
  int count = Serial.parseInt();
  Serial.println(count);  
  Serial.println("Mise sous tension");
  digitalWrite(relais4,LOW);
  delay(500);
  Serial.println("En marche");
  digitalWrite(relais3,LOW);//mise en marche de la fonction torcadage
  delay(1000);
  digitalWrite(relais1,LOW);//mise en marche des moteurs
  Serial.println("Accelration");
  variateur.setSpeed(25);
  variateur.step(45);

  delay(count); // on balance le temps qu'on a recu dans delay

Serial.println("Freinage");
        variateur.setSpeed(25);
       variateur.step(-45);



         if (etatbouton == LOW) {
          Serial.print("non");

        }

        else {
          Serial.print("ok");
          digitalWrite(relais1,HIGH);
          digitalWrite(relais4,HIGH);


   }         
  }  
}
+0 -0

Désolé Coyote, je suis pas habituer a se genre de système de forum.

Sinon j'ai trouver la solution a mon soucis je poste le code des fois que sa puisse aider quelque'un:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <Stepper.h>

const int stepsPerRevolution = 48;

Stepper variateur(stepsPerRevolution, 12,13);

const int relais1 = 2; // relais pour les pulsations
const int relais2 = 4; // relais pour le moteur de droite
const int relais3 = 5; // relais pour le moteur de gauche
const int relais4 = 6; // relais pour la mise sous tension
const int bouton = 7;  // bouton de mise en marche

const int pwmA = 3;
const int pwmB = 11;
const int dirA = 12;
const int dirB = 13;
char i;

int etatbouton = 0;

void setup() {

    pinMode(relais1, OUTPUT);
    pinMode(relais2, OUTPUT);
    pinMode(relais3, OUTPUT);
    pinMode(relais4, OUTPUT);
    pinMode(bouton, INPUT_PULLUP);


    digitalWrite(relais1,HIGH);
    digitalWrite(relais2,LOW);
    digitalWrite(relais3,HIGH);
    digitalWrite(relais4,HIGH);

    pinMode(pwmA, OUTPUT);
    pinMode(pwmB, OUTPUT);

    digitalWrite(pwmA, HIGH);
    digitalWrite(pwmB, HIGH);

    Serial.begin(9600);
    Serial.println("     ");
    Serial.println("Combien de temps?");
}

void loop() {


    etatbouton = digitalRead(bouton);


    if (Serial.available() > 1) {
        int count = Serial.parseInt();
        Serial.println(count);
        Serial.println("Mise sous tension");
        digitalWrite(relais4,LOW);
        delay(500);
        Serial.println("En marche");
        digitalWrite(relais3,LOW);//mise en marche de la fonction torcadage
        delay(1000);
        digitalWrite(relais1,LOW);//mise en marche des moteurs
        Serial.println("Accelration");
        variateur.setSpeed(25);
        variateur.step(45);

        delay(count); // on balance le temps qu'on a recu dans delay

        Serial.println("Freinage");
        variateur.setSpeed(25);
        variateur.step(-45);

        while (etatbouton != LOW) {

        etatbouton = digitalRead(bouton);

        if (etatbouton == LOW) {
        digitalWrite(relais1,HIGH);
        digitalWrite(relais4,HIGH);
        Serial.println("Arret");

        }

        else {

        digitalWrite(relais1,LOW);
        digitalWrite(relais4,LOW);


   }
  }
 }  
}
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte