Hoe kan er niet genoeg stroom zijn?

Ik ben nieuw in de Arduino-wereld. Ik heb een vraag over de stroom die de Arduino uitgangen over zijn 5V-poort. Waarom is de stroom in de Arduino te zwak voor het huidige hongerige circuit, terwijl het enige dat in deze vergelijking verandert V = IR de stroom zelf is.

De spanning in een Arduino is bijvoorbeeld beperkt tot 5 volt. Ervan uitgaande dat de weerstand van de stroom hetzelfde blijft, zou de stroom dan ook niet moeten toenemen (volgens de wet van Ohm) over zijn 5V-poort? Meer specifiek, ik heb het over het voeden van ESP8266 met een Arduino.

1
Wanneer ik mijn Arduino opsom met behulp van USB, zie ik dit: MaxPower 100mA - dus vraagt ​​het slechts 100 mA van de USB-poort. Kunt u verduidelijken wat u bedoelt met: Ervan uitgaande dat de weerstand van de stroom hetzelfde blijft ...
toegevoegd de auteur Nick Gammon, de bron
Waarom is de stroom in de Arduino te zwak voor het huidige hongerige circuit ... er is in de eerste plaats geen "stroom in de Arduino".
toegevoegd de auteur Nick Gammon, de bron
Heeft u het over de pinnen van de microcontrollers of het 5V-stopcontact, de reden waarom het later zou worden beperkt, zou te wijten zijn aan het type regulator dat niet is ontworpen voor hongerige toepassingen.
toegevoegd de auteur RSM, de bron

2 antwoord

Het probleem is niet dat "er niet genoeg stroom is", maar dat je niet genoeg kracht kunt verdrijven.

Laten we aannemen dat je het bord van een externe 12V-voeding voorziet. Nu wordt de 5V verkregen van 12V met een resistieve regelaar: dit betekent dat de regelaar (zie deze afbeelding als je geïnteresseerd bent om te weten welke component het is) gedraagt ​​zich gewoon als een variabele weerstand, waardoor het vermogen te groot wordt. Laten we nu aannemen dat je 4A van de 5V-rail wilt trekken, omdat je veel LED's en andere dingen wilt inschakelen. Aangezien P = VI, moet de regelaar (die zeer kleine component) verdrijven (12V-5V) * 4A = bijna 30W. Dit betekent dat het een beetje verwarming wordt en .. Bladerdeeg! het breekt.

Nu is 4A echt een hoge stroomsterkte, maar die regelaar kan heel weinig vermogensdissipaties weerstaan. Volgens de datasheet en schatting van 1 cm x 2 cm eronder, kunnen we een thermische weerstand van 25 K/W schatten, wat betekent dat elke watt die je verspreidt, de interne temperatuur met 25K (= 25 ° C) verhoogt. U kunt niet verder gaan dan 150 ° C zonder het onderdeel te beschadigen, wat betekent dat als uw kamer op 25 ° C is, u TEN MINSTE 5 W kunt verdampen. Ga in de praktijk nooit verder dan 3W. Hoe dan ook, zelfs 5W betekent dat je bij 12V niet meer dan 5W/7V = 0.7A kunt krijgen.

Overigens heeft de regelaar een 0.8A-waarde, dus u moet in geen geval verder gaan dan die waarde.

Dit was de externe regulator. Wat betreft de usb, je kunt niet meer dan 500mA krijgen van die voeding. Dat staat in de specificaties. Om deze reden is er een zekering van 500 mA op die rail, dus als je voorbij 500 mA gaat, blaas je die door en onderbreek je je kracht. Wel, dat is een zelfhelende lont, dus na een tijdje (misschien wel uren?) Zal het weer werken, maar ... Probeer dat niet.

Op het einde, de digitale penstroom. De atmega-datasheet zegt dat

  1. De absolute maximumstroom per I/O-pin is 40.0mA
  2. De absolute maximumstroom binnen VCC en GND Pins is 200.0mA

Dit betekent dat je vanaf elke pin maximaal 40mA kunt krijgen (maar ik raad je aan om nooit verder dan 20mA te gaan), en de som van alle stromen (en de interne randapparatuur) mag nooit 200mA overschrijden. Dus als je 2 leds van stroom wilt voorzien, kun je elk van hen 20 mA geven, als je er 15 van moet voeden, kun je dat niet doen (je bent beperkt tot, laten we zeggen 10 mA). Als u meer nodig hebt, gebruikt u transistors om de huidige paden te scheiden.

5
toegevoegd
Meer dan waarschijnlijk is de reden voor de veilige limieten van 20ma/40ma per pin geen stroombegrenzing, maar zoals in uw eerste zin staat, kan het onvermogen om genoeg kracht te dissiperen - in het bijzonder warmte - deze overschrijden zonder uiteindelijke schade. Ze waarschijnlijk zouden slagen voor meer dan 40ma, kort, maar falen, dit te doen.
toegevoegd de auteur caryden, de bron
De limieten per pin zijn natuurlijk te wijten aan het thermische ontwerp van de IC. Waarschijnlijk vanwege de diameter van de draadbinding, of de breedte van IC-sporen, of de parasietweerstand, of ... Hoe dan ook, de Atmel karakteriseerde het IC en verklaarde dat u het niet mocht overschrijden, anders zou u het kunnen beschadigen. Natuurlijk kan het krijgen van 10A voor 1ps je verlaten met een gezond IC, maar ... Hé, geen garantie;)
toegevoegd de auteur Tom Collins, de bron
@steven goed, als je een NPN-base koppelt aan een arduino-uitgang via een weerstand (meestal in het bereik van 10k-47k), emitter naar aarde en de belasting naar de collector, heb je zojuist de twee stroompaden gescheiden, omdat de belasting nu wordt ontladen de NPN in plaats van de Arduino. Dus ... met behulp van een NPN als schakelaar worden ze "gescheiden". Persoonlijk geef ik de voorkeur aan nMOS's in plaats van NPN (en pMOS in plaats van PNP) omdat ze zich "idealer" in gedachten gedragen;)
toegevoegd de auteur Tom Collins, de bron
Zou je kunnen uitleggen hoe je een transistor zou gebruiken om het huidige pad te scheiden? Ik heb wat dingen getest met PNP- en NPN-transistors, maar ik wist niet dat je dat zou kunnen gebruiken om het huidige pad te scheiden. Ik heb ze net als logische poorten gebruikt.
toegevoegd de auteur Justin Stenning, de bron

Een heel eenvoudig antwoord: de Arduino is beperkt tot een absolute 40 mA per pin, omdat binnen de controllerchip (meestal ATMega328) het pad dat de stroom volgt erg klein is. Meer stroom kan de kleine transistors in de chip vernietigen. Beste geval, je burn-out die pin.

Als je een probleem hebt dat meer dan 40mA vereist (en eigenlijk, zoals andere posters aangeven, 20mA!), Zou je een transistor, mosfet of relais moeten gebruiken die door de Arduino wordt bestuurd, in plaats van rechtstreeks het eindapparaat van stroom te voorzien.

1
toegevoegd