Stap 12: Rijden meer LEDs of andere lasten
Tot nu toe hebben we alleen gebruikt componenten die zeer weinig stroom trekken. Maar als we rijden dingen die meer dan 20mA willen trekken, de huidige geleverd door output van de Arduino niet zullen volstaan. We moeten een soort van huidige versterker, en dat is wanneer de transistor komt in.
Als u rijden dingen die een verschillende spanning dan de Arduino weggelopen wilt, moet u ook een transistor.
Een kleine stroom van de basis naar de emitter resulteert in een veel hogere stroom van de collector naar de emitter.
Meer informatie vindt u in stap 3.
Meet spanning en stroom
Voordat we beginnen kunnen met bouwen van onze schakeling transistor, zullen we willen weten van de spanning en de huidige trekking van de belasting die u wilt gebruiken.
Sluit uw lading (motor, fan, LEDs, lamp, verwarmingselement, solenoïde...) met de juiste voeding, uw multimeter ingesteld op DC volt en meten van de spanning over de belasting, hetzij rechtstreeks bij de belasting. Spanning wordt gemeten in parallel met de lading. (zie afbeelding)
Koppel nu de negatieve draad van de lading uit het stopcontact haalt. Vervolgens sluit de rode draad van de multimeter op de amp-connector en stel deze in op DC versterkers. Sluit de zwarte draad van de multimeter op de grond van de voeding en de rode draad van de multimeter op de negatieve draad van de lading. Stroom is altijd gemeten in serie met de belasting. (zie afbeelding)
Nota: herinner me om uw rode draad sluit weer aan op de connector van de spanning van de multimeter, als u probeert om te meten van spanning met de huidige invoer, u zal in principe een kortsluitingmaken en blazen de multimeter de zekering of zelfs volledig te vernietigen. Sommige hogere einde multimeters (universeelmeters) zal piept en tonen een waarschuwing wanneer het ingesteld op spanning terwijl de huidige connector wordt gebruikt.
Berekening van de basis weerstand voor de transistor
Een transistor heeft een bepaalde huidige winst, meestal ongeveer 100. Het symbool voor gelijkstroom krijgen is een Griekse letter BètaNieuws (β) of HFE.
Ikcollector-emitter = Ibase-emitter · HFE.
Vindt u de β-waarde voor uw specifieke transistor in de data sheet. Er moet een grafiek genoemd "Gelijkstroom gain". (Zie afbeeldingen) Op de horizontale as, kunt u de verzamelaar huidige, dit is de huidige getrokken door de belasting. Merk op dat de meeste van de tijd, een logaritmische schaal wordt gebruikt.
Noteer de β-waarde die overeenkomt met uw huidige belasting.
We moeten weten van de basis-emitter-stroom, dus de huidige verzamelaar te delen door de huidige winst β.
Ikbasis-emitter = ikcollector-emitter / HFE
Nu nemen de voedingsspanning voor de Arduino en aftrekken van de 0.7v. Dit is omdat de basis-emitter silicon kruising van de transistor een spanningsval van 700mV is. (U hoeft te weten waarom dit is, weet alleen dat de spanningsdaling er.)
Nu de wet van Ohm te gebruiken voor het berekenen van de weerstand van de basis weerstand.
Basis R = (VArduino - 0.7v) / ikbase-emitter
Opmerking: als de huidige basis groter is dan 20mA (meer dan de Arduino kan leveren), hebt u een transistor gebruiken met een hogere β-waarde of een Darlington transistor.
Bijvoorbeeld, wil ik een aandrijfmotor bij 200mA, 12v met een BD139 NPN-transistor en een 5v-Arduino:
Zoals u in de tweede grafiek, 200mA zien kunt, is de huidige winst ongeveer 97.
Ikbasis-emitter = 0.2a / 97 = 0.00206A ≈ 2.1mA
Basis R = (5v - 0.7v) / 2.1mA = 4.3v / 0.0021A ≈ 2048Ω → 1.8kΩ
In dit geval is het beter om af te ronden de weerstand tegen een lagere E12 waarde weerstand, om ervoor te zorgen dat de transistor is volledig open.
Wanneer u een inductieve last, zoals een solenoïde, estafette, motor etc. moet je gebruiken een flyback diode. Dit is om te voorkomen dat de transistor beschadigd raakt door spanningspieken veroorzaakt door de solenoïde. (U krijgt zelfinductie binnenkant van de spoel wanneer hij wordt plotseling ingeschakeld voor.) (zie afbeelding) U kunt bijna elke gelijkrichter diode, gebruikte ik een regelmatige 1N4007, bijvoorbeeld.
Opmerking: de Arduino de grond moet altijd worden aangesloten op de grond van de transistor-circuit.
Opmerking: U kunt deze methode alleen gebruiken laagspannings DC drukbelastingen.
Low-current MOSFETs
Een normale (BJT, bipolaire Junction Transistor) wordt zoals hierboven beschreven, beheerd door de basis-emitter-stroom. MOSFETs (Metal Oxide Semiconductor veld Effect Transistors) worden geregeld door de spanning van de poort. (zie stap 3)
Vinden in het gegevensblad van uw MOSFET, het voltage van de poort voor de afvoer van de huidige grafiek. (zie afbeelding, grafiek is voor een BUZ11 MOSFET)
Zoals u, op 3,3 v zien kunt, is de huidige nog steeds vrij laag, en in de meeste gevallen nutteloos. Echter, op 5v, de huidige drain zou genoeg voor uw specifieke toepassing.
Het is aanbevolen om de pull-down (poort ontluchting) weerstand op de poort van de MOSFET gebruiken om te voorkomen dat een elektrisch veld van opbouwen en inschakelen van de MOSFET, aangezien het is zeer gevoelig.
Net als met normale transistors, moet u een diode flyback wanneer het schakelen van inductieve belastingen. (Echter, sommige MOSFETs hebben ze gebouwd in)
(Zie afbeeldingen voor schema's)
High-current MOSFETs
Als u hogere stromingen, moeten we krijgen een hogere veldsterkte, dus we een hogere spanning van de poort moeten.
We kunnen transistor gebruiken om dit te doen, maar het is eenvoudiger in het gebruik van een opto-coupler, of een opto-isolator. Dit is eigenlijk een infrarode LED en een fototransistor (lichtsensor) in één pakket. Wanneer de LED is ingeschakeld, voert de fototransistor.
Het lijkt net als een IC met slechts 4 (of 6) benen.
Met behulp van een opto-coupler ook betekent dat er geen elektrische verbinding tussen de Arduino en de MOSFET, dus als het hoger-voltage circuit mislukt, is het bijna onmogelijk dat het krijgt aan de Arduino, en het vernietigt. Dit is een groot voordeel.
Neem een kijkje op de afbeelding voor het schema. De formule voor spanning dividers kunt u berekenen R1 en R2.
Bijvoorbeeld, als ik wil om te rijden een 12v 17A lading met een BUZ11, ik moet een spanning van de poort van 6v (zie grafiek).
6V 12v/2, is zo R1 = R2. Zij zou kunnen worden 47kΩ, bijvoorbeeld.
In de formule, Vin de voedingsspanning en Vuit is de spanning van de poort.
Relais
Om hoog-voltage of AC laadt, moet u een relais. Zie stap 3 voor meer informatie.
De Arduino rijden niet een relais rechtstreeks, dus je een (kleine) transistor moeten zult. Een Relais is een inductieve last, dus je een diode flyback moeten zult ter bescherming van uw transistor.
Gebruik de bovenstaande methode voor het berekenen van de basis weerstand.
Neem een kijkje op de afbeelding hierboven voor het schema.
Waarschuwing: Macht van de muur kan je vermoorden, als je niet voorzichtig genoeg. Nooit laat 115V of 230V verbindingen blootgesteld en Ontkoppel je schakeling wanneer u ermee bezig bent.
Samenvatting
- Als u rijden dingen zoals motoren of lampen die meer dan 20mA tekenen of draaien op spanningen dan 5v of 3.3V wilt, gebruik een transistor, MOSFET en relais.
- Gebruik altijd een weerstand op basis van een transistor om controle van de huidige basis.
- Gebruik altijd een weerstand van de pull-down op de poort van een MOSFET.
- Gebruik altijd een diode flyback wanneer het schakelen van inductieve belastingen.
Extra: PNP transistors
In de voorgaande alinea's gebruikten we alleen NPN-transistors, die nemen een positief signaal om in te schakelen. PNP transistors inschakelen aan de andere kant wanneer een negatieve spanning wordt toegepast op de base, resulterend in een "negatieve" base-emitter huidige. (negatieve, ten opzichte van de emitter, in een PNP transistor, de emitter straalt "positieve kosten". Het is nog steeds alleen de elektronen die bewegen, en een positieve lading betekent gewoon dat de afwezigheid van elektronen.)
Neem een kijkje op de afbeelding hierboven voor het schema. Net als met de NPN-variant geeft de pijl op de emitter de richting van de stroming.
Opmerking: de PNP transistor zal uitvoeren wanneer de pin van de Arduino uitgang laag is.