Fonctions d'un transistor NPN

Bonsoir,
Dans mon dernier sujet :
Moteur à courant continu
, j'ai appris avec votre aide à faire fonctionner un petit moteur à courant continu à l'aide d'un transistor NPN. J'ai utilisé le code suivant :

int brocheMoteur = 9;


void setup() {
 
pinMode(brocheMoteur,OUTPUT);
}

void loop() {
  digitalWrite(brocheMoteur,HIGH);
  delay(1000);
  digitalWrite(brocheMoteur,LOW);
  delay(1000);

}

J'en ai donc déduit que le transistor jouait le rôle d’un interrupteur lorsque sa base recevait un courant positif : lorsque brocheMoteur est à HIGH le circuit est fermé et le courant circule du + vers le moins. d'ailleurs le circuit se ferme au niveau du GND (-) et c'est pour cette raison que le transistor est dit NPN (négatif - positif - négatif). Voilà donc ce que j'ai compris et je pense être dans le vrai.

Là où les choses se corsent pour moi c'est lorsque je mets en oeuvre l’exercice suivant du livre (l'exercice que je viens de citer fait parti des nombreux exercices du livre "Arduino pour les nuls") :

int brocheMot = 9;
int brochePotentio = A0;

int valPotar = 0;
int Vitesse =0;

void setup() {
 Serial.begin(9600);

}

void loop() {

valPotar = analogRead(brochePotentio);
Vitesse = map(valPotar,0,1023,0,255);

analogWrite(brocheMot,Vitesse);

Serial.print("porentiometre = ");
Serial.print(valPotar);
Serial.print("\t Moteur = ");
Serial.print(Vitesse);
Serial.println();
}

En fait, un potentiomètre de 10K est ajouté au premier circuit de manière indépendante.
La fonction map établie une corrélation entre la valeur du potentiomètre et la valeur de tension que la broche PWM 9 envoie à la base du transistor par "analogWrite(brocheMot,Vitesse);". En fait je voudrai bien comprendre :

  • les broches PWM transmettent bien un courant positif dont la tension est proportionnelle à une valeur comprise entre 0 et 255 ? (je pose cette question car j'ai lu qu'il y avait une histoire de fréquences avec les PWM) ;
  • Le transistor reçoit sur sa base la tension émise par la broche PWN puis la transmet au moteur ?
    mais comment est-ce possible puisqu'il est au niveau du négatif du circuit qu'il ferme ?

Bref, je n'y comprends plus rien.
Merci pour votre aide.

J'ai juste oublié de dire que le circuit fonctionne très bien ! Le potentiomètre fait varier la vitesse de rotation du moteur. C'est juste que je ne comprends pas comment le transistor à l'aide de la broche D9 peut faire augmenter ou diminuer cette vitesse.
Merci pour votre aide.

le PWM alterne entre 0 et 5V à une fréquence déterminée, et il est à 5V pendant une partie du temps et 0V l'autre partie du temps. C'est donc un peu comme dans le premier exercice mais votre transistor n'est passant que de temps en temps.

cf https://www.arduino.cc/en/Tutorial/Foundations/PWM

Merci J-M-L pour votre réponse,
Donc la broche PWM envoie bien du courant dont la tension varie entre 0 et 5V à la base du transistor NPN ?

Merci

la tension est soit 0 soit 5, elle n'est jamais à 3V par exemple
comme l'alternance se fait rapidement , votre moteur voit une "valeur moyenne" qui dépend du duty-cycle (le rapport de temps entre les moments où la pin est à 5V versus 0V)

En fait c'est la fréquence de passage de 0 à 5V ou de 5V à 0 qui fait tourner le moteur à une certaine vitesse ?
Mais dans ce cas que fait le transistor, quel incidence a t'il dans le circuit ?

Merci

le transistor fait la même chose que dans le premier exemple. quand vous mettez 5V sur la base, il conduit et le moteur est alimenté et donc tourne.

Comme vous ne mettez plus 5V 100% du temps, le moteur est alimenté que de temps en temps et donc il tourne moins vite

J-M-L.,
J'ai bien compris pour la vitesse et dans mon cas précis le transistor ne joue que le rôle d'un interrupteur.
C'est plus clair pour moi.

Merci beaucoup

exactement
comme la fréquence est élevée cependant et que le moteur a de l'inertie, vous ne le voyez pas démarrer puis s'arrêter puis démarrer puis s'arrêter puis...

Merci J-M-L,
Maintenant c'est parfaitement clair pour moi.
C'est passionnant !