Fråga:
Finns det en gräns för hur mycket ström en stift kan sjunka?
Peter Bloomfield
2014-02-12 17:40:09 UTC
view on stackexchange narkive permalink

Jag har experimenterat med en 8x8 LED-matris som styrs av en Arduino Uno. Som jag tycker är typiskt använder matrisen en gemensam anod för varje rad och en gemensam katod för varje kolumn.

För tillfället har jag alla matrisstift anslutna direkt till IO-stift på Uno och jag har inte haft några problem att tända lysdioderna en efter en. Att gå igenom hela matrisen så här gör dock uppdateringarna lite långsamma, vilket betyder att lysdioderna inte är så ljusa som jag skulle vilja.

Såvitt jag vet kan jag inte tända en hel säker rad på en gång, eftersom en individuell stift på Uno inte kan skaffa tillräckligt med ström för att driva åtta separata lysdioder samtidigt (som kräver minst 10 mA vardera för att vara tillräckligt ljusa).

Det hände mig att det motsatta kan vara säkrare. Om jag tänder en hel kolumn åt gången, måste varje stift bara källa tillräckligt med ström för en lysdiod, vilket inte borde vara något problem. Det förlitar sig dock på att en stift kan sänka strömmen från alla 8, totalt 80mA.

Är det möjligt, eller ska jag steka mitt bräde?

Vilken exakt skärm använder du (datablad) och använder du seriemotstånd med den? Kanske steker du timmarsvisning istället för din Arduino.
Det finns inget artikelnummer på det så jag har inte det exakta databladet. Jag antar att varje lysdiod har en framspänning på 2V och använder konservativt motstånd i 390 ohm-serien just nu (under testning). Det betyder att jag kör dem på cirka 8 mA vardera tror jag.
det borde vara bra.
Kan du gå lite mer i detalj om vad du gör, snälla. Anledningen till att jag frågar är att jag vill göra samma sak, och jag är nybörjare. Jag är RTFMing och din fråga var den högsta träffen för min sökning. Jag är [email protected] tack.
Två svar:
#1
+14
Anindo Ghosh
2014-02-12 18:00:32 UTC
view on stackexchange narkive permalink

ska jag steka mitt bräde?

Ganska troligt resultat. Det här är varför:

Arduino Uno använder atMEGA328 mikrokontroller, som har en absolut maximal värdering på 40 mA källa eller sänka per GPIO. Den totala strömmen genom tillförseln eller jordskenorna (dvs summan av all ström OP vill att GPIO-stiften ska sjunka, eller källan) klassas också till 150 200 mA.

Realistiskt går de nuvarande graferna i databladet atMEGA328 inte ens hela vägen till 40 mA, därför är det säkrast att begränsa strömmen till kanske 20 mA totalt per GPIO.

Med andra ord, oavsett om en GPIO används som källa eller sänka, förblir gränserna ganska låga och bör i praktiken hållas mycket lägre än de absoluta maximala värdena. Till och med under det absoluta maximumet minskar dess livslängd att köra en mikrokontroller till en för hög temperatur.

Lösning :

Använd antingen BJT, MOSFET eller någon drivrutin IC som ULN2003 för att faktiskt driva strömmen genom lysdioderna.

Var hittade du 150mA max. för paketet? Jag har 200mA under [absoluta maximala betyg] (http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet .pdf).
@jippie jag dumma :-)
#2
+10
Connor Wolf
2014-02-23 20:54:03 UTC
view on stackexchange narkive permalink

Jag ska stjäla mitt svar från när jag svarade på den här frågan vid det senaste arduino SE-försöket.


Det här är lite komplicerat. I grund och botten finns det ett antal begränsande faktorer:

IO-linjerna från mikrokontrollern (dvs. de analoga och digitala stiften) har både en sammanlagd (t.ex. total) strömgräns och en per-pin-gräns:

enter image description here
Från ATmega328P-databladet.

Beroende på hur du definierar Arduino "Pins", det här är inte hela historien.

Arduino 5V-stift är inte ansluten via mikrokontrollern . Som sådan kan den få betydligt mer kraft. När du drar din arduino från USB begränsar USB-gränssnittet din totala strömförbrukning till 500 mA. Detta delas med enheterna på arduino-kortet, så den tillgängliga strömmen blir något mindre.
När du använder en extern strömförsörjning, via pipans strömkontakt, är du begränsad av den lokala 5V-regulatorn, som är klassad för högst 1 Amp . Det här är dock också termiskt begränsat , vilket betyder att när du drar ström kommer regulatorn att värmas upp. När den överhettas stängs den tillfälligt av.

Den 3.3V reglerade utgången kan leverera 150 mA max, vilket är gränsen för 3.3V-regulatorn.


Sammanfattningsvis

  • absolut maximalt för varje enskild IO-stift är 40 mA ( detta är max . Du borde faktiskt aldrig dra hela 40 mA från en stift. I grund och botten är det tröskeln som Atmel inte längre kan garantera att chipet inte skadas. Du bör alltid se till att du är säker under denna strömgräns. )
  • Den totala strömmen från alla IO-stiften tillsammans är 200 mA max
  • 5V utgångsstiftet är bra för ~ 400 mA på USB, ~ 900 mA när du använder en extern nätadapter
    • 900 mA är för en adapter som ger ~ 7V. När adapterspänningen ökar ökar också mängden värme som regulatorn måste hantera, så den maximala strömmen kommer att sjunka när spänningen ökar. Detta kallas termisk begränsning
  • 3.3V-utgången kan leverera 150 mA .
    • Anmärkning - All ström som dras från 3.3V-skenan måste gå igenom 5V-skenan . Därför, om du har en 100 mA-enhet på 3.3V-utgången, måste du också räkna den mot 5V totalström.

Obs: Detta gäller inte Arduino Due, och det finns sannolikt vissa skillnader för Arduino Mega. Det är troligtvis i allmänhet sant för alla Arduino-baserade från ATmega328-mikrokontrollern.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...