pont H (4 mosfet)

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

Je voudrais réaliser un pont H avec des transistors pour contrôler un moteur avec mon arduino mais je n'arrive pas à faire un bon montage sur ISIS telque le programme avec arduino .

Je veux faire avec des transistors et pas avec un L293D . Quelqu'un saurait-il comment je peux faire?

+0 -0

mets un GBF en mode signal carré, que tu vas brancher sur In1 sur le schéma de eskimon, et sur une porte NOT qui elle même sera branchée sur IN2.

et tu verras que pour faire varier la vitesse, tu as juste à faire varier le rapport cyclique du GBF.

à toi de réaliser ensuite un semblant de GBF avec ton arduino.

Oui. Non. Attends, je regarde mieux et je te dis.

+0 -0

Mais ISIS tu veux faire quoi ? Le schéma il est sous tes yeux, sous ISIS tu n'as plus qu'a reproduire pour avoir ton circuit.

Pour l'Arduino remace a bien répondu. Suffit d'avoir deux broches avec leur état inversé et d'ajouter une PWM pour faire varier le tout.

Maintenant je ne répondrais plus sur ce sujet tant que tu n’écriras pas plus que deux phrases disant "j'ai besoin de ca". Je ne suis pas la pour faire tes devoirs et je n'ai pas envie de faire des efforts si tu n'en fais pas, surtout pour un sujet aussi simple a trouver sur Internet que la commande de moteur a courant continu.

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+0 -0

Maintenant je ne répondrais plus sur ce sujet tant que tu n’écriras pas plus que deux phrases disant "j'ai besoin de ca". Je ne suis pas la pour faire tes devoirs et je n'ai pas envie de faire des efforts si tu n'en fais pas, surtout pour un sujet aussi simple a trouver sur Internet que la commande de moteur a courant continu.

Eskimon

sur internet, ou dans ses cours, soit dit en passant…

Oui. Non. Attends, je regarde mieux et je te dis.

+0 -0

Sérieux tu as au moins essayer de mettre exactement le contenu de ta phrase "comment brancher porte not" dans un moteur de recherche avant de demander ici ? La porte NOT c'est la plus simple du monde des portes ! On ne sera pas la pour te tenir la main le jour de ton examen…

Édité par Eskimon

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+0 -0

@chaabani : à l'avenir, merci de faire un effort de rédaction quand tu poses une question, ainsi qu'un effort de recherche.

On sent bien que le français n'est pas ta langue maternelle, et ce n'est pas un problème, on peut s'y adapter ; mais tu dois fournir un minimum de détails concernant ce que tu souhaites faire, et ce qui te bloque.

Si tu continues à formuler ce type de question, ce sujet sera fermé.

Édité par Coyote

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

+0 -0
Auteur du sujet

bonsoir mes amis je fais ce code pour commander un moteur avec pont h (hacheur 4 qudrants mosfet) mais avec ISIS quand je veux varier la vitesse ne marche pas aidez moi s il vous plait ; int motor1Pin1 = 3;
int motor1Pin2 = 4;
int E1=6; int E2 =7; int potarPin=0; // on branche un potentiomètre sur la PIn A0

int sensorValue=0; // la valeur entre 0 et 1023 déduite de la position du potentiomètre

int outputValue=0;

void setup() { Serial.begin(9600); Serial.println("COMMANDE D'UN MOTEUR CC "); pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(E1,OUTPUT);

}

void loop() { // sensorValue = analogRead(potarPin); Serial.println("AVANT"); // outputValue = map(sensorValue, 0, 1023, 0, 255); //analogWrite(motor1Pin1,outputValue );
// Le moteur tourne dans un sens digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH); // analogWrite(E1,255); //arret du moteur delay( 3000 ); // analogWrite(motor1Pin2,outputValue ); Serial.println("STOP"); //analogWrite(motor1Pin2,outputValue );
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
delay(5000);

// Le moteur tourne dans l'autre sens Serial.println("ARRIERE"); digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);

delay( 3000 ); // Attendre 3 secondes //analogWrite(E2,255); }

+0 -1

poste ton code dans les balises code… là on voit rien. si tu en doute, voici un simple hello-world:

1
2
3
4
5
6
#include "stdio.h"
#include "stdlib.h"
int main (void){
    printf("hello world");
    return 0;
}

et maintenant je vais t'expliquer comment on fait: tu clique sur le bouton bleu qui a cette forme: <> . tu choisis C++, et tu copie-colle ton code dedans.

sinon je comprends pas trop comment tu as construit ton code, donc quand tu auras reposté ton code proprement, on verra surement mieux, et je te poserai les questions qui t'intéressent pour construire un code qui marche.

Oui. Non. Attends, je regarde mieux et je te dis.

+0 -0
Auteur du sujet
 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
int motor1Pin1 = 3;   
int motor1Pin2 = 4;    
int E1=6;
int  E2 =7;
int potarPin=0; // on branche un potentiomètre sur la PIn A0

//int sensorValue=0; // la valeur entre 0 et 1023 déduite de la position du potentiomètre

int outputValue=0; 
//int  val=0;

void setup() {
  Serial.begin(9600);
   Serial.println("COMMANDE D'UN MOTEUR CC ");
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
 pinMode(E1,OUTPUT);

}

void loop() {
    // sensorValue = analogRead(potarPin);
     Serial.println("AVANT");
       outputValue = analogRead(potarPin);
       analogWrite(motor1Pin1,outputValue );
       Serial.println(outputValue);
    // outputValue = map(sensorValue, 0, 1023, 0, 255);
        //analogWrite(motor1Pin1,outputValue );  
  // Le moteur tourne dans un sens 
 digitalWrite(motor1Pin1, LOW);   
  digitalWrite(motor1Pin2, HIGH); 
//   analogWrite(E1,255);
 //arret  du moteur
  delay( 3000 ); 
  // analogWrite(motor1Pin2,outputValue ); 
   Serial.println("STOP");
   //analogWrite(motor1Pin2,outputValue );  
 digitalWrite(motor1Pin1, LOW);  
  digitalWrite(motor1Pin2, LOW);   
  delay(5000);

  // Le moteur tourne dans l'autre sens 
   Serial.println("ARRIERE");
  digitalWrite(motor1Pin1, HIGH);  
  digitalWrite(motor1Pin2, LOW);   

  delay( 3000 ); // Attendre 3 secondes 
 //analogWrite(E2,255);
  outputValue = analogRead(potarPin);
       analogWrite(motor1Pin2,outputValue );
       Serial.println(outputValue);
}

voila mon code mais quand je fais varier la potentiometre la vitesse ne varie pas s il vous plait aidez moi

Édité par chaabani

+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