commander un moteur à courant continu

a marqué ce sujet comme résolu.

boujonr!! je reviens à vous après avoir éffectué des recherche au sujet recent. mon but est de commander un moteur à cc en utilisant le module HT12E-HT12D et un arduino. jai testé mon montage avec un potentiomètre connecté sur les broches PWM d’arduino, cependant j’aimerai le remplacé par un module HT12E-HT12D ensuite modifier le programme . jai modifié le programme malheureusement jusqu’ alors ça ne marche pas.

code:
const int enable = 3; const int in1 = 2; const int in2 = 4; // deux entrées analogiques utilisées const int pinDo = 0; const int pinD1 = 1;

void setup() { // put your setup code here, to run once:

1
2
3
pinMode(enable, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);

}

void loop() { // put your main code here, to run repeatedly: int valeurLue = analogWrite(pinDo);

if(vitesse > 512) { //on décale l’origine de 512 vitesse -= 512; //le moteur va dans un sens digitalWrite(in1, LOW); digitalWrite(in2, HIGH); Serial.print("+"); }

else //dans l’autre sens { //de même on décale pour que la vitesse augmente en s
vitesse = 512-vitesse; //le moteur va dans l’autre sens digitalWrite(in1, HIGH); digitalWrite(in2, LOW); Serial.print("-"); }

else //dans l’autre sens {
vitesse = 512-vitesse; //le moteur va dans l’autre sens digitalWrite(in1, HIGH); digitalWrite(in2, LOW); Serial.print("-"); } //pour rester dans l’intervalle [0;255] (sinon on est dans [0; vitesse /= 2; //envoie la vitesse vitesse/=2; analogWrite(enable, vitesse);

1
2
3
//et l'affiche
Serial.println(vitesse);
delay(50);

}

pour ce code jai utilisé un potentiometre pour donner le sens de rotation au moteur. alors j’aimerai cette fois ci utiliser un module HT12E-HT12D encodeur-écodeur respectivement associé à un émetteur et récepteur, dont le récepteur sera connecté à l’entrée de l’Arduino (pin analogique), et le moteur placé aux entrées-sorties numériques.

j’ai besoin de vos instruction pour pouvoir me rediriger.

Je te conseil de faire plus gaffe à la mise en forme de ton code comme suit :

 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
const int enable = 3;
const int in1 = 2;
const int in2 = 4;
// deux entrées analogiques utilisées 
const int pinDo = 0;
const int pinD1 = 1;

void setup() {
  // put your setup code here, to run once:

    pinMode(enable, OUTPUT);
    pinMode(in1, OUTPUT);
    pinMode(in2, OUTPUT);
    
}

void loop() {
  // put your main code here, to run repeatedly:
int valeurLue = analogWrite(pinDo);

 if(vitesse > 512)
    {
        //on décale l'origine de 512
        vitesse -= 512;
        //le moteur va dans un sens
        digitalWrite(in1, LOW);
        digitalWrite(in2, HIGH);
        Serial.print("+");
    }

 else //dans l'autre sens
    {
        //de même on décale pour que la vitesse augmente en s       
        vitesse = 512-vitesse;
        //le moteur va dans l'autre sens
        digitalWrite(in1, HIGH);
        digitalWrite(in2, LOW);
        Serial.print("-");
    }


 else //dans l'autre sens
    {    
        vitesse = 512-vitesse;
        //le moteur va dans l'autre sens
        digitalWrite(in1, HIGH);
        digitalWrite(in2, LOW);
        Serial.print("-");
    }
 //pour rester dans l'intervalle [0;255] (sinon on est dans [0;    vitesse /= 2;
    //envoie la vitesse
    vitesse/=2;
    analogWrite(enable, vitesse);

    //et l'affiche
    Serial.println(vitesse);
    delay(50);
}
+2 -0
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