Czy istnieje limit ilości prądu, który może zatonąć szpilka?

13

Eksperymentowałem z matrycą LED 8x8 kontrolowaną przez Arduino Uno. Jak myślę, co jest typowe, matryca używa wspólnej anody dla każdego rzędu i wspólnej katody dla każdej kolumny.

W tej chwili mam wszystkie styki matrycy podłączone bezpośrednio do styków IO na Uno i nie miałem żadnych problemów z zapalaniem diod LED jeden po drugim. Przejście przez całą taką matrycę powoduje, że aktualizacje są nieco powolne, co oznacza, że ​​diody LED nie są tak jasne, jak bym chciał.

O ile mi wiadomo, nie mogę bezpiecznie zapalić całego rzędu na raz, ponieważ pojedynczy pin na Uno nie jest w stanie pozyskać wystarczającej ilości prądu, aby zasilić 8 oddzielnych diod LED jednocześnie (wymaga co najmniej 10 mA dla bądź wystarczająco jasny).

Przyszło mi do głowy, że sytuacja odwrotna może być bezpieczniejsza. Jeśli zaświecę jednocześnie całą kolumnę, wówczas każdy pin musi tylko uzyskać wystarczającą ilość prądu dla jednej diody LED, co nie powinno stanowić problemu. Opiera się jednak na jednym pinie, który potencjalnie może zatopić prąd ze wszystkich 8, w sumie co najmniej 80 mA.

Czy to możliwe, czy mam usmażyć swoją deskę?

Peter Bloomfield
źródło
Jakiego dokładnego wyświetlania używasz (arkusz danych) i czy używasz z nim rezystorów szeregowych? Może usmażysz wyświetlanie godziny zamiast swojego Arduino.
jippie
Nie ma na nim numeru części, więc nie mam dokładnego arkusza danych. Zakładam, że każda dioda LED ma napięcie przewodzenia 2 V i obecnie zachowawczo używam rezystorów szeregowych 390 omów (podczas testowania). Oznacza to, że myślę, że jeżdżę nimi po około 8 mA.
Peter Bloomfield
to powinno być w porządku.
jippie
Czy mógłbyś podać trochę więcej szczegółów na temat tego, co robisz, proszę. Powodem, dla którego pytam, jest to, że chcę zrobić to samo i jestem nowicjuszem. Jestem RTFMing i twoje pytanie było największym hitem dla moich poszukiwań. Jestem [email protected]. Dziękuję Ci.
user1928764,

Odpowiedzi:

13

mam zamiar usmażyć moją deskę?

Całkiem prawdopodobny wynik. Dlatego:

Arduino Uno korzysta z mikrokontrolera atMEGA328, który ma absolutną maksymalną wartość znamionową źródła lub ujścia 40 mA na GPIO. Ponadto całkowity prąd przesyłany przez szyny zasilające lub uziemiające (tj. Suma wszystkich prądowych OP chce, aby piny GPIO zatonęły lub źródło) zostały ocenione na maksymalnie 150 200 mA.

Realistycznie, obecne wykresy w arkuszu danych atMEGA328 nie sięgają nawet do 40 mA, dlatego najbezpieczniej jest ograniczyć prąd do około 20 mA łącznie na GPIO.

Innymi słowy, niezależnie od tego, czy GPIO jest używane jako źródło, czy do ujścia, limity pozostają dość niskie, aw praktyce powinny być utrzymywane znacznie niższe niż absolutne maksymalne oceny. Nawet poniżej absolutnego maksimum, uruchomienie mikrokontrolera w zbyt wysokiej temperaturze skraca jego żywotność.

Rozwiązanie :

Użyj BJT, MOSFET lub jakiegoś sterownika IC, takiego jak ULN2003, aby faktycznie poprowadzić prąd przez diody LED.

Anindo Ghosh
źródło
2
Gdzie znalazłeś 150mA max. za paczkę? Mam 200mA poniżej absolutnych maksymalnych ocen .
jippie
@jippie I goofed :-)
Anindo Ghosh
9

Mam zamiar ukraść moją odpowiedź, kiedy odpowiedziałem na to pytanie podczas ostatniej próby arduino SE.


To jest trochę skomplikowane. Zasadniczo istnieje wiele czynników ograniczających:

Linie IO z mikrokontrolera (tj. Pinów analogowych i cyfrowych) mają zarówno łączny (np. Całkowity) limit prądu, jak i limit na pin:

wprowadź opis zdjęcia tutaj
Z arkusza danych ATmega328P .

Jednak w zależności od tego, jak zdefiniujesz „szpilki” Arduino, nie jest to cała historia.

Pin 5 V arduino nie jest podłączony przez mikrokontroler . Jako taki może uzyskać znacznie większą moc. Kiedy zasilasz swój Arduino z USB, interfejs USB ogranicza całkowity pobór mocy do 500 mA. Jest to współdzielone z urządzeniami na płycie Arduino, więc dostępna moc będzie nieco mniejsza.
Kiedy korzystasz z zewnętrznego zasilacza, przez beczkowe złącze zasilania, jesteś ograniczony przez lokalny regulator 5V, który jest oceniany na maksymalnie 1 Amp . Jest to jednak również ograniczone termicznie , co oznacza, że ​​gdy pobierasz energię, regulator nagrzewa się. Gdy się przegrzeje, tymczasowo się wyłączy.

Wyjście regulowane 3,3 V jest w stanie dostarczyć maks. 150 mA, co stanowi limit dla regulatora 3,3 V.


W podsumowaniu

  • Absolutne maksimum dla każdej pojedynczej pin IO jest 40 mA ( to jest maksymalna . Nigdy nie należy faktycznie ciągnąć pełny 40 mA od szpilki. Zasadniczo, jest to próg, przy którym Atmel nie może zagwarantować chip nie zostanie uszkodzony. Zawsze powinieneś upewnić się, że jesteś bezpiecznie poniżej tego limitu ).
  • Całkowity prąd ze wszystkich styków IO razem wynosi 200 mA maks
  • Pin wyjściowy 5 V jest odpowiedni dla ~ 400 mA na USB, ~ 900 mA w przypadku korzystania z zewnętrznego zasilacza
    • 900 mA jest dla adaptera, który zapewnia ~ 7 V. Wraz ze wzrostem napięcia adaptera wzrasta również ilość ciepła, z którą regulator musi sobie radzić, więc maksymalny prąd spada wraz ze wzrostem napięcia. Nazywa się to ograniczeniem termicznym
  • Wyjście 3,3 V jest w stanie dostarczyć 150 mA .
    • Uwaga - Wszelkie moc pobierana z szyny 3.3V musi przejść przez szyny 5V . Dlatego jeśli masz urządzenie 100 mA na wyjściu 3,3 V, musisz również policzyć je w stosunku do całkowitego prądu 5 V.

Uwaga: Nie dotyczy to Arduino Due i prawdopodobnie istnieją pewne różnice w Arduino Mega. Jest to prawdopodobnie ogólnie prawdą dla każdego Arduino opartego na mikrokontrolerze ATmega328.

Connor Wolf
źródło