Forum: Mikrocontroller und Digitale Elektronik NOT Gatter für LEDs gesucht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Pascal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich baue gerade einen Sternenhimmel mit Glasfasern. Dazu möchte ich 60 
LEDs einzeln dimmbar ansteuern mittels Arduino.

Problem: Habe nicht aufgepasst :-(. LEDs sind verlötet, verkabelt und 
hinter MDF Platten verbaut die ich nicht mehr abnehmen möchte. GND habe 
ich für alle 60 LEDs auf einem Kabel geführt, 60 Kabel für V+ an die 
einzelnen LEDs geführt.

Beim anschließen ans PWM Board dann die Erkenntnis, dass das Board die 
LEDs auf GND dimmt und nicht auf V+ :-(
Nun suche ich die beste Möglichkeit mit möglichst wenig Aufwand (d.h. 
ohne die Verkabelung der LEDs zu ändern) die trotzdem dimmen zu können.

Ich dachte an einen Inverter, also einfache NOT Gatter, die genug Kraft 
haben eine LED pro Kanal zu dimmen. Versorgungsspannung 5V, normale 20mA 
LEDs.

Gar nicht so einfach was zu finden. Habe nach langer Suche diesen IC 
gefunden: 74HC4049
http://www.nexperia.com/catcher/74HC4049.pdf
Zu kaufen bei Reichelt: 
https://www.reichelt.de/ICs-74HC40-DIL/74HC-4049/3/index.html?ACTION=3&LA=446&ARTICLE=3227&GROUPID=2933&artnr=74HC+4049

Löst das mein Problem, wenn ich davon 10 Stück verlöte für die 60 LEDs? 
Versorgungsspannung sollte passen, unsicher bin ich bei der Last: Im 
Datenblatt stehen zwar 20 mA, aber gilt das pro Ausgang?

Funktioniert meine Idee generell oder gibt es bessere Lösungen?

Ich danke Euch für Eure Ideen!

Viele Grüße
Pascal

von karadur (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Der max. Strom liegt bei 50mA.

da passt eher was aus der Familie UDN2981A

von Michael B. (laberkopp)


Bewertung
0 lesenswert
nicht lesenswert
Pascal schrieb:
> Im Datenblatt stehen zwar 20 mA, aber gilt das pro Ausgang?

Also ich sehe im Datenblatt bloss
VI = VIH or VIL
IO = 20 A; VCC = 2.0 V 1.9 2.0 - 1.9 - 1.9 - V
IO = 20 A; VCC = 4.5 V 4.4 4.5 - 4.4 - 4.4 - V
IO = 20 A; VCC = 6.0 V 5.9 6.0 - 5.9 - 5.9 - V
IO = 4.0 mA; VCC = 4.5 V 3.98 - - 3.84 - 3.7 - V
IO = 5.2 mA; VCC = 6.0 V 5.48 - - 5.34 - 5.2 - V
also 4mA für 5V.

Ein UDN2981A bringt zwar viel Strom, 'frisst' aber 2 Volt und ist 
langsam.

Einzeltransistoren wie BCR523/DTA113 (oder baugleich anderer Hersteller) 
nehmen weniger Plastz weg als DIL-ICs.

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Hast du tatsächlich 60 (unabhängige) PWM-Kanäle??

von Pascal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

Danke für Eure Antworten.

Platzbedarf ist mir egal, im Gegenteil, wenn die Teile auf 2,54 
Lochraster zu verlöten sind ist das ein Vorteil..

Ja, ich hab 60 einzeln ansteuerbare PWM Kanäle (3x Adafruit 24-Channel 
12-bit PWM LED Driver).

UDN2981A ist langsam habe ich auch gelesen, für PWM wahrscheinlich also 
eher ungeschickt..?

von Tommi (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Pascal schrieb:
> Beim anschließen ans PWM Board dann die Erkenntnis, dass das Board die
> LEDs auf GND dimmt und nicht auf V+ :-(
Heisst das, das sind Open-Collector-Ausgaenge? Wenn es Treiberstufen 
waeren, wuerde es ja reichen in der Software den Duty-Cycle zu 
invertieren.

Ansonsten wuerde ich tendenziell diskrete Transistoren verwenden. Das 
kann man sogar recht leicht auf Lochraster aufbauen, wenn man nicht 
extra ne Platine fertigen moechte.

von Der (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Alle LED mit einem Widerstand an Plus und
dann Quasi die LED mit dem PWM Treiber kurzschliessen.

Nachteil: mehr Stromverbrauch je dunkler die LED.

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Alles Mist irgendwie....
Open-collector-Ausgänge. Letzten Endes heisst das:
-60 wie auch immer geartete Inverter
-60 neue Strombegrenzungwiderstände
-60 pull-up-Widerstände
-evtl. 60 Basiswiderstände

Vielleicht solltest du doch noch mal über eine Umverdrahtung nachdenken?

von Noch einer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Passt doch locker auf Postkartengrösse. Wo ist das Problem?

http://www.mikrocontroller.net/attachment/116537/IMG_0485.JPG

von Tom (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Einfach wären 60 PNP-Transistoren und 60 Vorwiderstände. Die 
Basiswiderstände kann man weglassen und den TLC5947 auf der 
Adafrucht-Platine auf den passenden Basisstrom einstellen.

von Clemens L. (c_l)


Bewertung
0 lesenswert
nicht lesenswert
Pascal schrieb:
> Ich dachte an einen Inverter, also einfache NOT Gatter, die genug Kraft
> haben eine LED pro Kanal zu dimmen. Versorgungsspannung 5V, normale 20mA
> LEDs.
>
> Gar nicht so einfach was zu finden. Habe nach langer Suche diesen IC
> gefunden: 74HC4049

Wie oben schon geschrieben, ist HC zu schwach.

Von den Logikfamilien, die es als DIP gibt, bleibt eigentlich nur noch 
AC übrig (kann 24 mA bei 5 V). (SN74AC240N oder CD74AC240E; die gibt es 
bei den großen Händlern wie Mouser/HBE-Shop/Digikey.) Allerdings wollen 
AC-Chips an ihren Eingängen auch schnelle Signale sehen, mit einem 
Open-Collector-Ausgang schaffst du das nicht.

Also bleibt anscheinend nur noch die Lösung mit 60 PNP-Transistoren.

: Bearbeitet durch User
von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Tom schrieb:
> Einfach wären 60 PNP-Transistoren und 60 Vorwiderstände. Die
> Basiswiderstände kann man weglassen und den TLC5947 auf der
> Adafrucht-Platine auf den passenden Basisstrom einstellen.

Evtl. sollte man noch jeweils einen Widerstand zwischen Basis und
Emitter vorsehen, damit die Transistoren trotz der Leckströme des
TLC5947 sauber sperren und die LEDs in ausgeschaltetem Zustand nicht
weiterglimmen. Wenn das Glimmen nicht sichtbar ist oder nicht stört,
kann man diese Widerstände aber auch weglassen.

Bei den bis zu 180 zusätzlichen Bauteilen würde ich aber noch einmal
nachrechnen, ob es nicht doch schneller geht, die LEDs neu zu verlöten.
Das wäre auf jeden Fall die sauberere Lösung, allein schon wegen der
echten Konstantstromquellen für die LEDs, die der TLC5947 bietet.

von Christian M. (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Eine Spule über jede LED, leuchtet dann beim Ausschalten! :-)))

Gruss Chregu

von Lattice User (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Yalu X. schrieb:

> Bei den bis zu 180 zusätzlichen Bauteilen würde ich aber noch einmal
> nachrechnen, ob es nicht doch schneller geht, die LEDs neu zu verlöten.

Und bei der Gelegenheit gleich den Verdrahtungsaufwand erheblich 
reduzieren durch Verwendung von LEDs mit integriertem PWM Controller.
z.B: https://www.adafruit.com/product/1734

von Pascal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

vielen Dank für Eure rege Teilnahme.

Die Variante mit PNP Transistoren klingt erstmal nicht schlecht, vielen 
Dank für die Idee. Muss für mich dann nochmal abwägen, ob es den Aufwand 
wert ist oder doch Neuverlöten sinnvoller ist..

Welche Transistoren bräuchte ich denn da, reicht da sowas?
https://www.reichelt.de/BC-BCY-Transistoren/BC-557B/3/index.html?ACTION=3&GROUPID=2881&ARTICLE=35845

Plus Vorwiderstände und Basiswiderstände (welche Größen brauche ich da 
jeweils?). Wäre schon auch ein Haufen Lötarbeit... :-(

von Michael B. (laberkopp)


Bewertung
0 lesenswert
nicht lesenswert
Pascal schrieb:
> Plus Vorwiderstände

Daher ja Digitaltransistoren. Waren dir zu klein.

> und Basiswiderstände

Braucht man auch, selbst Konstantstromtreiber gehen nicht auf 0uA.

von Chris L. (kingkernel)


Bewertung
-4 lesenswert
nicht lesenswert
Was spricht dagegen, das ganze per Software zu Lösen?
Statt:

PWM1 = x;

einfach:

PWM1 = 0x0FFF - x;

schrieben? Nimmt der Code-Overhead zu oder wird das ganze zu langsam? 
Dann vielleicht an der Logik arbeiten, dass die Funktionen für heller 
und Dunkler getauscht werden.

[EDIT]Zeig am Ende bitte mal ein paar Bilder vom ganzen.

: Bearbeitet durch User
von Christian M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Chris L. schrieb:
> Was spricht dagegen, das ganze per Software zu Lösen?

Die Ausgänge dieser Karte (TLC5947 oder TLC59711) sind Konstantstrom 
OC-Ausgänge!

Gruss Chregu

von Chris L. (kingkernel)


Bewertung
-3 lesenswert
nicht lesenswert
Ja und?!

Wo ist das Problem, er steuert die dinger per Arduino, wenn ich den 
ersten Beitrag richtig verstanden habe. Also existiert definitiv eine 
Software. Die muss er nur kurz umschreiben!
Irgendwie setzt er ja auch die PWM werte, diese stellen muss er 
abändern.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Bewertung
-1 lesenswert
nicht lesenswert
Chris L. schrieb:
> Ja und?! Wo ist das Problem

Welchen Teil von "Konstantstrom open-collector Ausgänge"
hast du jetzt nicht verstanden?

von Chris L. (kingkernel)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe alles verstanden!!

Und eben diese Ausgänge treibt er im Moment per PWM, nur das eben Hell 
und Dunkel vertauscht sind. Also sollte man da ansetzen und nicht noch 
irgendwelche Transistoren dazubasteln.

>Beim anschließen ans PWM Board dann die Erkenntnis, dass das Board die
>LEDs auf GND dimmt und nicht auf V+ :-(

und

>Ja, ich hab 60 einzeln ansteuerbare PWM Kanäle (3x Adafruit 24-Channel
>12-bit PWM LED Driver).

deuten für mich darauf hin, das er per PWM steuert, also sollte man hier 
schon ansetzen.
Verstehe ich hier was falsch?

von Chris L. (kingkernel)


Bewertung
1 lesenswert
nicht lesenswert
Ahh, jetzt geht mir ein Licht auf. Auf die Verschaltung der LEDs habe 
ich garnicht geachtet. Das kann natürlich nicht funktionieren!

von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Chris L. schrieb:
> Wo ist das Problem, er steuert die dinger per Arduino, wenn ich den
> ersten Beitrag richtig verstanden habe. Also existiert definitiv eine
> Software. Die muss er nur kurz umschreiben!

Du meinst also, man kann aus den KonstantstromSENKEN im TLC5947 per
Softwareänderung KonstantstromQUELLEN machen? Mit Software geht zwar
viel, aber das definitiv nicht.

Edit: Zu spät, da dir das Licht bereits aufgegangen ist :)

: Bearbeitet durch Moderator
von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Umrüsten auf PCA9685.
Vorwiderstände nicht vergessen.

von Joe F. (easylife)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Vorwiderstände nicht auch schon hinter den MDF Platten verbaut 
sind, könntest du die LEDs auch einfach mit deinem vorhandenen 
Treiberboard "kurzschließen". Im AUS Zustand fließt dann halt trotzdem 
weiterhin Strom durch den Vorwiderstand (20mA), also insgesamt 1.2A für 
den ganzen Himmel -> verschmerzbar.
Zusätzlich kann man natürlich die Versorgungsspannung ganz ausschalten 
(für alle LEDs auf GND Seite), für den Zustand, dass der ganze Himmel 
komplett aus sein soll.
Das ganze erfordert dann nur minimale Zusatzhardware (den FET zum 
Abschalten des gesamten Himmels).

: Bearbeitet durch User
von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Kleiner Denkfehler noch:
da die Vorwiderstände ja auf 20mA bei in Serie geschalteter LED 
dimensioniert sind, fließt beim Überbrücken der LED natürlich mehr 
Strom. Je nach Vf der LED u.U. doppelt so viel.
Musst halt gucken, ob deine 5V Versorgung für den dann maximal 
auftretenden Strom ausgelegt ist. Je nachdem welchem Aufwand man treiben 
möchte, könnte man vor die Treiberstufe noch Dioden setzen (Vf < 
Vf_LED), um etwas Strom einzusparen.

: Bearbeitet durch User
von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert
Pascal schrieb:
...
> Ich dachte an einen Inverter, also einfache NOT Gatter, die genug Kraft
> haben eine LED pro Kanal zu dimmen. Versorgungsspannung 5V, normale 20mA
> LEDs.
>
> Gar nicht so einfach was zu finden. Habe nach langer Suche diesen IC
> gefunden: 74HC4049
> http://www.nexperia.com/catcher/74HC4049.pdf
> Zu kaufen bei Reichelt:
> 
https://www.reichelt.de/ICs-74HC40-DIL/74HC-4049/3/index.html?ACTION=3&LA=446&ARTICLE=3227&GROUPID=2933&artnr=74HC+4049
>
> Löst das mein Problem, wenn ich davon 10 Stück verlöte für die 60 LEDs?
> Versorgungsspannung sollte passen, unsicher bin ich bei der Last: Im
> Datenblatt stehen zwar 20 mA, aber gilt das pro Ausgang?
>

74HC hat Probleme mit 20 mA. 74AC wie Reichelt 74AC 14 hat deutlich mehr 
Wumps...

von Pascal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke nach wie vor für Eure rege Teilnahme!

Arduino F. schrieb:
> Umrüsten auf PCA9685.
> Vorwiderstände nicht vergessen.

Ich glaube, dass ist wirklich die beste Idee. Wenn ich das richtig sehe, 
dimmt der über V+. Hat zwar nur 16 Ausgänge, aber egal. Brauch ich halt 
4 davon.

Was meinst Du mit Vorwiderständen bei der Umrüstung? Meine LEDs haben 
die Vorwiderstände bereits alle mit unter der MDF Platte verlötet (daher 
kommt Joe F. Lösung leider auch nicht in Frage).

Bei Umrüstung auf PCA9685 brauch ich sonst dann doch eigentlich gar 
nichts weiter beachten, oder?
http://arduinolearning.com/code/arduino-pca9685-example.php <- sieht gut 
aus, Anode an PWM, Kathode an GND, so wie es bei mir verlötet ist 
(Vorwiderstände jeweils an Anode, aber das spielt ja keine Rolle).

von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Also ich würde ja echt drüber nachdenken die Platte nochmal 
runterzuschrauben, und es richtig anzuschließen. Geht doch schneller, 
als für 60 Kanäle neue Treiber aufzubauen (und ist billiger).

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Pascal schrieb:
> Meine LEDs haben
> die Vorwiderstände bereits alle mit unter der MDF Platte verlötet

Dann hast du ja fast Glück, dass du so auf die Nase gefallen bist.

Denn dein:
> (3x Adafruit 24-Channel
> 12-bit PWM LED Driver).
Ist für OHNE Vorwiderstände

: Bearbeitet durch User
von Pascal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Joe, nein, Platten nochmal runter ist echt wahnsinning aufwändig.
Ich hoffe daher auch, dass meine LEDs sehr lange leben :-)

Ich hab jetzt ein PCA9685 bestellt und teste das dann mal, sobald er da 
ist. Sieht aber ja alles gut aus. Vielen Dank nochmal für den Hinweis 
ufuf!

Halte Euch gerne noch auf dem Laufenden, kann dann auch mal Fotos 
anhängen wenn der Sternenhimmel komplett fertig ist.

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Pascal schrieb:
> Wenn ich das richtig sehe,
> dimmt der über V+.

Das Datenblatt kann es dir erklären!
Der Möglichkeiten sind viele.

: Bearbeitet durch User
von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Pascal schrieb:
> Ich hab jetzt ein PCA9685 bestellt und teste das dann mal, sobald er da
> ist. Sieht aber ja alles gut aus.

Naja, Datenblatt: "10 mA source capability at 5 V"
Das reicht für deine 20 mA nicht.

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> Das reicht für deine 20 mA nicht.
10mA sind meist auch schon recht hell..

Da sind ja Widerstände unter der Decke, plus die Angstwiderstände auf 
dem Board.

Muss man mal ausrechnen.....

Bin ich von ausgegangen, dass man das Datenblatt dazu befragt, und die 
Vorwiderstände passend auswählt, bzw. zusätzliche einbaut.

: Bearbeitet durch User
von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Beachte, dass der PCA9685 nur jeweils 10mA an den Ausgängen liefert:

1
Each LED output can be off or on (no PWM control), or set at its
2
individual PWM controller value. The LED output driver is programmed to
3
be either open-drain with a 25 mA current sink capability at 5 V or
4
totem pole with a 25 mA sink, 10 mA source capability at 5 V.

Die LEDs werden also nicht mit ihrer maximalen Helligkeit leuchten, was
aber wahrscheinlich nicht so schlimm ist.

Der tatsächlich fließende Strom hängt aber auch von der Flussspannung
der LEDs und den bereits verbauten Vorwiderständen ab. Wenn du das hier

  http://arduinolearning.com/code/arduino-pca9685-example.php

beschriebene fertige Modul verwenden möchtest, solltest du zudem
beachten, dass dieses bereits 220Ω-Vorwiderstände eingebaut hat, die
sich zu deinen eigenen Widerständen addieren. Das reduziert den Strom
weiter, wenn du Pech hast, auf etwa 5mA.

Egal für welche Lösung du dich letztendlich entscheidest, würde ich an
deiner Stelle das Ganze erst einmal nur für einige wenige LEDs aufbauen
und testen, ob alles funktioniert und die LEDs hell genug leuchten.

Pascal schrieb:
> Ich hoffe daher auch, dass meine LEDs sehr lange leben :-)

Ja, dann ist es vielleicht ganz vorteilhaft, wenn du sie deutlich unter
ihrem Maximalstrom betreibst :)

Edit: Ok, Joe und Arduino waren schneller :)

: Bearbeitet durch Moderator
von Pascal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ok. Danke für Eure Infos.

Ich werde es ausprobieren. Die Sterne sind bei 100% viel zu hell, in 
einem anderen Sternenhimmelprojekt in meinem Heimkino betreibe ich die 
LEDs in der Regel bei 10% für eine angenehme Helligkeit und 
realistischen Look.

Sieht für mich also ach wie vor nach einer brauchbaren Lösung aus :-)

Ich halte Euch auf dem Laufenden, hoffe das Päckchen kommt am Freitag..

von Tommi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Halt nicht vergessen den Strom auch auf die 10mA zu beschraenken.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.