Jag har en LED-remsa som jag försöker slå på med en magnetbrytare när en dörr öppnas. Jag vill att lysdioderna lyser när jag öppnar dörren och tappar när jag stänger den, det är där Arduino kommer in. Jag använder PWM för att blekna. Jag kan få varje komponent att fungera separat. De blekande lysdioderna fungerar med MOSFET utan omkopplare. Jag testade omkopplaren med seriell utgång på Arduino och den fungerar att bleka en enda LED utan MOSFET.
Jag använder:
- Arduino Uno R3
- Magnetisk omkopplare
- N-Channel MOSFET IRLB3034
- 5 meter vit LED-remsa
- 12VDC 30W strömförsörjning
- 10k Ohm-resistorer
Min inställning ser ut så här:
Schematisk:
Kod (om det hjälper):
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); }
Jag känner att problemet är med den gemensamma marken på MOSFET och omkopplaren. Några lösningar / förslag uppskattas.
Kommentarer
- kan du slå på FET via Pin D9 kontinuerligt? Utan PWM .. När D9 är hög kan du pls mäta spänningen över avloppet och källan till NMOSFET? Kontrollera spänningen vid D2 när omkopplaren är stängd och öppnad. Mät spänningen vid D9 när utgången för D9-stiftet är hög. kan du dela detaljerna i 5 meter LED-remsa? Hur driver du på Arduino? Jag har en känsla av att problemet är med 5 meter strip LED …
- Jag förväntar mig R2, nära MOSFET, i storleksordningen 100 ohm. Du ' kör det varmt annars. Ändra även minimi- och maximumtesterna från 255 resp. 0 till 250 och 5.
- Du säger inte vilket problem du har. Vad gör den? | LED-strip kommer att strömma över ett spänningsområde nära 12V. dvs är troligen avstängd vid cirka 9V och på vid 12V. Så om spänningen på remsan är analog på grund av någon filtrering kommer den att strömma över slutdelen av PWM-intervallet. Om kretsen är som visas bör LED-remsan moduleras till och från vid PWM-frekvens. Detta BÖR fungera. Kretsen som visas ser OK ut och koden verkar OK så du kanske inte gör vad du tror att du är. Kontrollera allt. | Och vad gör det faktiskt?
- @ Som Jippie säger – MOSFET-grindmotstånd kan vara litet 100 Ohm eller till och med 10 Ohm OK. 10k som visat är förmodligen inte orsak till problem men är för stort.
- ATT ' är en FANTASTISK FET. Datablad här
Svar
Jag tycker att du borde behålla R2-motståndet, men gör det 1k och sätt ett neddragningsmotstånd på 10k framför det så att eventuella laddningar som lagras i NMOS Cgate-kapacitansen laddas ur, när det finns High-Z vid hamnen D9. Glöm aldrig motståndet som begränsar diodens framström, vilket vanligtvis är 20 mA, men du bör kontrollera det varje gång i databladet. Vid LED-remsor finns det vanligtvis interna motstånd, men om du använder högre spänning måste du fortfarande begränsa strömmen. Kan du berätta mer om varför du använder PWM inte en enkel utgångsport med en integrator till exempel och vad du exakt observerar och mäter när du slår på / av (tona-på-av) lysdioden?
simulera denna krets – Schema skapad med CircuitLab
Hur gör man diagrammet lite mindre?
Kommentarer
- Han ' driver en 12V-remsa med inre motstånd – ingen extern LED r behövs. Han ' använder PWM eftersom han vill ha en digital lösning och inte en analog.
- @lalamer För att skala skalorna på ESE måste du göra dem bredare, Jag gör detta genom att placera en punkt / segment / text till vänster och / eller höger så att den krymper hela diagrammet, fungerar bra.
- @RussellMcMahon ja du har rätt, det här är en ledremsa och det finns ett internt motstånd. Jag har uppdaterat mitt svar. Tack för att du begick.
Svar
Det finns inget behov av 10KOhm. MOSFET är spänningsstyrda enheter till skillnad från transistorer som behöver kontrollerad ström. Jag tror att ditt problem kan vara att avbryta omkopplaren. Du får antagligen några falska positiva effekter som kan göra att din programvara går fel. Jag rekommenderar att du har en liten avstängningsrutin. Till exempel – bara om du hittar tre på varandra följande positiva kommer omkopplarpressen att kallas en verklig positiv eller så.
Kommentarer
- När switch ses som aktiv gör den en åtgärd och fördröjer sedan 30 mS innan han testar igen så att han effektivt har 30 mS debounce.
- Det är bra att ha ett motstånd i serie med grind för att begränsa startströmmen. Kom ihåg att MOSFETs grind fungerar som en kondensator och måste laddas / urladdas.
- För att uppnå detta bör du ansluta porten till MOSFET till GND (i fallet med NMOS). Detta kommer att ladda ut MOSFET-portens kapacitans snabbt. Du bör aldrig lämna en grind flytande eftersom den är känslig för buller och kan slå på och orsaka mycket skada. Dra alltid ner NMOS-grinden.