Ich habe einen LED-Streifen, den ich beim Öffnen einer Tür mit einem Magnetschalter einschalten möchte. Ich möchte, dass die LEDs beim Öffnen der Tür aufleuchten und beim Schließen abblenden. Hier kommt der Arduino ins Spiel. Ich verwende PWM für das Ausblenden. Ich kann jede Komponente separat arbeiten lassen. Die Fading-LEDs arbeiten mit dem MOSFET ohne Schalter. Ich habe den Switch mit seriellem Ausgang am Arduino getestet und er funktioniert beim Ausblenden einer einzelnen LED ohne MOSFET.
Ich verwende:
- Arduino Uno R3
- Magnetschalter
- N-Kanal-MOSFET IRLB3034
- 5 Meter weißer LED-Streifen
- 12VDC 30W Netzteil
- 10k Ohm Widerstände
Mein Setup sieht folgendermaßen aus:
Schema:
Code (wenn es hilft):
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); }
Ich habe das Gefühl, das Problem liegt in der gemeinsamen Masse des MOSFET und des Schalters. Alle Lösungen / Vorschläge sind willkommen.
Kommentare
- Können Sie den FET über Pin D9 kontinuierlich einschalten? Ohne PWM. Wenn D9 hoch ist, können Sie bitte die Spannung zwischen Drain und Source des NMOSFET messen? Überprüfen Sie die Spannung an D2, wenn der Schalter geschlossen und geöffnet ist. Messen Sie die Spannung an D9, wenn der Ausgang des D9-Pins hoch ist. Können Sie die Details des 5-Meter-LED-Streifens teilen? Wie schaltest du den Arduino an? Ich habe das Gefühl, dass das Problem bei der 5-Meter-Streifen-LED liegt …
- Ich würde R2 in der Nähe des MOSFET in der Größenordnung von 100 Ohm erwarten. Sie ‚ fahren es sonst heiß. Ändern Sie auch die minimalen und maximalen Tests von 255 resp. 0 bis 250 und 5.
- Sie sagen nicht, welches Problem Sie haben. Was tut es? | Der LED-Streifen wird über einen Spannungsbereich nahe 12 V eingeschaltet. dh ist wahrscheinlich bei ungefähr 9V aus und an bei 12V. Die ZF-Spannung am Streifen ist also analog, da die Filterung über den Endteil des PWM-Bereichs erfolgt. Wenn der Stromkreis wie gezeigt ist, sollte der LED-Streifen mit der PWM-Frequenz ein- und ausgeschaltet werden. Das sollte funktionieren. Die gezeigte Schaltung sieht in Ordnung aus und der Code scheint in Ordnung zu sein, sodass Sie möglicherweise nicht das tun, was Sie zu sein glauben. Überprüfen Sie alles. | Und was macht es eigentlich?
- @ Wie Jippie sagt – MOSFET-Gate-Widerstand kann klein sein 100 Ohm oder sogar 10 Ohm OK. 10k wie gezeigt ist wahrscheinlich keine Ursache für Probleme, aber zu groß.
- Das ‚ ist ein großartiger FET. Datenblatt hier
Antwort
Ich denke, Sie sollten den R2-Widerstand behalten, aber 1k machen und einen Pulldown-Widerstand von 10k davor stellen, damit alle in der NMOS Cgate-Kapazität gespeicherten Ladungen entladen werden, wenn High-Z vorhanden ist am Hafen D9. Vergessen Sie auch niemals den Widerstand, der den Durchlassstrom der Diode begrenzt, der normalerweise 20 mA beträgt. Sie sollten dies jedoch jedes Mal im Datenblatt überprüfen. Im Falle eines LED-Streifens gibt es normalerweise interne Widerstände, aber wenn Sie immer noch eine höhere Spannung verwenden, müssen Sie den Strom begrenzen. Können Sie uns mehr darüber erzählen, warum Sie PWM verwenden, beispielsweise keinen einfachen Ausgangsport mit einem Integrator, und was Sie genau beobachten und messen, wenn Sie die LED ein- und ausschalten (ein- und ausschalten)?
simuliert diese Schaltung – Schema erstellt mit CircuitLab
Wie wird das Diagramm etwas kleiner?
Kommentare
- Er ‚ treibt einen 12-V-Streifen mit internen Widerständen an – keine externe LED r erforderlich. Er ‚ verwendet PWM, weil er eine digitale und keine analoge Lösung wünscht.
- @lalamer Um die Diagramme auf ESE zu skalieren, müssen Sie sie breiter machen. Ich mache das, indem ich einen Punkt / ein Segment / einen Text nach links und / oder rechts platziere, damit das gesamte Diagramm verkleinert wird. Das funktioniert gut.
- @RussellMcMahon Ja, Sie haben Recht, dies ist ein LED-Streifen und es gibt ihn ein interner Widerstand. Ich habe meine Antwort aktualisiert. Vielen Dank für Ihr Engagement.
Antwort
10KOhm sind nicht erforderlich. MOSFETs sind spannungsgesteuerte Bauelemente im Gegensatz zu Transistoren, die geregelten Strom benötigen. Ich denke, Ihr Problem könnte darin bestehen, den Schalter zu entprellen. Wahrscheinlich erhalten Sie einige Fehlalarme, die dazu führen können, dass Ihre Software schief geht. Ich empfehle eine kleine Entprellroutine. Zum Beispiel – nur wenn Sie 3 aufeinanderfolgende Positive finden, wird die Schalterpresse als echtes Positiv oder so bezeichnet.
Kommentare
- Wenn der Schalter als aktiv angesehen wird, führt er eine Aktion aus und verzögert dann 30 ms vor dem erneuten Testen, sodass er effektiv eine Entprellung von 30 ms hat.
- Es wird empfohlen, einen Widerstand in Reihe mit dem Gate zu schalten, um den Einschaltstrom zu begrenzen. Denken Sie daran, dass das Gate des MOSFET wie ein Kondensator wirkt und geladen / entladen werden muss.
- Um dies zu erreichen, sollten Sie das Gate des MOSFET mit dem gnd verbinden (im Fall von NMOS). Dadurch wird die Kapazität des MOSFET-Gates schnell entladen. Außerdem sollten Sie ein Tor niemals schweben lassen, da es störanfällig ist und sich einschalten kann, was großen Schaden verursacht. Ziehen Sie immer das NMOS-Gatter herunter.