Koble en bryter og en MOSFET til en Arduino?

Jeg har en LED-stripe som jeg prøver å slå på med en magnetbryter når en dør åpnes. Jeg vil at lysdiodene skal tennes når jeg åpner døren og tenner når jeg lukker den, det er der Arduino kommer inn. Jeg bruker PWM for fading. Jeg kan få hver komponent til å fungere separat. De falmende lysdiodene fungerer med MOSFET uten bryter. Jeg testet bryteren med seriell utgang på Arduino, og den fungerer å falme en enkelt LED uten MOSFET.

Jeg bruker:

  • Arduino Uno R3
  • Magnetisk bryter
  • N-Channel MOSFET IRLB3034
  • 5 meter hvit LED stripe
  • 12VDC 30W strømforsyning
  • 10k Ohm motstander

Oppsettet mitt ser slik ut: breadboard diagram

Skjematisk: skjematisk

Kode (hvis det hjelper):

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); } 

Jeg har en følelse av at problemet er med det vanlige grunnlaget på MOSFET og bryteren. Eventuelle løsninger / forslag blir verdsatt.

Kommentarer

  • er du i stand til å slå på FET via Pin D9 kontinuerlig? Uten PWM .. Når D9 er høy, kan du måle spenningen over avløp og kilde til NMOSFET? Kontroller spenningen ved D2 når bryteren er lukket og åpnet. Mål spenningen ved D9 når utgangen til D9-pinnen er høy. kan du dele detaljene i 5 meter LED-stripe? Hvordan slår du på Arduino? Jeg har en følelse av at problemet er med 5 meter strip-LED …
  • Jeg forventer at R2, nær MOSFET, i størrelsesorden 100 ohm. Du ' vil kjøre det varmt ellers. Endre også minimums- og maksimumstestene fra 255 resp. 0 til 250 og 5.
  • Du sier ikke hvilket problem du har. Hva gjør den? | LED-stripe vil strømme opp over et spenningsområde nær 12V. dvs. er sannsynligvis av på ca 9V og på ved 12V. Så hvis spenningen på stripen er analog på grunn av filtrering, vil den slå på over slutten av PWM-området. Hvis kretsen er som vist, bør LED-stripen moduleres på og av ved PWM-frekvens. Dette SKAL fungere. Kretsen som vist ser OK ut, og koden virker OK, så du kan ikke gjøre det du tror du er. Sjekk alt. | Og hva gjør det faktisk?
  • @ Som Jippie sier – MOSFET-motstand kan være liten 100 ohm eller til og med 10 ohm OK. 10k som vist er sannsynligvis ikke årsak til problemer, men er for stor.
  • AT ' er en ENORM FET. Dataark her

Svar

Jeg synes du bør beholde R2-motstanden, men gjør den 1k og legg en mottrekksmotstand på 10k foran den, slik at eventuelle ladninger som er lagret i NMOS Cgate-kapasitansen blir utladet når det er High-Z ved havnen D9. Glem heller ikke motstanden som begrenser dioden fremoverstrøm, som vanligvis er 20 mA, men du bør sjekke det hver gang i databladet. I tilfelle LED-stripe er det vanligvis interne motstander, men hvis du fortsatt bruker høyere spenning, må du begrense strømmen. Kan du fortelle oss mer om hvorfor du bruker PWM, ikke en enkel utgangsport med for eksempel en integrator, og hva du nøyaktig observerer og måler når du slår på / av (fade-on-off) LED?

skjematisk

simulere denne kretsen – Skjematisk opprettet ved hjelp av CircuitLab

Hvordan gjør jeg diagrammet litt mindre?

Kommentarer

  • Han ' driver en 12V nominell stripe med interne motstander – ingen ekstern LED r nødvendig. Han ' bruker PWM fordi han vil ha en digital løsning og ikke en analog.
  • @lalamer For å skalere diagrammene på ESE må du gjøre dem bredere, Jeg gjør dette ved å plassere en prikk / segment / tekst til venstre og / eller høyre så den krymper hele diagrammet, fungerer bra.
  • @RussellMcMahon ja du har rett, dette er en led stripe og det er en intern motstand. Jeg har oppdatert svaret mitt. Takk for at du forpliktet deg.

Svar

Det er ikke behov for 10KOhm. MOSFET er spenningsstyrte enheter i motsetning til transistorer som trenger kontrollert strøm. Jeg tror problemet ditt kan være å avvise bryteren. Du får sannsynligvis noen falske positiver som kan få programvaren til å gå galt. Jeg anbefaler å ha en liten avregningsrutine. For eksempel – bare hvis du finner tre påfølgende positive, vil bryterpressen bli betegnet som en virkelig positiv eller så.

Kommentarer

  • Når bryteren blir sett på som aktiv, gjør den en handling og forsinker deretter 30 mS før han prøver på nytt, slik at han effektivt har 30 mS avslag. / li>
  • Det er en god praksis å ha en motstand i serie med gate for å begrense inngangsstrømmen. Husk at porten til MOSFET fungerer som en kondensator og må lades / lades ut.
  • For å oppnå dette, bør du koble porten til MOSFET til GND (i tilfelle NMOS). Dette vil raskt avlaste MOSFET-portens kapasitans. Du bør heller ikke la en port flyte, da den er utsatt for støy og kan slå på og forårsake mye skade. Trekk alltid ned NMOS-porten.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *