Connecter un switch et un MOSFET à un Arduino?

Jai une bande LED que jessaie dallumer avec un interrupteur magnétique lorsquune porte souvre. Je veux que les LED séteignent lorsque jouvre la porte et séteignent lorsque je la ferme, cest là que lArduino entre en jeu. Jutilise PWM pour la décoloration. Je peux faire fonctionner chaque composant séparément. Les LED de décoloration fonctionnent avec le MOSFET sans interrupteur. Jai testé le commutateur avec sortie série sur lArduino et il fonctionne en atténuant une seule LED sans le MOSFET.

Jutilise:

  • Arduino Uno R3
  • Commutateur magnétique
  • N-Channel MOSFET IRLB3034
  • Bande LED blanche de 5 mètres
  • Alimentation 12VDC 30W
  • Résistances 10k Ohms

Ma configuration ressemble à ceci: schéma de la maquette

Schéma: schéma

Code (si cela aide):

const int buttonPin = 2; // the number of the switch pin const int ledPin = 9; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the switch status int brightness = 0; int fadeAmount = 5; void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop(){ // read the state of the switch value: buttonState = digitalRead(buttonPin); // check if the switch is ON. // if it is, the buttonState is LOW: if (buttonState == LOW) { // fade LED on: analogWrite(ledPin, brightness); if (brightness < 255) { brightness = brightness + fadeAmount; } } else { // fade LED off: analogWrite(ledPin, brightness); if (brightness > 0) { brightness = brightness - fadeAmount; } } delay(30); } 

Jai le sentiment que le problème vient du terrain dentente sur le MOSFET et le commutateur. Toutes les solutions / suggestions sont appréciées.

Commentaires

  • pouvez-vous activer le FET via la broche D9 en continu? Sans PWM .. Lorsque D9 est élevé, pouvez-vous mesurer la tension à travers le drain et la source du NMOSFET? Vérifiez la tension à D2 lorsque linterrupteur est fermé et ouvert. Mesurez la tension à D9 lorsque la sortie de la broche D9 est élevée. pouvez-vous partager les détails de la bande LED de 5 mètres? Comment allumez-vous lArduino? Jai le sentiment que le problème vient de la bande LED de 5 mètres …
  • Je mattendrais à ce que R2, près du MOSFET, soit de lordre de 100 ohms. Sinon, vous ‘ le chaufferez. Modifiez également les tests minimum et maximum de 255 resp. 0 à 250 et 5.
  • Vous ne dites pas quel problème vous rencontrez. Quest ce que ça fait? | La bande LED sallumera sur une plage de tension proche de 12V. cest-à-dire est probablement éteint à environ 9V et allumé à 12V. Ainsi, la tension IF sur la bande est analogique en raison de tout filtrage quelle alimentera sur la partie terminale de la plage PWM. Si le circuit est tel quillustré, la bande de LED doit moduler en marche et en arrêt à la fréquence PWM. Cela DEVRAIT fonctionner. Le circuit comme indiqué semble correct et le code semble correct, donc vous ne faites peut-être pas ce que vous pensez être. Vérifiez tout. | Et, quest-ce que ça fait?
  • @Comme le dit Jippie – La résistance de grille MOSFET peut être petite de 100 Ohms ou même 10 Ohms OK. 10k comme indiqué nest probablement pas la cause de problèmes mais est trop grand.
  • THat ‘ est un FET IMPRESSIONNANT. Fiche technique ici

Réponse

Je pense que vous devriez garder la résistance R2, mais faites-la 1k et placez-la devant une résistance pull-down de 10k pour que toutes les charges stockées dans la capacité NMOS Cgate soient déchargées, chaque fois quil y a High-Z au port D9. Noubliez pas non plus la résistance limitant le courant direct de la diode, qui est généralement de 20 mA, mais vous devez le vérifier à chaque fois dans la fiche technique. Dans le cas dune bande LED, il y a généralement des résistances internes, mais si vous utilisez une tension plus élevée, vous devez quand même restreindre le courant. Pourriez-vous nous en dire plus sur les raisons pour lesquelles vous utilisez PWM et non un simple port de sortie avec un intégrateur par exemple et ce que vous observez et mesurez exactement lorsque vous allumez-éteignez (fondu-marche-arrêt) la LED?

schéma

simuler ce circuit – Schéma créé à laide de CircuitLab

Comment rendre le schéma un peu plus petit?

Commentaires

  • Il ‘ pilote une bande de 12 V avec résistances internes – aucune LED externe nest nécessaire. Il ‘ utilise PWM parce quil veut une solution numérique et non analogique.
  • @lalamer Pour mettre à léchelle les diagrammes sur ESE, vous devez les élargir, Je fais cela en plaçant un point / segment / texte à gauche et / ou à droite pour réduire tout le diagramme, fonctionne bien.
  • @RussellMcMahon oui vous avez raison, cest une bande led et il y a une résistance interne. Jai mis à jour ma réponse. Merci de votre engagement.

Réponse

Il ny a pas besoin du 10KOhm. Les MOSFET sont des dispositifs contrôlés en tension contrairement aux transistors qui nécessitent un courant contrôlé. Je pense que votre problème est peut-être lié à la suppression du commutateur. Vous obtenez probablement des faux positifs qui pourraient faire mal tourner votre logiciel. Je recommande davoir une petite routine anti-rebond. Par exemple – ce nest que si vous trouvez 3 positifs successifs que la pression du commutateur sera qualifiée de vrai positif ou plus.

Commentaires

  • Lorsque le commutateur est considéré comme actif, il effectue une action, puis retarde de 30 mS avant de retester pour quil ait effectivement un anti-rebond de 30 mS.
  • Il est recommandé davoir une résistance en série avec la grille pour limiter le courant dappel. Noubliez pas que la porte du MOSFET agit comme un condensateur et doit être chargée / déchargée.
  • Pour y parvenir, vous devez connecter la grille du MOSFET au gnd (dans le cas du NMOS). Cela déchargera rapidement la capacité de la grille du MOSFET. De plus, vous ne devez jamais laisser un portail flottant car il est sensible au bruit et peut sallumer et causer beaucoup de dégâts. Ouvrez toujours la porte NMOS.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *