Mon objectif est , grâce à un Arduino Nano, un transistor NPN et un MOSFET canal P, de faire varier la tension en sortie du MOSFET pour éventuellement faire varier la vitesse d'un moteur.
Datasheet MOSFET canal P IRF9530NPBF : https://docs.rs-online.com/519d/0900766b8079118a.pdf.
Pour faire varier cette vitesse, j'utilise un potentiomètre classique et je renvoie cette donné en PWM broche D9 sur mon NPN.
Lorsque je mets mon voltmètre a la sortie de mon NPN ça marche parfaitement : la tension varie entre 0 et 12V sans soucis, mais lorsque que je dispose mon voltmètre au drain de mon MOSFET P, la tension reste fixe a 12V lorsque PWM > 0 et à 0V lorsque mon PWM = 0 .
Avez vous une idée du problème ?
Je vous remercie par avance pour votre aide
Merci et bonne journée !
J'allais justement éditer ce point
En effet je viens de remarquer que lorsque mon potar est a 0% (donc 0 = PWM), le tension de sortie est nul (0V) et lorsque qu'il est au-dessus de 0% (PWM > 0), la tension de sortie est fixe a 12V .
Merci de ta réponse, mais je ne suis pas bien sur de comprendre, étant donné que j'envoie un PWM, le signal devrait être passant non-passant passant etc. et donc mon voltmètre fait une moyenne pour obtenir une tension "continue" ?
Merci de m'avoir répondu, a la base c'est mon arduino qui envoie un PWM.
Je viens de test en "statique", lorsque je branche R15 au +5V j'ai bien une tension de 12V en drain de MOSFET et de 0V lorsque je branche a la masse R15
Plus sérieusement, je sais pas trop comment ça fonctionne mais c'est ce que j'ai cru comprendre car lorsque que je regarde la sortie du NPN (désolé pour les mauvais termes) cad l'entré du gate de mon MOSFET, j’obtiens une valeur qui varie entre 0 et 12V en fonction de ma rotation avec le potentiomètre (5.5V par exemple) je suppose qu'il fait une sorte de moyenne sur un temps donnée ?
J'ai pas d'oscilloscope ;((((
Même resultat , le moteur va instantanément a la vitesse max
Donc le câblage est bon n'a pas de grosse erreur, c'est un point réglé.
On incrimine maintenant la commande du NPN.
Mais quelle est-elle ?
Où est le schéma des connexions, même tracé manuellement sur une feuille de papier (trais tirés à la règle, merci) et scanné ?
Où est le code du programme ?
Désolé, mais nous ne pratiquons pas la transmission de pensée, il nous faut des choses à lire.
N'aurais-tu pas oublié de lire le message d'accueil ?
Désolé, je l'ai lu rapidement mais je ne pensais pas que le code était nécessaire étant donné que le circuit fonctionne jusqu’à l'entrée du gate. Mais le voici :
#include <arduino.h>
#define TRANSISTOR_PIN 9
#define POTENTIOMETER_PIN A0
/*----------Variable-------------*/
int valeurPotentiometre = 0;
unsigned char valeurPWM = 0;
/*-------------------------------*/
void setup() {
Serial.begin(9600);
/*------Init Transitor------*/
pinMode(TRANSISTOR_PIN, OUTPUT); // Définir la broche transitorPin comme une sortie
/*--------------------------*/
/*------Init Potar------*/
pinMode(POTENTIOMETER_PIN, INPUT);
/*-----------------------*/
}
void loop() {
valeurPotentiometre = analogRead(POTENTIOMETER_PIN);
// Conversion de la valeur analogique en valeur PWM (de 0 à 255)
valeurPWM = map(valeurPotentiometre, 0, 1023, 0, 255);
// Affichage de la valeur PWM sur le moniteur série
Serial.print("Valeur Potentiometre : ");
Serial.print(valeurPotentiometre);
Serial.print(" | Valeur PWM : ");
Serial.println(valeurPWM);
// Écriture de la valeur PWM sur la broche de sortie PWM (broche 9)
analogWrite(TRANSISTOR_PIN, valeurPWM);
delay(200);
}
Mysterieux...
Si tu remplaces
"analogWrite(TRANSISTOR_PIN, valeurPWM);"
par
"digitalWrite(TRANSISTOR_PIN, HIGH);"
puis par
"digitalWrite(TRANSISTOR_PIN, LOW);"
hello
ta sortie MLI est un signal carré dont la fréquence est reglée par ton potar
le NPN est donc commandé par la MLI et finalement la reproduit à sa sortie mais en 12V
ton mosfet reçoit la dite MLI et commute à la fréquence de la MLI.
ce que tu voies avec ton voltmètre n'est pas ce que tu pourrais voir avec un oscillo.
en fonction de la vitesse d'échantillonnage (disons 20 hertz )du voltmetre, tu vas lire la moitié de tes 12V, soit 6V. ce que tu voies avant, ce sont des valeurs qui tombent aléatoirement, de 0 à 6V mais qui ne correspondent pas à grand chose.
Bonjour et merci a tous !
Je vous remercie grandement pour l’intérêt porter a mon problème
Je vais essayer de faire un joli post pour que ce soit le plus clair possible !
On va commencer par la question la plus importante :
J'ai bien vérifié, et j'ai même testé d'inverser les deux, résultat: la tension varie entre 11 et 12V
J’espère qu'en faisant cette manip je n'ai pas abimé mon MOSFET mais j'en ai un de rechange si jamais.
Avec digitalWrite(TRANSISTOR_PIN, HIGH); la tension au drain du MOSFET est à 12V.
Avec digitalWrite(TRANSISTOR_PIN, LOW); la tension au drain du MOSFET est à 0V.
(mesure effectué avec mon voltmètre car je n'ai pas d'oscillo).
Même soucis :(, c'est soit 0V soit environ 4.5~5V
Je comprends ! Je ne doute pas de tes conseils vu le nombre de fois que je t'ai vu sauver quelqu'un sur ce forum ! Ce commentaire marche aussi pour les autres, merci beaucoup
Ok, je comprends mieux pour échantillonnage merci, mais pour l'entrée du gate du MOSFET, le voltmètre me donne des valeurs assez "logique" entre 0V et 12V.
Précision : Cette manip est réalisée en statique je pense ?
Je ne pense pas qu'il y ait des problèmes de bande passante, mais puisqu'on ne comprend pas autant évacuer de manière certaine.
Sans encore parler de charge et de décharge de la capacité Cgs du mosfet au travers de la résistance R16 = 10 k, la valeur Qgs de la datasheet n'est pas inquiétante, je m'intéresse plutôt à la résistance de base du NPN.
Ce n'est réellement connu que des électroniciens analogiciens, mais il ne faut jamais saturer un NPN en excès sinon on dégrade sa bande passante.
Quand un NPN est utilisé en amplification, il est totalement interdit de le saturer.
Quand le NPN est utilisé en interrupteur comme ici, il est recommandé de saturer le strict minimum dès que l'on ne l'utilise plus en mode statique.
la datasheet donne le gain min à 1 mA HFE min = 70
le courant de collecteur est de 1,2 mA, celui de base strictement nécessaire est 17 µA.
le courant dans la base est égal à (5V - Vbe)/1k → 4,2/1000 = 4,2 mA
Le courant de base injecté est 250 fois supérieur au courant strictement nécessaire. Je ne dis pas encore que la cause est là, mais 250 fois cela fait beaucoup.
Un transistor bipolaire ne peut pas se bloquer tant qu'il n'a pas évacué les charges de conduction en excès.
Je ne dis pas que j'ai trouvé la cause, je reste prudent. Je dis que cela vaut le coup de remplacer R15 par une 10 k, ou de remplacer R16 par une 1 k.
Note :
En électronique analogique, on déclare que le transistor entre en saturation dès que la tension de collecteur est égale ou inférieure à la tension de base.