Gibt es eine Begrenzung, wie viel Strom ein Stift sinken kann?


13

Ich habe mit einer 8x8-LED-Matrix experimentiert, die von einem Arduino Uno gesteuert wird. Wie ich für typisch halte, verwendet die Matrix für jede Zeile eine gemeinsame Anode und für jede Spalte eine gemeinsame Kathode.

Im Moment sind alle Matrix-Pins direkt mit den IO-Pins des Uno verbunden, und ich hatte keine Probleme, die LEDs einzeln zu beleuchten. Wenn Sie die gesamte Matrix auf diese Weise durchgehen, sind die Aktualisierungen jedoch etwas langsam, was bedeutet, dass die LEDs nicht so hell sind, wie ich es gerne hätte.

Soweit ich weiß, kann ich nicht sicher eine ganze Reihe auf einmal aufleuchten, da ein einzelner Pin auf dem Uno nicht in der Lage ist, genug Strom zu liefern, um 8 separate LEDs gleichzeitig anzusteuern (für die jeweils mindestens 10 mA erforderlich sind) hell genug sein).

Mir ist der Gedanke gekommen, dass das Gegenteil sicherer sein könnte. Wenn ich jeweils eine ganze Spalte aufleuchte, muss jeder Pin nur genug Strom für eine LED liefern, was kein Problem sein sollte. Es ist jedoch darauf angewiesen, dass ein Pin den Strom von allen 8 möglichen Strömen aufnimmt, was mindestens 80 mA entspricht.

Ist das möglich oder brate ich mein Brett an?


Welche genaue Anzeige verwenden Sie (Datenblatt) und verwenden Sie damit Vorwiderstände? Möglicherweise braten Sie Stundenanzeige eher als Ihr Arduino.
jippie

Es ist keine Teilenummer darauf, sodass ich nicht das genaue Datenblatt habe. Ich bin davon ausgegangen, dass jede LED eine Durchlassspannung von 2 V hat, und verwende derzeit konservativ Widerstände der Serie 390 Ohm (während des Tests). Das heißt, ich fahre sie mit jeweils ca. 8mA, denke ich.
Peter Bloomfield

Das sollte in Ordnung sein.
jippie

Könnten Sie uns bitte etwas näher erläutern, was Sie tun? Der Grund, warum ich frage, ist, dass ich das Gleiche tun möchte und ein Neuling bin. Ich bin RTFMing und Ihre Frage war der höchste Treffer für meine Suche. Ich bin jeffsilverm@gm4il.c0m. Danke.
user1928764

Antworten:


13

werde ich mein Brett braten?

Ziemlich wahrscheinlich Ergebnis. Hier ist der Grund:

Der Arduino Uno verwendet den atMEGA328-Mikrocontroller, der eine absolute maximale Nennleistung von 40 mA als Quelle oder Senke pro GPIO aufweist. Außerdem ist der Gesamtstrom durch die Versorgungs- oder Erdungsschienen (dh die Summe aller Strom-OPs, bei denen die GPIO-Pins sinken oder quellen sollen) auf maximal 150 bis 200 mA ausgelegt.

Realistisch gesehen reichen die Stromdiagramme im atMEGA328-Datenblatt nicht einmal bis zu 40 mA, daher ist es am sichersten, den Strom auf insgesamt vielleicht 20 mA pro GPIO zu beschränken.

Mit anderen Worten, unabhängig davon, ob ein GPIO als Quelle oder Senke verwendet wird, bleiben die Grenzwerte ziemlich niedrig und sollten in der Praxis viel niedriger als die absoluten Maximalwerte gehalten werden. Sogar unter dem absoluten Maximum verringert das Betreiben eines Mikrocontrollers bei zu hohen Temperaturen seine Lebenserwartung.

Lösung :

Verwenden Sie entweder BJTs, MOSFETs oder einen Treiber-IC wie den ULN2003 , um den Strom tatsächlich durch die LEDs zu treiben.


2
Wo hast du die 150mA max. für das paket? Ich habe einen 200mA unter absoluten Maximalwerten .
jippie

@ Jippie ich vermasselt :-)
Anindo Ghosh

9

Ich werde meine Antwort stehlen, als ich diese Frage beim letzten Versuch von arduino SE beantwortet habe.


Das ist ein bisschen komplex. Grundsätzlich gibt es eine Reihe von einschränkenden Faktoren:

Die E / A-Leitungen vom Mikrocontroller (dh die analogen und digitalen Pins) haben sowohl eine Gesamtstrombegrenzung (z. B. Gesamtstrombegrenzung) als auch eine Begrenzung pro Pin:

Bildbeschreibung hier eingeben
Aus dem ATmega328P Datenblatt .

Je nachdem, wie Sie die Arduino "Pins" definieren, ist dies jedoch nicht die gesamte Geschichte.

Der 5V-Pin des Arduino ist nicht über den Mikrocontroller angeschlossen . Als solches kann es wesentlich mehr Energie liefern. Wenn Sie Ihren Arduino über USB mit Strom versorgen, begrenzt die USB-Schnittstelle Ihren Gesamtstromverbrauch auf 500 mA. Dies wird mit den Geräten auf dem Arduino-Board geteilt, sodass die verfügbare Leistung etwas geringer ist.
Wenn Sie ein externes Netzteil verwenden, sind Sie über den Gehäusestromversorgungsstecker durch den lokalen 5-V-Regler begrenzt, der für maximal 1 Ampere ausgelegt ist . Dies ist jedoch auch thermisch begrenzt , was bedeutet, dass sich der Regler aufheizt, wenn Sie Strom ziehen. Wenn es überhitzt, wird es vorübergehend heruntergefahren.

Der geregelte 3,3-V-Ausgang kann maximal 150 mA liefern, was die Grenze des 3,3-V-Reglers darstellt.


In Summe

  • Das absolute Maximum für einen einzelnen E / A-Pin beträgt 40 mA ( dies ist das Maximum . Sie sollten eigentlich nie volle 40 mA von einem Pin abziehen. Grundsätzlich ist dies die Schwelle, bei der Atmel nicht mehr garantieren kann, dass der Chip nicht beschädigt wird. Sie sollten immer sicherstellen, dass Sie sicher unter dieser Stromgrenze sind. )
  • Der Gesamtstrom aller IO-Pins zusammen beträgt max. 200 mA
  • Der 5-V-Ausgangspin ist für ~ 400 mA bei USB und ~ 900 mA bei Verwendung eines externen Netzteils geeignet
    • Die 900 mA sind für einen Adapter vorgesehen, der ~ 7V liefert. Mit zunehmender Adapterspannung steigt auch die Wärmemenge, mit der der Regler umgehen muss, sodass der maximale Strom mit zunehmender Spannung abnimmt. Dies nennt man thermische Begrenzung
  • Der 3,3-V-Ausgang kann 150 mA liefern .
    • Hinweis - Jegliche Stromaufnahme von der 3,3-V-Schiene muss über die 5-V-Schiene erfolgen . Wenn Sie also ein 100 mA - Gerät auf dem 3,3V - Ausgang haben, müssen Sie auch gegen den 5 V Summenstrom zählen.

Hinweis: Dies gilt nicht für den Arduino Due und es gibt wahrscheinlich einige Unterschiede für den Arduino Mega. Es ist wahrscheinlich allgemein für jeden Arduino zutreffend, der auf dem ATmega328-Mikrocontroller basiert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.