Ansteuerung von 3,3-V-LEDs mit einem Arduino und einem Schieberegister

Ich plane, eine einfache LED-Matrix mit einem Arduino und einigen 74HC595-Schieberegistern zu bauen. Mein Ardiuno gibt jedoch 5 V an die Register aus, die diese 5 V weitergeben. Wie und wo entlang der Leitung reduziere ich diese Spannung auf 3,3 V?

Edit: Nach einigem Googeln gefunden. Ist ein Widerstand vor jeder LED alles, was ich brauche (was ich sowieso brauche)?

(5–3.3) / 0.02 = 85 ohmfür eine 20 mA 3,3 V LED?

Bearbeiten 2: Kann ich 3 V von einer anderen Quelle an den Vcc-Pin des Schieberegisters liefern, aber 5 V-Logik an die seriellen Pins senden? Ich vermute, das wird nicht funktionieren, wollte es aber nur noch einmal überprüfen.

Passant weist auf etwas Nützliches hin: Ich habe nur angenommen, dass Sie eine Art LED-System haben, das wirklich nichts über 3,3 V sehen möchte. Ich denke, was Passant bemerkt, ist, dass vielleicht beim Lesen der LED-Spezifikationen ein Fehler aufgetreten ist? Es könnte sich lohnen, den Link zu den LEDs zu posten, wie Passerby vorschlägt.
@angelatlarge farnell.com/datasheets/1639232.pdf Außerdem war der 74HC595 nur ein Beispiel, da er nicht die Last von 8 dieser LEDs gleichzeitig aufnehmen kann. Betrachten Sie einen STP16CP05MTR
Rechts. Die 3,3 V sind also nicht die maximale Spannung, die der LED zugeführt werden kann, sondern der Spannungsabfall über der LED, wenn 20 mA geleitet werden. Am Ende brauchen Sie also keine Spannungsverschiebung. Beachten Sie jedoch, dass es eine maximale Sperrspannung von 5 V hat.

Antworten (2)

Es gibt eine Reihe von Optionen, von denen die meisten in diesem Beitrag besprochen werden . Da die Kommunikation eine Möglichkeit ist, können Sie Folgendes verwenden:

  • Spannungsteiler: billig und einfach: 2 Widerstände. Kann keine steifen Spannungsquellen bereitstellen, es sei denn, Sie verlieren dadurch viel Strom
  • Eine Diode mit einer Widerstandsschaltung. Das gleiche wie vorher
  • Level Shifter (etwas wie ein 74LVC245)

Es gibt Schieberegister, die mit 3,3 V betrieben werden: Je nachdem, wie viele Leitungen Sie benötigen, könnte eine einfachere Lösung darin bestehen, den Arduino-Ausgang auf 3,3 V zu verschieben und diesen einem 3,3-V-Schieberegister zuzuführen. Dies wird wahrscheinlich (wiederum abhängig von Ihrem Setup) in weniger Zeilen pegelverschoben werden.

EDIT: Ja, Sie benötigen Strombegrenzungswiderstände für Ihre LEDs, jedoch Spannungsteiler! = ein einzelner Widerstand. Spannungsteiler sieht so aus:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

EDIT2 : Normalerweise nicht. Sie sollten das Datenblatt des Schieberegisters, das Sie verwenden möchten, über seine verschiedenen Maximalspannungen lesen. PS Wenn Sie "Serienpins" sagen, meinen Sie nicht die Serial TXund Serial RX, oder? Normalerweise treibt man Schieberegister unter Verwendung digitaler IO-Pins für allgemeine Zwecke an. Sie können serielle Pins für zwei davon verwenden, aber normalerweise benötigen Sie mehr Pins, um ein Schieberegister anzusteuern (normalerweise mindestens drei im Fall von 74HC595). Der Punkt ist, dass 74HC595 über das SPI-Protokoll angesteuert wird , nicht über RS-232

Danke, die werde ich berücksichtigen. Kannst du bitte meine Bearbeitung überprüfen?
Ja, ich meinte nicht serielles TX/RX, aber danke für die Klarstellung :)
Ich verstehe also, dass ein Strombegrenzungswiderstand kein Spannungsteiler ist, aber bedeutet das auch, dass ein eigener Strombegrenzungswiderstand so nicht ausreicht? led.linear1.org/…
Die Antwort ist "es hängt von der Stromquelle und Ihrer LED ab". Unter der Annahme, dass Ihre LED stirbt, wenn sie 5 V sieht, hängt der Stromkreis, mit dem Sie verbinden, entscheidend von der Stromquelle (in diesem Fall einer Batterie) ab, die bei der Stromquelle keine 5 V aufrechterhält.
@angelatlarge Der 74HC595 ist kein SPI, die Arduino-Crowd verwendet nur eine SPI-ähnliche Implementierung.
@Passerby: Meinst du, weil es eine separate STCP-Leitung gibt? Ich denke, ich dachte an die SHCP- und DS-Leitungen, die sehr SPI-ähnlich sind. Sie haben Recht, ich hätte wahrscheinlich "SPI-like" sagen sollen.
@angelatlarge Ich meine, weil das einzige, was SPI an ihnen mag, ist, dass sie 8 Bit und eine Taktleitung verwenden. Es ist eine oberflächliche Ähnlichkeit.
Ich denke, der Grad der SPI-Ähnlichkeit hängt davon ab, welche anderen Alternativen man für relevant hält. Zwischen seriell, 74HC595, I2C und (Einweg, kein SS) SPI ist 74HC595 sehr SPI-ähnlich, oder?

Wie so ziemlich jeder IC ohne speziell entwickelte Überspannungstoleranzen hat der Eingangsspannungspegel des 74HC595 ein Maximum von VCC oder VCC + 0,3 V. Die Stromversorgung des 74HC595 mit 3 V ist in Ordnung, aber das direkte Anschließen der 5-V-Ausgänge des Arduino an den 74HC595 mit 3 V ist nicht gut. Eine Ebenenverschiebung, wie @angelatlarge gezeigt hat, würde funktionieren.

Die andere Sache ist, dass der IC die Spannung von den Eingängen nicht an die Ausgänge weitergibt. Während das logische Diagramm keinen verwendeten Transistor / Mosfet zeigt, verfügt es über gepufferte Ausgänge. Ausgänge beziehen sich auf VCC und GND des 74HC595. Zum Beispiel muss bei 4,5 V VCC der Logikpegel High nur 2,4 V (typisch) sein, um ein Pegel hoch zu sein, aber der Ausgang wird immer noch 4,32 V Typisch sein.

Sie können also den 74HC595 mit 3 V versorgen, einen Spannungsumsetzer verwenden, um die Eingänge auf den 3-V-Pegel zu bringen, und Ihre LEDs auf diese Weise anschließen. Aber Sie möchten immer noch Widerstände an den LEDs, um jeden Strom zu steuern.

Tatsächlich macht die Verwendung der Widerstände die Stromversorgung des 74HC595 mit 3 V UND die Verwendung des Spannungsteilers strittig. Die Widerstände sollten genauso berechnet werden, als würden Sie eine LED + einen Widerstand direkt an eine Batterie anschließen.

Beachten Sie dieses Schema:Geben Sie hier die Bildbeschreibung ein

Angetrieben von 5 V, wenn man bedenkt, dass jede LED, wie die meisten Standard-LEDs gehen, zwischen 2 und 3,5 Volt bei 20 mA Durchlassstrom liegt, bedeutet dies, dass 3 bis 1,5 V zu viel sind. Die Widerstände werden, wenn sie für eine (5 V-Quellenspannung - LED-Durchlassspannungsabfall) / LED-Strom berechnet werden, die verbleibende Spannung "aufnehmen", während sie diesen Strom einstellen. Gleiches gilt auch für die LED-Matrix des 74HC595, außer dass die Position des Widerstands variieren würde und so weiter. Sie haben uns nicht mitgeteilt, welche Art von Matrix Sie möchten.

Wenn Sie sagen "wird irgendwo dazwischen liegen", meinen Sie das 5.0V - Fvdrop = 2.4-3.5?
@angelatlarge Anders herum. 2,4 bis 3,5 ist der durchschnittliche Vorwärtsabfall einer LED einer bestimmten Farbe. Offensichtlich sind Rot/Orange eher 2,4-2,6, während Blau 3,2 bis 3,4 ist, Weiß 3,3 bis 3,5. Ich habe eine allgemeine Zahl zusammen mit der eigentlichen Formel angegeben. Habe es aber etwas verdeutlicht.
Ich dachte, normale rote LEDs hätten Vorwärts-V unter 2 V, oder? Das hat Wikipedia sowieso.
Ha. Ich habe seit einigen Jahren keine roten LEDs mehr verwendet. Du hast Recht. @angelatlarge