Bouton qui fonctionne a moitier

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

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);


   }         
  }  
}

Édité par Coyote

+0 -0

Je m'en suis chargé pour cette fois, mais à l'avenir, essaie de penser à préciser le thème de ta question dans le titre de ton sujet, de cette manière :

[theme 1] [theme 2] [...] titre du sujet

Ça rend le suivi du forum plus simple pour tout le monde ! :)

Améliorons la validation ! - ZdS, faut bien secouer, sinon la pulpe, elle reste en bas !

+0 -0
Auteur du sujet

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);


   }
  }
 }  
}
+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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