En nybörjares guide till Arduino (12 / 15 steg)
Steg 12: Köra mer lysdioder eller andra belastningar
Hittills har använt vi bara komponenter som får väldigt lite ström. Men om vi vill driva saker som drar mer än 20mA, den nuvarande av Arduinos produktion inte kommer att räcka. Vi behöver någon form av nuvarande förstärkare, och det är då transistor kommer i.
När du vill köra saker som körs av en annan spänning än Arduino, behöver du även en transistor.
En liten ström från basen till utsändaren resulterar i en mycket högre ström från samlaren att utsändaren.
Mer information finns i steg 3.
Mäta spänning och ström
Innan vi kan börja bygga våra transistor krets, måste vi du känna till spänning och strömförbrukning av laddar du vill använda.
Anslut din last (motor, fläkt, lampor, lampa, värmeelement, magnetventil...) till kraftkällan, satt din multimeter till DC volt och mäta spänningen över lasten, eller direkt från lasten. Spänning mäts parallellt med belastningen. (se bild)
Nu koppla negativa binda av belastningen från strömförsörjningen. Sedan Anslut den röda sladden i din multimeter till ampere-kontakten, och Ställ in den på DC ampere. Anslut den svarta kabeln av multimeter till marken av strömförsörjningen och den röda sladden av multimeter till negativ tråd av lasten. Ström mäts alltid i serie med belastningen. (se bild)
Obs: kom ihåg att koppla in din röda tråd tillbaka i spänning-kontakten på multimeter, om du försöker man mäter spänning med den nuvarande ingången, du i princip kommer att skapa en kortslutning, och blåsa multimeter säkring eller även helt förstöra den. Vissa högre slutet multimetrar kommer att visa en varning när den är inställd till spänning medan den aktuella kontakten används och pip.
Beräkning av bas motståndet för transistorn
En transistor har en viss nuvarande vinst, vanligtvis runt 100. Symbolen för Likström få är en grekisk bokstav bèta (β) eller HFE.
Jagcollector-sändare = jagbase-sändare · HFE.
Hitta β värdet för din specifika transistor i databladet. Det bör finnas ett diagram som kallas "Likström gain". (se bilder) På den horisontella axeln, du kan hitta samlaren nuvarande, detta är den nuvarande dras av belastningen. Observera att för mesta, en logaritmisk skala används.
Skriv ner β värdet motsvarar din nuvarande belastning.
Vi behöver veta den base-sändare nuvarande, så dela upp nuvarande samlaren av den nuvarande vinst β.
Jagbase-sändare = jagcollector-sändare / HFE
Nu tar matningsspänningen av din Arduino, och subtrahera 0.7V. Detta beror på att base-sändare kisel korsningen av transistorn har ett spänningsfall på 700mV. (Du behöver inte veta varför det är, vet bara spänningsfallet är där.)
Nu använda Ohms lag för att beräkna motståndet av bas motståndet.
Rbas = (VArduino - 0.7V) / jagbase-sändare
Obs: om den bas nuvarande är större än 20mA (mer än Arduino kan leverera), du måste använda en transistor med ett högre β-värde eller en Darlington transistor.
Till exempel, vill jag köra en motor på 200mA, 12v med en BD139 NPN-transistor och en 5v Arduino:
Som ni kan se i andra grafen, på 200mA, är den aktuella vinsten ca 97.
Jagbase-sändare = 0.2A / 97 = 0.00206A ≈ 2.1mA
Rbas = (5v - 0.7V) / 2.1mA = 4.3v / 0.0021A ≈ 2048Ω → 1.8kΩ
I det här fallet är det bättre att runda motståndet mot ett lägre motstånd E12 värde, se till att transistorn är helt öppen.
När du använder en induktiv last, som en magnetventil, relä, motor osv måste du använda en flyback diod. Detta är att förhindra transistorn från att skadas av spänningstoppar orsakade av nödsänkningssolenoiden. (Du får self-inductance inne i spolen när det plötsligt förvandlas av.) (se bild) Du kan använda nästan alla likriktare-diode använde jag en vanlig 1N4007, t.ex.
Obs: Arduino är marken skall alltid anslutas till marken av transistorn kretsen.
Obs: Du kan bara använda den här metoden med låg spänning DC massor.
Låg-nuvarande MOSFETs
En normal (integrerade, bipolär Junction Transistor) drivs som beskrivits ovan, av den bas-sändare nuvarande. MOSFETs (Metal Oxide Semiconductor Field effecttransistorer) styrs av gate spänning. (se steg 3)
I databladet för din MOSFET, hitta gate spänningen till dränera aktuell diagrammet. (se bild, diagram är för en BUZ11 MOSFET)
Som ni kan se, på 3,3 v, är nuvarande fortfarande ganska låga och värdelös i de flesta fall. Men på 5v, kan avlopp strömmen vara nog för ditt specifika program.
Det rekommenderas att använda nedrullningsbara (gate luftskruv) resistor på utfärda utegångsförbud för av MOSFET för att förhindra ett elektriskt fält från bygga upp och vrida på MOSFET, eftersom det är mycket känslig.
Precis som med vanliga transistorer, bör du också använda en flyback diod vid växling Induktiva laster. (Dock vissa MOSFETs har dem byggdes)
(se bilder för scheman)
Hög-aktuell MOSFETs
För att få högre strömmar, måste vi få en högre elektriska fält, så vi behöver en högre gate spänning.
Vi kunde använda transistor för att göra detta, men det är lättare att använda opto-koppling eller optisk-isolator. Detta är i grunden en infraröd LED och en fototransistor (light sensor) i ett paket. När lampan slås på, bedriver en fototransistor.
Det ser ut precis som en IC med endast 4 (eller 6) ben.
Med en opto-koppling också innebär att det finns ingen elektrisk koppling mellan Arduino och MOSFET, så om den högre spänning kretsen misslyckas, det är nästan omöjligt att det blir till Arduino, och förstör den. Detta är en stor fördel.
Ta en titt på bilden för schematiskt. Du kan använda formeln för spänningsavdelare för att beräkna R1 och R2.
Till exempel om jag vill köra en 12v 17A last med en BUZ11, jag kommer att behöva en gate spänning på 6v (se diagram).
6V är 12v/2, så R1 = R2. De kan till exempel vara 47KΩ.
I formeln, Vi matningsspänningen och Vut är gate spänningen.
Reläer
För att driva högspännings- eller växelspänning laddar, behöver du ett relä. Se steg 3 för mer information.
Arduinoen kan inte driva ett relä direkt, så du behöver en (liten) transistor. Ett relä är en induktiv last, så du behöver en flyback diod att skydda din transistor.
Använda metoden ovan för att beräkna bas motståndet.
Ta en titt på bilden ovan för schematiskt.
Varning: Vägg makt kan döda dig, om inte du är försiktig nog. Lämna aldrig 115V eller 230V anslutningar utsätts, och dra ur din krets när du arbetar på den.
Sammanfattning
- Om du vill driva saker som motorer eller lampor som drar mer än 20mA eller köra på spänningar än 5v eller 3.3V, använda en transistor, MOSFET eller relä.
- Använd alltid ett motstånd på basen av en transistor till kontroll den bas nuvarande.
- Alltid använda en pull-down resistor på utfärda utegångsförbud för av en MOSFET.
- Använd alltid en flyback diod vid växling Induktiva laster.
Extra: PNP transistorer
I föregående stycken använt vi bara NPN-transistorer, som tar en positiv signal att slå på. PNP transistorer slå å på när en negativ spänning appliceras på basen, vilket resulterar i en "negativ" base-sändare nuvarande. (negativt, jämfört med de avvikelser i resultatet, i en PNP transistor, sändaren avger "positiva laddningar". Det är fortfarande bara de elektroner som rör sig, och en positiv laddning innebär bara avsaknad av elektroner.)
Ta en titt på bilden ovan för schematiskt. Precis som med NPN variant anger utsändaren pilen riktningen av strömmen.
Obs: PNP transistor kommer att genomföra när utgångsstiftet Arduino är låg.