Arduino Nano - MOSFET-module
Deze tutorial legt uit hoe u Arduino Nano gebruikt om een 12V DC-belasting te schakelen en te dimmen via een MOSFET-module. De kleine Nano zit op een breadboard en geeft alleen een 5V-signaal, terwijl de MOSFET-module de zware 12V-kant verwerkt. We leren in detail:
- Hoe u Arduino Nano aansluit op de MOSFET-module (AOD4184, LR7843 of FR120N)
- Hoe u een 12V ledstrip en een 12V voedingsadapter op de module aansluit
- Hoe u Arduino Nano programmeert om de belasting AAN/UIT te zetten en het vermogen in te stellen met PWM
Wij raden aan:
- Gebruik een relay als u een apparaat op netspanning (AC) wilt schakelen. Een MOSFET-module werkt alleen met DC-belastingen.
- Gebruik een PC817 optocoupler als u het omgekeerde wilt doen: een 12V- of 24V-signaal lezen met Arduino Nano.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de MOSFET-module
Een pin van de Arduino Nano kan maar enkele milliampère leveren bij 5V. Dat is genoeg voor een kleine led, maar niet voor een 12V ledstrip, een ventilator of een pomp. De MOSFET-module zit tussen deze twee werelden. De Nano stuurt een klein signaal en de MOSFET op de module opent of sluit het pad voor de grote 12V-stroom.
Deze ene tutorial behandelt drie modules: AOD4184 (ook verkocht als D4184), LR7843 en FR120N. Ze hebben hetzelfde boardontwerp, met dezelfde afmetingen, pinnen, bedrading en code. Alleen de MOSFET-chip op het board is anders.
| AOD4184 | LR7843 | FR120N | |
|---|---|---|---|
| MOSFET | AOD4184A (N-kanaal) | IRLR7843 (N-kanaal) | IRFR120N (N-kanaal) |
| Max. belastingsspanning (MOSFET-specificatie) | 40V DC | 30V DC | 100V DC |
| Max. stroom (MOSFET-specificatie) | 50A | 161A | 9.4A |
| Aan-weerstand RDS(on) | ongeveer 7 mΩ | ongeveer 3.3 mΩ | ongeveer 210 mΩ |
| Praktische stroom zonder koelplaat | ongeveer 10–15A | ongeveer 15A | ongeveer 2A |
| Stuursignaal | 3.3V / 5V logica, actief HIGH | 3.3V / 5V logica, actief HIGH | 3.3V / 5V logica, actief HIGH |
| Isolatie | PC817 optocoupler | PC817 optocoupler | PC817 optocoupler |
| PWM | ja, houd ≤ ~1 kHz | ja, houd ≤ ~1 kHz | ja, houd ≤ ~1 kHz |
| Type belasting | alleen DC | alleen DC | alleen DC |
Waarom kiezen voor een MOSFET-module en niet voor een relay? Hij maakt geen klikgeluid, heeft geen bewegende delen, schakelt zeer snel en gaat lang mee. Het belangrijkste is dat hij PWM ondersteunt, zodat de Nano een ledstrip kan dimmen of een ventilator kan vertragen. Een relay kan alleen AAN en UIT.
De pinout van de MOSFET-module

De module heeft twee groepen pinnen. De stuurgroep is een kleine header met 2 pinnen en een steek van 2.54mm, zodat hij direct in een breadboard naast de Nano past:
- PWM-pin: moet aangesloten worden op een PWM-geschikte pin van de Arduino Nano (D9 in deze tutorial). Deze pin ontvangt het stuursignaal
- GND-pin: moet aangesloten worden op de GND-pin van de Arduino Nano (signaalmassa)
De vermogensgroep heeft drie schroefklemmen, omdat hij de belastingsstroom voert:
- +-pin: moet aangesloten worden op de plus (+) van de voeding van de belasting, bijvoorbeeld 12V, en op de positieve draad van de belasting. Beide draden delen deze ene klem
- LOAD-pin: moet aangesloten worden op de negatieve draad van de belasting. Dit is de geschakelde kant en hij gaat naar de drain van de MOSFET
- −-pin: moet aangesloten worden op de min (−) van de voeding van de belasting
※ Notiz:
De indeling van de pinnen op een module kan per fabrikant verschillen. De labels kunnen ook een beetje veranderen tussen batches. Het is essentieel om altijd de labels te raadplegen die op de module staan gedrukt. Kijk goed!
Hoe de module werkt
Het signaal van de Nano gaat niet rechtstreeks naar de MOSFET. Het volgt dit pad: Nano-pin D9 → PWM-pin → kleine weerstand → led in de PC817 optocoupler → licht → fototransistor in de PC817 → gate van de MOSFET. Een pull-down-weerstand op de gate houdt hem op 0V zolang de optocoupler uit staat. De MOSFET zit tussen de LOAD-klem en de −-klem, en de belasting zit tussen + en LOAD.
De module reageert op drie verschillende manieren, afhankelijk van wat de Nano op de PWM-pin zet.
Geval 1: De PWM-pin is LOW (0V)
- Er stroomt geen stroom in de optocoupler, dus de led blijft donker.
- De fototransistor blijft uit. De pull-down-weerstand houdt de gate van de MOSFET op 0V.
- De MOSFET is UIT. Tussen LOAD en − gedraagt hij zich als een open schakelaar.
- De −-draad van de ledstrip heeft geen pad naar de − van de adapter, dus er stroomt geen stroom. De strip krijgt 0V en blijft donker.
- In code: digitalWrite(MOSFET_PIN, LOW) of analogWrite(MOSFET_PIN, 0).
Geval 2: De PWM-pin is HIGH (5V)
- De 5V-pin stuurt enkele mA door de led van de optocoupler. Hij licht op in de chip, waar u het niet kunt zien.
- Het licht schakelt de fototransistor in. Nu krijgt de gate van de MOSFET ongeveer de helft van de belastingsvoeding, ongeveer 6V bij een 12V-adapter.
- De MOSFET gaat volledig AAN. Hij gedraagt zich als een gesloten schakelaar met een zeer lage weerstand: enkele mΩ voor de AOD4184 en LR7843, ongeveer 0.2Ω voor de FR120N.
- De stroom loopt in een lus: adapter + → +-klem → ledstrip → LOAD-klem → MOSFET → −-klem → adapter −.
- De strip krijgt bijna de volle 12V en brandt op volle helderheid.
- In code: digitalWrite(MOSFET_PIN, HIGH) of analogWrite(MOSFET_PIN, 255).
Geval 3: De PWM-pin ontvangt een PWM-signaal
- De pin wisselt ongeveer 490 keer per seconde tussen 0V en 5V (de standaardsnelheid van analogWrite() op D9).
- De MOSFET volgt elke puls: hij is AAN tijdens elk HIGH-deel en UIT tijdens elk LOW-deel.
- De belasting ontvangt 12V-pulsen. De duty cycle (inschakelduur) is het deel van de tijd dat de pin HIGH is, en de gemiddelde spanning en het gemiddelde vermogen zijn gelijk aan de duty cycle maal de volle waarde.
- In code: analogWrite(MOSFET_PIN, value), waarbij value tussen 0 en 255 ligt en de duty cycle value / 255 is. De code in deze tutorial gaat in stappen van 10% naar 100%.
| Duty cycle | analogWrite()-waarde | Belasting is AAN | Gemiddelde spanning (12V-voeding) | Vermogen |
|---|---|---|---|---|
| 0% | 0 | nooit | 0V | uit |
| 25% | 64 | 1/4 van de tijd | ongeveer 3V | ongeveer een kwart |
| 50% | 128 | de helft van de tijd | ongeveer 6V | ongeveer de helft |
| 75% | 191 | 3/4 van de tijd | ongeveer 9V | ongeveer driekwart |
| 100% | 255 | de hele tijd | 12V | vol |
- Een ledstrip ziet er zwakker uit. Hij flikkert nog steeds, maar te snel voor het oog.
- Een ventilator, motor of pomp draait langzamer, omdat de draaiende massa de pulsen afvlakt.
- De PC817 is een traag onderdeel, dus de PWM-frequentie moet rond 500 Hz tot 1 kHz blijven. Bij een veel hogere frequentie schakelt de MOSFET niet volledig, krijgt de belasting geen zuivere pulsen en wordt de MOSFET heet. De 490 Hz van pin D9 is prima.
Nog enkele punten zijn belangrijk voor uw project:
- Geïsoleerde massa's: Signaal-GND en belastings-GND zijn op de module NIET met elkaar verbonden. De Nano-kant en de 12V-kant zijn elektrisch gescheiden door de optocoupler.
- Low-side-schakelaar: De MOSFET is een N-kanaal-type. Hij schakelt de negatieve draad van de belasting, niet de positieve draad.
- Belastingsvoeding van minstens ongeveer 6V: Zoals in Geval 2 te zien is, komt de gatespanning via een spanningsdeler uit de belastingsvoeding. Daarom moet de belastingsvoeding minstens ongeveer 6V zijn. Gebruik 9V of meer als de belasting meer dan enkele ampères trekt. De module werkt NIET goed met een belastingsvoeding van 5V, dus gebruik de 5V-pin van de Nano niet om de belasting te voeden.
- Kleine stuurstroom: De led van de optocoupler heeft maar enkele mA nodig, dus een Nano-pin kan hem rechtstreeks aansturen zonder extra transistor.
- Geen vrijloopdiode (flyback-diode) op het board: Voeg voor motoren, pompen, solenoïdes en relais (inductieve belastingen) een externe vrijloopdiode (flyback-diode) toe (bijvoorbeeld 1N5819 of 1N4007) over de belasting. De kathode (de kant met de streep) gaat naar belasting +, en de anode gaat naar belasting −.
Bedradingsschema
De Nano en de module delen maar twee draden (signaal en GND), en de 12V-adapter voedt de belastingskant via de DC-voedingsconnector, zoals hieronder getoond.

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
| Van | Naar |
|---|---|
| Arduino Nano pin D9 | MOSFET-module PWM-pin |
| Arduino Nano GND | MOSFET-module GND-pin |
| 12V-adapter + (via DC-voedingsconnector) | MOSFET-module + |
| 12V-adapter − (via DC-voedingsconnector) | MOSFET-module − |
| Ledstrip + | MOSFET-module + (dezelfde klem als adapter +) |
| Ledstrip − | MOSFET-module LOAD |
WARNING
Sluit de 12V-draden nooit aan op een pin van de Arduino Nano. De 12V gaat alleen naar de schroefklemmen van de MOSFET-module.
De MOSFET-module aansluiten op andere 12V-apparaten
De ledstrip is maar één optie. De voorbeelden hieronder tonen andere veelgebruikte 12V-belastingen. Aan de kant van de Nano verandert er niets: D9 gaat naar PWM en GND gaat naar GND. Alleen de kant met de schroefklemmen is anders. De tabel geeft een snel overzicht:
| Apparaat | Vrijloopdiode (flyback-diode) | Hoe te besturen |
|---|---|---|
| 12V ledstrip (enkele kleur) | Niet nodig | PWM (helderheid) |
| 12V DC-motor | Nodig | PWM (snelheid) |
| 12V koelventilator | Nodig | PWM (snelheid) |
| 12V waterpomp | Nodig | PWM (debiet) |
| 12V solenoïdeslot | Nodig | alleen AAN/UIT |
| 12V solenoïdeklep | Nodig | alleen AAN/UIT |
Voor elk apparaat moet de spanning van de adapter overeenkomen met de spanning van het apparaat (een 12V-apparaat heeft een 12V-adapter nodig), en moet hij minstens 6V zijn. Controleer ook hoeveel stroom het apparaat trekt. De FR120N-module is alleen geschikt voor kleine belastingen van ongeveer 2A zonder koelplaat. Kies voor grotere belastingen de AOD4184- of LR7843-module.
Dezelfde Arduino Nano-code werkt voor al deze apparaten. Gebruik voor het solenoïdeslot en de solenoïdeklep alleen HIGH en LOW (100% of 0%) in plaats van de fade.
Het bedradingsvoorbeeld met een 12V ledstrip

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
- De +-draad van de strip (vaak gemarkeerd met 12V) moet aangesloten worden op +, en de −-draad moet aangesloten worden op LOAD.
- Een ledstrip is geen spoelbelasting, dus hij heeft geen vrijloopdiode (flyback-diode) nodig.
- PWM stelt de helderheid in.
- Dit voorbeeld is alleen voor een strip met één kleur. RGB- en adresseerbare strips worden anders aangesloten. Een langere strip trekt meer stroom, dus controleer de stroom voordat u de module kiest.
Het bedradingsvoorbeeld met een 12V DC-motor

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
| Van | Naar |
|---|---|
| Motor + | MOSFET-module + |
| Motor − | MOSFET-module LOAD |
| 1N5819- of 1N4007-diode, kathode (streep) | Motor + |
| 1N5819- of 1N4007-diode, anode | Motor − |
Een motor is een spoelbelasting. De diode over de motordraden beschermt de MOSFET tegen de spanningspiek wanneer de motor uitschakelt (zie "Geen vrijloopdiode (flyback-diode) op het board" hierboven). PWM stelt de snelheid in. De module kan de motor in slechts één richting aansturen. Gebruik een motordriver zoals de L298N om de richting te veranderen, zoals in de tutorial Arduino Nano - DC Motor.
Het bedradingsvoorbeeld met een 12V koelventilator

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
- De rode draad is +, en hij moet aangesloten worden op +. De zwarte draad is −, en hij moet aangesloten worden op LOAD.
- Als de ventilator een derde draad heeft (geel, het snelheidssignaal), laat deze dan onaangesloten.
- Voeg de vrijloopdiode (flyback-diode) op dezelfde manier toe als bij de DC-motor. Hij is goedkoop en doet geen kwaad.
- PWM stelt de snelheid in. Sommige ventilatoren starten niet bij een zeer lage duty cycle, dus begin boven ongeveer 30%.
Het bedradingsvoorbeeld met een 12V waterpomp

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
- Pomp + gaat naar +, en pomp − gaat naar LOAD.
- Een pomp heeft een motor erin, dus dezelfde vrijloopdiode (flyback-diode) is nodig.
- PWM stelt het debiet in. Laat de pomp nooit droog draaien.
Het bedradingsvoorbeeld met een 12V solenoïdeslot

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
- Slot + gaat naar +, en slot − gaat naar LOAD. De spoel erin heeft ook de vrijloopdiode (flyback-diode) nodig.
- Stuur het alleen volledig AAN of volledig UIT aan. Gebruik geen PWM-dimming.
- Het slot wordt heet als het lang AAN blijft. Zet het maar kort AAN om te ontgrendelen en zet het daarna UIT.
Het bedradingsvoorbeeld met een 12V solenoïdeklep

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
Zie De beste manier om Arduino Nano en andere componenten van stroom te voorzien.
- Klep + gaat naar +, en klep − gaat naar LOAD, met de vrijloopdiode (flyback-diode) over de spoel.
- Dit is een normaal gesloten klep: volledig AAN opent de klep en UIT sluit hem.
- Gebruik alleen AAN/UIT, geen PWM.
Hoe programmeert u voor de MOSFET-module
Er is geen bibliotheek nodig. De module wordt aangestuurd met de ingebouwde Arduino-functies.
- De eerste stap is het opgeven van de pin van de Arduino Nano die is aangesloten op de PWM-pin van de module. Het moet een PWM-pin zijn (gemarkeerd met ~ op de Nano, zoals D9):
- Stel de pin in als uitgang in setup():
- Om de belasting volledig AAN of volledig UIT te zetten, is een eenvoudige digitale schrijfopdracht genoeg:
- Schrijf een PWM-waarde van 0 tot 255 om een vermogensniveau in te stellen. Het is makkelijker om in procenten te denken, dus de procentwaarde wordt omgezet met map():
Arduino Nano Code voor de MOSFET-module
De onderstaande code doet het volgende in een lus:
- Zet de belasting 2 seconden volledig AAN en daarna 2 seconden volledig UIT
- Verhoogt het vermogen van 10% naar 100% in stappen van 10%, elke 0.5 seconden één stap
- Verlaagt het vermogen op dezelfde manier van 90% terug naar 0%
- Wacht 1 seconde en begint dan opnieuw
Snelle Stappen
- Als dit de eerste keer is dat u Arduino Nano gebruikt, zie dan hoe u de omgeving voor Arduino Nano instelt in Arduino IDE.
- Sluit de componenten aan zoals in het schema getoond. Steek de 12V-adapter nog niet in het stopcontact.
- Verbind het Arduino Nano-board met uw computer via een USB-kabel.
- Open Arduino IDE op uw computer.
- Selecteer het Arduino Nano-board en de bijbehorende COM-poort.
- Kopieer de bovenstaande code en plak deze in Arduino IDE.
- Klik op de Upload-knop om de code naar de Arduino Nano te uploaden.
- Steek de 12V-voedingsadapter in het stopcontact.
- Open de Serial Monitor en stel de baudrate in op 9600.
- Kijk naar de ledstrip: hij brandt 2 seconden op volle helderheid, is 2 seconden uit, en wordt daarna langzaam helderder en langzaam zwakker.
- Bekijk het resultaat op de Serial Monitor:
Als u een 12V-ventilator gebruikt in plaats van de ledstrip, draait de ventilator op volle snelheid, stopt, en gaat daarna stap voor stap sneller en langzamer draaien.
Extra kennis
AOD4184 vs LR7843 vs FR120N: welke kiezen
Alle drie de modules sluit u op dezelfde manier aan op de Arduino Nano. De keuze hangt af van de spanning en stroom van uw belasting.
| AOD4184 | LR7843 | FR120N | |
|---|---|---|---|
| Max. belastingsspanning | 40V DC | 30V DC | 100V DC |
| Aan-weerstand | ongeveer 7 mΩ | ongeveer 3.3 mΩ | ongeveer 210 mΩ |
| Praktische stroom zonder koelplaat | ongeveer 10–15A | ongeveer 15A | ongeveer 2A |
| Goed voor | 12V/24V/36V-belastingen | 12V/24V-belastingen met grote stroom | kleine 24V/48V-belastingen |
- LR7843: Hij heeft de laagste weerstand, dus hij blijft het koelst bij hoge stroom. Hij is het beste voor 12V/24V ledstrips met hoog vermogen en grote motoren. De limiet is 30V.
- AOD4184: Dit is een goede allrounder. Hij werkt tot 40V en kan sterke stroom aan.
- FR120N: Hij kan de hoogste spanning aan (tot 100V), maar zijn weerstand is de hoogste. Hij is alleen voor kleine stromen, ongeveer 2A zonder koelplaat.
Het is duidelijk dat de LR7843 de beste keuze is voor zware 12V/24V-belastingen, terwijl de FR120N de enige keuze is boven 40V.
※ Notiz:
De grote stroomwaarden (50A voor AOD4184, 161A voor LR7843) zijn de limieten van de MOSFET-chip. Het is NIET wat het kleine modulebord kan dragen. De echte limiet is warmte. Raak de MOSFET na enkele minuten gebruik voorzichtig aan. Als hij te heet is om vast te houden, verlaag dan de belasting of voeg een koelplaat toe.
MOSFET-module vs relay
| MOSFET-module | Relay | |
|---|---|---|
| Type belasting | alleen DC | DC of AC |
| PWM (dimmen, snelheidsregeling) | Ja | Nee |
| Geluid | Stil | Klikt |
| Bewegende delen | Geen | Ja |
| Schakelsnelheid | Zeer snel | Langzaam |
Voor een Nano-project op een breadboard dat een 12V ledstrip, ventilator of pomp bestuurt, is de MOSFET-module de betere keuze. Gebruik voor apparaten op netspanning (AC) een relay.
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.