Forum: Mikrocontroller und Digitale Elektronik LED Zuleitungen reduzieren.


von Nico (secretduck)


Lesenswert?

Hallo liebes Forum,
Aktuell arbeite ich an einem Projekt für meine doch recht große 
Modelleisenbahn. Ziel ist es 10 Leds auf einer Platine, welche maximal 
15x7mm groß sein darf, mit nur drei oder maximal 4 Zuleitungen zu 
steuern. Die Zuleitung verläuft durch einen 1.6mm breiten und 1mm dicken 
Mast. Dieser Mast wird dann mit einer FR4 Platine ausgestattet welche 
die 3 Kontakte in die Anlagenplatte führt. Das händische Verlöten von 
Kupferlackdraht ist mir persönlich blöd und in der Stückzahl in welcher 
ich vorhabe die Anzeigen zu verbauen, extrem zeitraubend.

Die LEDs haben alle verschiedene Farben und würden von JLCPCB bestückt 
werden.

Meine Idee wäre, einen MC auf einer externen Steuerungsplatine zu 
verbauen und diese dann mit VCC, GND und einer DATA Leitung durch den 
Mast in die LED Platine zu verbinden. Also quasi wie jede LED einfach 
einzeln zu verbinden, was aber aufgrund der geringen Platzverhältnisse 
und dem großen Aufwand nicht möglich wäre. Außerdem wäre es dann keine 
Herausforderung mehr :). Auf der Platine soll dann wieder ein winziger 
MC sitzen, welcher die Signale decodiert und die entsprechenden LEDs 
einschaltet. Auf der Steuerungsplatine wird für jede LED eine 
Schraubklemme verbaut. Wenn auf diesem Kontakt der Stromkreis durch 
einen externen Decoder geschlossen wird, soll die entsprechende LED auf 
der LED Platine leuchten.

Das Thema WS812 habe ich mir schon angesehen, aber aufgrund 
verschiedenster Gründe, welche zu umfangreich wären um sie alle zu 
nennen, wieder verworfen.

Was sagt ihr zu dieser Idee? Habt ihr andere Vorschläge? Was denkt ihr, 
wie kann ich diese Aufgabe am besten meistern?

Ich freue mich über hilfreiche Antworten, Tipps, Vorschläge aber auch 
über Kritik.

von F. (radarange)


Lesenswert?

Charlieplexing. Deine 10 LEDs können mit 4 GPIOs und daher auch 4 
Leitungen angesteuert werden.
Kein Microcontroller auf der Anzeige-Platine notwendig.
Die Verbindung durch den Mast lässt sich zum Beispiel mit einer 
doppelseitigen Flex-Platine umsetzen, ist aber natürlich alles relativ 
empfindlich.

von Gerald B. (gerald_b)


Lesenswert?

WS2812 gibts im Miniformat 2020
https://www.mouser.com/pdfDocs/WS2812B-2020_V10_EN_181106150240761.pdf?srsltid=AfmBOoqjFuQkvhiO6k2oJdbcn1ipMcWNtQHW78UZNzL1wJN8pcqg7NCx
3 Leitungen Masse +5V und Data reichen. Die werden Daisy Chain, wie auf 
den Stripes verschaltet. Masse und ´5V parallel und Data ain Input der 
Ersten, Optput der ersten an Input der 2. usw. Kannste auch 
Kupferlackdraht für die paar cm im Mast nehmen.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

> Das Thema WS812 habe ich mir schon angesehen, aber aufgrund
> verschiedenster Gründe, welche zu umfangreich wären um sie
> alle zu nennen, wieder verworfen.
Nenne mal bitte die vermeintlich wichtigen. Diese LEDs würden Dein 
Problem zuverlässig lösen und der Programmieraufwand bzw. der ständige 
Refresh beim Charlieplexing ist mehr Arbeit als die Ansteuerung der 
seriell gesteuerten LEDs.

von Harald K. (kirnbichler)


Lesenswert?

Gerald B. schrieb:
> WS2812 gibts im Miniformat 2020
> 
https://www.mouser.com/pdfDocs/WS2812B-2020_V10_EN_181106150240761.pdf?srsltid=AfmBOoqjFuQkvhiO6k2oJdbcn1ipMcWNtQHW78UZNzL1wJN8pcqg7NCx

Die gibt sogar noch viel kleiner, mit 1.1 mm Kantenlänge.
https://cdn-shop.adafruit.com/product-files/5849/SK6805-EC10-000_REV.01_EN.pdf

Aber der Threadstarter mag auch dieses Mal nicht darauf eingehen, warum 
diese LEDs nicht für ihn in Frage kommen, das war bei der letzten 
Signalselsbtbaudiskussion genau das gleiche.

Hier hieß der Threadstarter zwar anders, aber ich habe das starke 
Gefühl, daß da eine enge Verwandtschaft besteht:

Beitrag "Platinen Anschluss?"

von Nico (secretduck)


Lesenswert?

Danke für eure Antworten,

F. schrieb:
> Charlieplexing. Deine 10 LEDs können mit 4 GPIOs und daher auch 4
> Leitungen angesteuert werden

Gute Idee, allerdings habe ich auch diese Möglichkeit schon umfangreich 
durchdacht. Es muss wirklich jede der 10 LEDs einzeln ansteuerbar sein 
und auch bis zu drei verschiedene LEDs sollen kombiniert werden können.

Gerald B. schrieb:
> WS2812 gibts im Miniformat 2020

Für meine Prototypen habe ich bereits WS2812 im 1010 Format und mit 
einer unglaublichen Höhe von 0,33mm verwendet.

Ben B. schrieb:
> Nenne mal bitte die vermeintlich wichtigen. Diese LEDs würden Dein
> Problem zuverlässig lösen und der Programmieraufwand bzw. der ständige
> Refresh beim Charlieplexing ist mehr Arbeit als die Ansteuerung der
> seriell gesteuerten LEDs.

Natürlich, sehr gerne. Ich habe die Ws2812 Thematik schon sehr intensiv 
durchgearbeitet. Hauptproblem sind die schon gut sichtbaren, einzelnen 
Lichtpunkte welche bei geringen Leuchtstärken sehr deutlich sichtbar 
sind. Die Leuchtstärke kann ich aber nicht erhöhen, weil sie sonst durch 
die sehr dünnen Sonnblenden scheinen würden. Ich habe in die Richtung 
auch schon versucht mit Harz die LEDs zu verblenden oder die Blenden in 
mehreren Schichten mit einem sehr gut deckenden Lack zu lackieren. 
Erfolglos. Wenn ich die Blenden breiter gestalte, sehen sie sehr 
unrealistisch aus.

Ich habe bereits Prototypen mit "normalen" LEDs fertiggestellt. Sie 
treffen genau meine Erwartungen, allerdings mit mit den oben 
beschriebenen Nachteilen.

Im Bereich der Programmierung bin ich noch ein ziemlicher Neuling. Aber 
momentan hatte ich die Idee, mit dem MC auf der Steuerungsplatine 
vielleicht Stromstöße zu senden. Also das zb 8 Stromstöße gesendet 
werden und der MC auf der LED Platine erkennt dann, dass zwischen 5 und 
10 Stöße gesendet wurden und schaltet die zugehörige LED 1. Das geht 
dann mit jeder Led und verschiedenen Werten immer so weiter. -Nur ein 
Gedächnisprotokoll-

Was sagt ihr zu meiner Idee? Habt ihr noch Fragen?

von Nico (secretduck)


Lesenswert?

Harald K. schrieb:
> Aber der Threadstarter mag auch dieses Mal nicht darauf eingehen, warum
> diese LEDs nicht für ihn in Frage kommen, das war bei der letzten
> Signalselsbtbaudiskussion genau das gleiche.

Lieber Harald, natürlich möchte ich auf die Probleme eingehen, um euch 
die Problematik vorzuzeigen. Wie schon im letzen Beitrag von mir 
beschrieben, sollen die LEDs nur mit einem Zehntel der eigentlich 
maximalen Leuchtkraft leuchten, da es sonst unrealistisch wirkt und das 
oben genannte Problem mit dem Durchscheinen der LEDs eintritt. Wenn ich 
die LEDs dann aber herunterdimme sind die einzelnen Lichpunkte vorallem 
bei den grünen und weißen Farbmischungen sehr deutlich sichtbar. Ich 
habe sie schon versucht zu verblenden aber aufgrund der geringen 
Platzverhältnisse ist das nur sehr schwer möglich. Oft war das nur 
gering aufgrtragene Harz schon im Weg um die Platinen ins dafür 
vorgesehene Gehäuse zu verbringen.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Also geht es Dir nicht um die Leitungen zwischen einem µC auf der 
LED-Platine, sondern um die Kommunikation mit diesem µC auf der 
LED-Platine, der dann wiederum die LEDs einfach mit seinen GPIOs 
einschaltet?

Wenn ich das so korrekt verstanden habe, kannst Du Dir da fast jedes 
Bussystem aussuchen. I2C, UART/RS232 mit 5V (oder 3,3), CAN würde auch 
gehen... kommt auf die verwendeten Controller an. Kannst natürlich auch 
ein eigenes Protokoll oder 1-Wire nehmen, was mit Impulsen und Pausen 
arbeitet, das ist alles Deinen Programmierkünsten überlassen.

von F. (radarange)


Lesenswert?

Nico schrieb:
> Gute Idee, allerdings habe ich auch diese Möglichkeit schon umfangreich
> durchdacht. Es muss wirklich jede der 10 LEDs einzeln ansteuerbar sein
> und auch bis zu drei verschiedene LEDs sollen kombiniert werden können.

Sind sie doch.
Da nimmst du effiziente LEDs und einen Microcontroller, der seine 
Ausgänge auch ordentlich treiben kann, dann ist eine hohe 
Multiplexfrequenz kein Problem und führt auch nicht zu unangenehmem 
Flimmern.

Nico schrieb:
> Im Bereich der Programmierung bin ich noch ein ziemlicher Neuling. Aber
> momentan hatte ich die Idee, mit dem MC auf der Steuerungsplatine
> vielleicht Stromstöße zu senden. Also das zb 8 Stromstöße gesendet
> werden und der MC auf der LED Platine erkennt dann, dass zwischen 5 und
> 10 Stöße gesendet wurden und schaltet die zugehörige LED 1. Das geht
> dann mit jeder Led und verschiedenen Werten immer so weiter. -Nur ein
> Gedächnisprotokoll-
> Was sagt ihr zu meiner Idee? Habt ihr noch Fragen?


Du machst dir Gedanken über die absolut falschen Sachen.
Die wichtigste Frage ist, wie du so viele LEDs auf so kleiner Fläche 
ansteuern willst. Es wird ja schon schwierig, da einen Microcontroller 
draufzusetzen und das entsprechend anzuschließen. Klar geht das mit 
einer 6-lagigen Platine, aber du wirst schon Schwierigkeiten haben, 
jemanden dazu zu bringen, so ein winziges Ding überhaupt zu bestücken, 
das macht nämlich nur Ärger.
Jetzt gibt's also folgende Möglichkeiten:
1) MCU auf LED-Platine, der mit 10 GPIOs die 10 LEDs treibt
2) 11 Leitungen durch den Mast, um jede LED einzeln anzusteuern
3) Multiplexing, braucht 7 Leitungen
4) Charlieplexing, braucht 4 Leitungen
5) Individuell adressierbare LEDs, braucht 3-4 Leitungen, je nachdem, 
was man nimmt

Die Kommunikation zwischen Microcontrollern ist übrigens absolut kein 
Problem. Da kann man sich einfach irgendein Protokoll aussuchen, 
meinetwegen auch einen langsamen UART in eine Richtung. Wir brauchen ja 
überhaupt keine Rückmeldung. Das ist in sehr kurzer Zeit programmiert, 
das Problem hier ist die starke Miniaturisierung.
Wenn du sowieso Probleme damit hast, dass dir LEDs zu hell sind, dann 
ist Multiplexing oder Charlieplexing ja optimal für dich, dadurch werden 
sie automatisch etwas dunkler.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Nico schrieb:
> Gute Idee, allerdings habe ich auch diese Möglichkeit schon umfangreich
> durchdacht. Es muss wirklich jede der 10 LEDs einzeln ansteuerbar sein
> und auch bis zu drei verschiedene LEDs sollen kombiniert werden können.

Du solltest evtl. charlieplexing nochmal und deutlich umfangreicher 
durchdenken.
Bei meinem ollen VU-Meter leuchten alle moeglichen LED-Kombinationen 
"gleichzeitig":

Beitrag "VU-Meter mit Attiny13a statt LM3916"

Und wenn man sich etwas anstrengt, werden wahrscheinlich auch noch 2 
verschiedene Helligkeiten fuer jede LED unabhaenging moeglich sein.

Guck' mal das Schaltbild (vumeter.pdf) an. Den linken Teil - also die 12 
LEDs und 4 Widerstaende musst du irgendwie auf deine Miniplatine 
quetschen, der Rest kann ja dann am anderen Ende des Masts rumoxidieren. 
Auch der Laie erkennt sofort: Da sind 4 Leitungen zwischen der linken 
und der rechten Haelfte des Schaltbilds.

Statt dem ganzen Analogkrams in der Schaltung (alles was unterhalb des 
attiny gemalt ist) koenntest zu z.b. den PB4 des attiny mittels eines 
seriellen (UART) Protokolls ansteuern, "gschwind" die Software anpassen 
und schon ist's fertig.
Oder irgendwas mit einem moderneren µC...

Gruss
WK

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Naja wenn er bereits einen µC auf seiner LED-Platine hat, dann wäre es 
ja kein Problem, die LEDs damit per PWM zu dimmen wenn sie ihm zu hell 
sind.

Welche µCs sind das eigentlich und wie möchte er die programmieren wenn 
er da noch keine großen Kenntnisse hat? AVR-Controller und Arduino?

von Nemopuk (nemopuk)


Lesenswert?

Nico schrieb:
> Was sagt ihr zu dieser Idee?

Ich kann die Lage erst einschätzen, wenn ich weiß, warum du die WS2812 
ausgeschlossen hast.

Nico schrieb:
> Es muss wirklich jede der 10 LEDs einzeln ansteuerbar sein

Leuchtet mir nicht ein. Wenn die LEDs mit 2 mA hell genug sind, kann sie 
problemlos 1:10 multiplexen.

von Harald K. (kirnbichler)


Lesenswert?

Nemopuk schrieb:
> wenn ich weiß, warum du die WS2812
> ausgeschlossen hast.

Schrieb er, bei geringer Helligkeit würden die Einzel-LEDs als solche 
erkennbar werden:

> Hauptproblem sind die schon gut sichtbaren, einzelnen
> Lichtpunkte welche bei geringen Leuchtstärken sehr deutlich
> sichtbar sind.

Wobei mir dabei unklar ist, ob er das auch auf die sk6805-10 bezieht, 
die ja nur 1.1mm Kantenlänge haben. Wenn man deren Oberfläche mattiert 
bzw. einen nicht völlig opaken Lack verwendet, sollte die 
Lichtverteilung eigentlich kein Thema sein.

von F. (radarange)


Lesenswert?

RGB-LEDs können schon ein Problem sein, wenn komische Farben gemischt 
werden sollen und dann auch noch eine geringe Helligkeit gefragt ist. 
Ein dunkles "warmweiß" mit einer WS2812 sieht tatsächlich echt nicht gut 
aus und im Modellmaßstab kann es durchaus sein, dass das dann unschön 
auffällt.
Aber ist ja egal, Charlieplexing sollte bei 10 modernen LEDs überhaupt 
kein Problem sein. Da nimmt man einen Microcontroller, dessen GPIO 
ordentlich treiben kann und dann großzügig niedrige Vorwiderstände, ewig 
leben müssen die LEDs auch nicht und durch das Tastverhältnis vertragen 
die auch ein wenig mehr Strom.

von Nemopuk (nemopuk)


Lesenswert?

Ich kann mir gerade auch nicht vorstellen, was daran so schwer sein 
soll, einen funktionierenden Diffusor vor die LEDs zu packen. Und wo das 
Problem bei Charlieplexing sein soll, weiß der Geier.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Ich weiß im Moment nicht mal, ob er sowas wie Charlieplexing oder 
Multiplexing überhaupt braucht, wenn er auf seiner LED-Platine bereits 
einen extra µC für die LEDs hat.

Bei Multicolor-LEDs ist mir teilweise auch schon aufgefallen, daß die 
einzelnen Farben irgendwelche Linseneffekte haben. Wenn man einen 
Diffusor davor setzt, hat man keine einheitliche Farbe, sondern bunte 
Farbverläufe auf dem Diffusor und das wird nicht mal durch Anschleifen 
der LED deutlich besser.

von Nico (secretduck)


Lesenswert?

Ben B. schrieb:
> Also geht es Dir nicht um die Leitungen zwischen einem µC auf der
> LED-Platine, sondern um die Kommunikation mit diesem µC auf der
> LED-Platine, der dann wiederum die LEDs einfach mit seinen GPIOs
> einschaltet?

Kann man so sagen, ja. Aber bei mir sind alle Ideen von euch sehr 
willkommen.

F. schrieb:
> Sind sie doch.
> Da nimmst du effiziente LEDs und einen Microcontroller, der seine
> Ausgänge auch ordentlich treiben kann, dann ist eine hohe
> Multiplexfrequenz kein Problem und führt auch nicht zu unangenehmem
> Flimmern.

Die Idee klingt auch sehr interessant und extrem vielversprechend.

F. schrieb:
> Die wichtigste Frage ist, wie du so viele LEDs auf so kleiner Fläche
> ansteuern willst. Es wird ja schon schwierig, da einen Microcontroller
> draufzusetzen und das entsprechend anzuschließen.

Ja, da hast du recht. Es kommt nämlich noch besser (oder kleiner) Die 
kleinsten Anzeigen sollen dann nämlich nur mehr 7x7mm messen, allerdings 
auch nur mehr 3 Leds tragen. Zwecks der Platzverhältnisse habe ich 
eventuell an die Verlegung des MCs auf die Rückseite der Platine 
gedacht.

Dergute W. schrieb:
> Du solltest evtl. charlieplexing nochmal und deutlich umfangreicher
> durchdenken.

Das ist allerdings sehr richtig. Ich lasse mich gerne eines Besseren 
belehren, wenn es mir weiterhilft.




Ganz zum Schluss würde ich noch gerne ein paar Dinge aufschreiben welche 
ich ganz cool finden würde:

1. 4 Helligkeitsstufen welche mittels Drucktaster auf der 
Steuerungsplatine gewählt werden können.

2. 3 Stufen der sanften ein und ausblendung. 1 LED Modus, sofortiges 
umschalten, 2 Glühbirnen Modus, sanftes ein und ausblenden, 3 Glühbirnen 
Modus langsam, exakt wie bei 2 nur noch langsamer.

3. Wenn eventuell nur drei Leitungen mit der LED Platine verbunden 
werden müssen. (Hardware bereits vorhanden)


Vielen Dank für eure zahlreichen Antworten

von Nico (secretduck)


Lesenswert?

Ben B. schrieb:
> Bei Multicolor-LEDs ist mir teilweise auch schon aufgefallen, daß die
> einzelnen Farben irgendwelche Linseneffekte haben. Wenn man einen
> Diffusor davor setzt, hat man keine einheitliche Farbe, sondern bunte
> Farbverläufe auf dem Diffusor und das wird nicht mal durch Anschleifen
> der LED deutlich besser.

Ben, du hast es auf den Punkt gebracht. Das habe ich vergessen zu 
erwähnen. Die WS2812 wurden bereits angeschliffen und mit einer Kuppel 
aus transparentem Harz welches Matt aushärtet, überdeckt.
Fazit: Das Blau rechts und das Gleb links ist fast schon noch 
auffälliger.

Ben B. schrieb:
> Welche µCs sind das eigentlich und wie möchte er die programmieren wenn
> er da noch keine großen Kenntnisse hat? AVR-Controller und Arduino?

Ja genau. Wie für die WS2812 möchte ich die Prototypen auf einem Arduino 
programmieren. Für die WS2812 habe ich das auch geschafft ^^

: Bearbeitet durch User
von Gerald B. (gerald_b)


Lesenswert?

Neuer Versuch, selber Ansatz:
Der WS2814 ist das Treiber IC, ohne LEDs, analog zum WS2811.
Der WS2814 ist eigentlich für RGBW, kann aber 4 eigenständige LEDs 
treiben. Mit dem WS2814F gibt es eine Gehäusevariante FSOP8, die 
Kleinste unter mehreren Varianten. Ich persönlich habe schon mit Suffix 
C im SOP 8 Gehäuse gearbeitet.
Wenn du vorne deine LEDs drauf machst und auf die Rückseite 4 ICs, hast 
du 16 Kanäle, und 15 wolltest du. Jeweils 100nF KerKo als Puffer-C neben 
jedem WS2814 nicht vergessen ;-)
Falls es Schwierigkeiten geben sollte, mit der doppelseitigen 
Bestückung, machst du 2 Subboards mit jeweis 0,6mm Dicke und Dukos mit 
0,7mm Durchmesser. Auf ein Board kommen die LEDs, auf das andere die 
Treiber. Dann legst du beide Boards übereinander, steckst 0,5mm 
versilberten Draht in die Dukos und verlötest beide Platinen 
übereinander. Castellated Holes (Briefmarkendesign mit aufgeschnittenen 
Dukos am Rand, wie bei den ESP Boards ginge natürlich auch.
Das hat dann den selben Effekt. ICs unten und LEDs oben und ist mit 
1,2mm Gesamtdicke auch nicht dicker, wie sonst eine Platine.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

0. Vergiss das Multi-/Charlieplexing wenn Du schon einen µC mit
   einer LED pro GPIO auf Deiner LED-Platine hast.

> 1. 4 Helligkeitsstufen welche mittels Drucktaster auf der
> Steuerungsplatine gewählt werden können.
Erfordert mindestens 2 Bit Datentransfer von der Steuerungsplatine zur 
LED-Platine.

> 2. 3 Stufen der sanften ein und ausblendung. 1 LED Modus,
> A sofortiges umschalten, 2 Glühbirnen Modus, sanftes ein und
> ausblenden, 3 Glühbirnen Modus langsam, exakt wie bei 2 nur
> noch langsamer.
Das ist alles Deinen Programmierkünsten überlassen und ich würde das mit 
dem Controller auf der LED-Platine machen (per Software-PWM). Dem musst 
Du dann nur noch über einen Datenbus von der Steuerungsplatine aus 
mitteilen, was er mit welcher LED machen soll und die Programmierung des 
LED-Controllers muss non-blocking sein, d.h. alle Funktionen müssen 
gleichzeitig ausgeführt werden können. Also eine Funktion mit einer LED 
darf z.B. nicht die Software-PWM der anderen LEDs blockieren, sollte mit 
Arduino LEDC oder analogWrite kein Problem sein.

> 3. Wenn eventuell nur drei Leitungen mit der LED Platine
> verbunden werden müssen. (Hardware bereits vorhanden)
Kein Problem, schränkt Dich auf einen 1-Wire-Datenbus ein,
ist aber problemlos machbar.

Welche Controller verwendest Du denn und womit willst Du sie 
programmieren?

von Jörg R. (solar77)


Lesenswert?

Nico schrieb:
> Ben B. schrieb:
>> Bei Multicolor-LEDs ist mir teilweise auch schon aufgefallen, daß die
>> einzelnen Farben irgendwelche Linseneffekte haben. Wenn man einen
>> Diffusor davor setzt, hat man keine einheitliche Farbe, sondern bunte
>> Farbverläufe auf dem Diffusor und das wird nicht mal durch Anschleifen
>> der LED deutlich besser.
>
> Ben, du hast es auf den Punkt gebracht. Das habe ich vergessen zu
> erwähnen. Die WS2812 wurden bereits angeschliffen und mit einer Kuppel
> aus transparentem Harz welches Matt aushärtet, überdeckt.
> Fazit: Das Blau rechts und das Gleb links ist fast schon noch
> auffälliger.

Von den WS2812 würdest keine 10 Stück auf deine 15x7mm bekommen. Von den 
WS2812B-2020 schon 10 Stück, aber nicht in einer Reihe.

Wie sollen die LEDs angeordnet werden?

: Bearbeitet durch User
von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Ich glaube, er will gar kein Multicolor,
er scheint einfarbige LEDs genommen zu haben.

von F. (radarange)


Lesenswert?

Nico schrieb:
> F. schrieb:
>> Die wichtigste Frage ist, wie du so viele LEDs auf so kleiner Fläche
>> ansteuern willst. Es wird ja schon schwierig, da einen Microcontroller
>> draufzusetzen und das entsprechend anzuschließen.
>
> Ja, da hast du recht. Es kommt nämlich noch besser (oder kleiner) Die
> kleinsten Anzeigen sollen dann nämlich nur mehr 7x7mm messen, allerdings
> auch nur mehr 3 Leds tragen. Zwecks der Platzverhältnisse habe ich
> eventuell an die Verlegung des MCs auf die Rückseite der Platine
> gedacht.

Natürlich muss der Microcontroller auf die Rückseite, anders geht's 
nicht.
Aber dann such doch mal einen geeigneten Microcontroller, der auf deine 
15x7-Platine passt und mit dem du die ganzen LEDs noch angeschlossen 
bekommst. Das geht schon, keine Frage. Aber layoute das doch mal mit 
einem entsprechenden ATTiny als Grundlage. Du willst auf jeden Fall 
einen Controller nehmen, den du mit dem Arduino-Ökosystem programmieren 
kannst.
Dann wirst du sehen: Geht alles, ist aber viel Aufwand.

Multiplexing löst die ganze Sache relativ elegant.

Nico schrieb:
> 1. 4 Helligkeitsstufen welche mittels Drucktaster auf der
> Steuerungsplatine gewählt werden können.

Bei Multiplexing/Charlieplexing kein Problem

> 2. 3 Stufen der sanften ein und ausblendung. 1 LED Modus, sofortiges
> umschalten, 2 Glühbirnen Modus, sanftes ein und ausblenden, 3 Glühbirnen
> Modus langsam, exakt wie bei 2 nur noch langsamer.

Wie schön du die Helligkeitsstufen hinkriegst (und das ist ja wichtig, 
damit das bei langsamer Helligkeitsänderung immer noch als fließend 
wahrgenommen wird), hängt davon ab, wie hoch deine Multiplexfrequenz 
ist. Muss man ausprobieren, gegebenenfalls direktere GPIO-Ansteuerung 
verwenden, um Zyklen zu sparen. Sollte aber kein fundamentales Problem 
sein.

> 3. Wenn eventuell nur drei Leitungen mit der LED Platine verbunden
> werden müssen. (Hardware bereits vorhanden)

Du musst wissen, was du willst. Als nächstes kommt dann die Beschwerde, 
dass ein Microcontroller auf der Platine ja nen Euro extra kostet und 
das doppelseitige Bestücken und Vereinzeln dieser Winzplatine nochmal 
100 Euro extra, ja, so ist das Leben halt.

von F. (radarange)


Lesenswert?

Ben B. schrieb:
> Kein Problem, schränkt Dich auf einen 1-Wire-Datenbus ein,
> ist aber problemlos machbar.

Als Kommunikationsprotokoll lässt sich alles nehmen. Ich empfehle einen 
UART mit niedriger Baudrate, wenn man das schon machen will. Dank 
niedriger Baudrate kommt man auch problemlos mit den internen 
RC-Oszillatoren aus.
1-Wire ist kompliziert und super langsam und hier soll ja nicht ein MCU 
die Ansteuerung aller LED-Platinen übernehmen, sondern ein MCU die 
Ansteuerung einer LED-Platine. Adressieren muss man die LED-Platine also 
nicht.
Ein langsamer UART überträgt Daten zuverlässig und ist sehr leicht 
programmiert, außerdem benötigt er keine Timer oder anderen Kram. Die 
"modernen" ATTinys haben glaube ich alle einen Hardware-UART.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Nico schrieb:
> kleinsten Anzeigen sollen dann nämlich nur mehr 7x7mm messen, allerdings
> auch nur mehr 3 Leds tragen. Zwecks der Platzverhältnisse habe ich
> eventuell an die Verlegung des MCs auf die Rückseite der Platine
> gedacht.

Wenn du den µC mit auf die LED-Platine bauen willst, wirds bei deinen 
Groessenvorstellungen wohl nicht anders gehen. Dumm nur, dass dann auch 
der Platz fuer die LEDs dank der noetigen Durchkontaktierungen knapp 
wird. Dagegen helfen dann "Vias-mit-Faxen" (buried, plugged, oder wie's 
sonst grad so heisst). Das wird dann halt nur unangenehm teuer. Und 
irgendwie muss der µC auch noch irgendwann mal mit Software aufgefuellt 
werden, d.h. irgendwie mit einem Programmer verbunden werden...

Nico schrieb:
> Ich lasse mich gerne eines Besseren
> belehren,
Besser ist's, sich selbst zu belehren, anstatt drauf zu warten, dass es 
ein Anderer tut.


Nico schrieb:
> ich ganz cool finden würde:
> 1..2..3.

Ist alles schon irgendwie per Software machbar. Aber halt 
programmiertechnisch ggf. nicht so ganz ohne...

Gruss
WK

von Nico (secretduck)


Lesenswert?

Gerald B. schrieb:
> Der WS2814 ist das Treiber IC, ohne LEDs, analog zum WS2811.
> Der WS2814 ist eigentlich für RGBW, kann aber 4 eigenständige LEDs
> treiben. Mit dem WS2814F

Ahh sehr interessant. Da könnte man die "normalen" LEDs dann an den 
Anschlüssen für rot Gelb und Grün bzw. Weiß anschließen und in der 
Helligkeit im Arduino Sketch einstellen wenn ich das richtig verstehe? 
Das WS2814F ist für meine Platzverhältnisse recht groß. Ich bin aber auf 
den WS2811N gestoßen welcher augenscheinlich noch kleiner sein sollte, 
aber einen Ausgang weniger hat. Ich werde die Chinesischen Hyroglyphen 
mal entschlüsseln.

Ben B. schrieb:
> Das ist alles Deinen Programmierkünsten überlassen und ich würde das mit
> dem Controller auf der LED-Platine machen (per Software-PWM). Dem musst
> Du dann nur noch über einen Datenbus von der Steuerungsplatine aus
> mitteilen, was er mit welcher LED machen soll und die Programmierung des
> LED-Controllers muss non-blocking sein, d.h. alle Funktionen müssen
> gleichzeitig ausgeführt werden können. Also eine Funktion mit einer LED
> darf z.B. nicht die Software-PWM der anderen LEDs blockieren, sollte mit
> Arduino LEDC oder analogWrite kein Problem sein.

Da muss ich wohl meine Programmier Fähigkeiten auf ein neues Level 
bringen. Der MC sollte sich im Bereich maximal 4x4mm bewegen um ihn auf 
der Vorderseite lokalisieren zu können.

Jörg R. schrieb:
> Von den WS2812 würdest keine 10 Stück auf deine 15x7mm bekommen. Von den
> WS2812B-2020 schon 10 Stück, aber nicht in einer Reihe.
>
> Wie sollen die LEDs angeordnet werden?

Doch das geht sich mit bereits verwendeten 1010er LEDs aus. Die 
Anordnung steht bereits fest und ist auch ertestet.

Ben B. schrieb:
> Ich glaube, er will gar kein Multicolor,
> er scheint einfarbige LEDs genommen zu haben.

Ja genau einfärbige LEDs sind vollkommen ausreichend. Leidiglich eine 
LED muss in zwei Farben leuchten, was sich aber dank DoppelLEDs recht 
einfach realisieren lässt. Siehe: 
https://www.lcsc.com/product-detail/C404277.html

F. schrieb:
> Wie schön du die Helligkeitsstufen hinkriegst (und das ist ja wichtig,
> damit das bei langsamer Helligkeitsänderung immer noch als fließend
> wahrgenommen wird), hängt davon ab, wie hoch deine Multiplexfrequenz
> ist. Muss man ausprobieren, gegebenenfalls direktere GPIO-Ansteuerung
> verwenden, um Zyklen zu sparen. Sollte aber kein fundamentales Problem
> sein.

Klingt sehr interessant. In das Thema Charlieplexing werde ich mich 
morgen mal einlesen.

F. schrieb:
> Als nächstes kommt dann die Beschwerde,
> dass ein Microcontroller auf der Platine ja nen Euro extra kostet

In den meisten Fällen ist das so, ja. ich bezahle aber lieber ein paar 
Euro mehr pro Stück als den Lötkolben in die Hand zu nehmen und mich mit 
dem heißen Werkzeug erstens 100mal zu verbrennen, zweitens kalte 
Lötstellen zu haben und mit Lötzin und Lötpaste zu hantieren und zu 
guter letzt irgendwelche haudünnen Drähte zu verbauen, welche schon 
reißen, wenn man sie nur ansieht. Löten in den Massen-Nein danke.

Dergute W. schrieb:
> Besser ist's, sich selbst zu belehren, anstatt drauf zu warten, dass es
> ein Anderer tut.

Genau finde ich auch. Bei diesem Projekt sind mir aber meine Ideen 
ausgegangen und deswegen lasse ich mich gerne mit euren Ideen berieseln.

Dergute W. schrieb:
>> ich ganz cool finden würde:
>> 1..2..3.
>
> Ist alles schon irgendwie per Software machbar. Aber halt
> programmiertechnisch ggf. nicht so ganz ohne...

Eine Herausforderung ist das Projekt von Anfang an, aber genau das 
gefällt mir richtig gut. Ständig was neues zu lernen und den Horizont zu 
erweitern.

von F. (radarange)


Lesenswert?

Nico schrieb:
> Eine Herausforderung ist das Projekt von Anfang an, aber genau das
> gefällt mir richtig gut. Ständig was neues zu lernen und den Horizont zu
> erweitern.

Also jetzt machst du mal Folgendes: Such dir einen geeigneten 
Microcontroller und mach mal ein Platinenlayout damit. Dann können wir 
mal weiter darüber reden, denn so ist das irgendwie unsinnig. Du suchst 
eine Herausforderung, der wirklich herausfordernde Teil, nämlich das 
alles auf die Platine zu quetschen, ist dir aber noch überhaupt nicht 
bewusst. Dann geht's jetzt los. :)
Beim Preis für die Bestückung wirst du dann mit den Ohren schlackern, 
denn je kleiner es wird, umso fürstlicher lassen sich die Bestücker das 
bezahlen.

von Björn W. (bwieck)


Lesenswert?

Das grösste Problem wird sein die ganzen WS-LEDS über sehr dünne 
Leitungen zu versorgen. Es wird also viele Kondensatoren brauchen und 
damit eine Herausforderung für das Netzteil.
Aber mal sehen was passiert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nico schrieb:
> In das Thema Charlieplexing werde ich mich morgen mal einlesen.

Ein Beispielprojekt kann ich dir hier anbieten:

https://github.com/darc-s09/thermometer-bausatz

Dort hatten wir ausreichend Pins, sodass ich die LEDs in zwei 
6er-Gruppen aufgeteilt habe, die je 3 Pins brauchen. Die machen auch 
zwei Helligkeitsstufen gleichzeitig (also verschiedene LEDs verschieden 
hell).

Für die Kommunikation würde ich schlicht Standard-UART nehmen: dann 
kannst du das einfach vom PC aus alles ausprobieren mit einem simplen 
USB-("TTL"-)Seriell-Wandler.

Gerade geschaut, QFN-Gehäuse gibt es halt nicht mit allzu wenigen Pins. 
Bei den 8-Pinnern ist man dann schnell bei SOIC und damit ziemlich groß 
(ein SOT-23-6 reicht ja nicht).  Wenn du einen ATtiny406 im 3x3 
QFN-Gehäuse nimmst, dann hättest du sogar wirklich genügend Pins, um 
ohne Multi- oder Charlieplexing auszukommen.

von Harald K. (kirnbichler)


Lesenswert?

Jörg W. schrieb:
> Wenn du einen ATtiny406 im 3x3
> QFN-Gehäuse nimmst

... oder einen CH32V002/3. Der hat dann ebenfalls 20 Pins, womit sich 
jede LED auch einzeln ansteuern ließe.

Den CH32V002 gibt es laut Datenblatt auch im QFN-12, das ist dann nur 
noch 2x2 mm groß, allerdings kenne ich keine Bezugsquelle.

: Bearbeitet durch User
von Jörg R. (solar77)


Lesenswert?

Nico schrieb:
> Jörg R. schrieb:
>> Von den WS2812 würdest keine 10 Stück auf deine 15x7mm bekommen. Von den
>> WS2812B-2020 schon 10 Stück, aber nicht in einer Reihe.
>>
>> Wie sollen die LEDs angeordnet werden?
>
> Doch das geht sich mit bereits verwendeten 1010er LEDs aus. Die
> Anordnung steht bereits fest und ist auch ertestet.

Das ist ja eine vollkommen unwichtige Information. Bloß keine weiteren 
Informationen liefern, die könnten am Ende noch hilfreich sein.

Die Information hätte in den Eröffnungsthread gehört, spätestens aber 
nach dem 2ten Kommentar in dem ein LED Vorschlag gemacht wurde.

Jetzt liefere wenigstens detaillierte Informationen zu den bereits 
ausgewählten LEDs.

Deine Titelzeile ist auch wenig aussagekräftig. Anschlüsse zu reduzieren 
suggeriert mir das es eine Schaltung gibt, die aber verändert/verbessert 
werden soll. Wie sieht die Schaltung aus?

: Bearbeitet durch User
von Gerald B. (gerald_b)


Lesenswert?

Nico schrieb:
> Gerald B. schrieb:
>> Der WS2814 ist das Treiber IC, ohne LEDs, analog zum WS2811.
>> Der WS2814 ist eigentlich für RGBW, kann aber 4 eigenständige LEDs
>> treiben. Mit dem WS2814F
>
> Ahh sehr interessant. Da könnte man die "normalen" LEDs dann an den
> Anschlüssen für rot Gelb und Grün bzw. Weiß anschließen und in der
> Helligkeit im Arduino Sketch einstellen wenn ich das richtig verstehe?
> Das WS2814F ist für meine Platzverhältnisse recht groß. Ich bin aber auf
> den WS2811N gestoßen

Ja, jeder LED Ausgang kann 256 Helligkeitsstufen (1 byte)
Der WS2811 ist im DFN Gehäuse. Das ist für mich kein bauelement, das ist 
Feinstaub :P
Aber wenn du bestücken lässt und die dafür keine Mondpreise aufrufen, 
warum nicht...
Du kannst Deine Signale alle in einer Reihe hintereinander schalten. 
Dann braust du zwar statt 3, 4 Leitungen, den Data Output dann 
weiterführen zum nächsten Signal...
Da brauchst du keine zig µC, einer reicht, für die ganze Kette.
Da es aber bei einer Bahnanlage vorkommen kann, das es von einem Signal 
zum nächsten mehr als 10-20 cm Datenleitung sein können, ist es nicht 
von Schaden, die Datensignale am Ausgang in RS485 zu wandeln und am 
nächsten Eingang dann wieder zurück zu wandeln. Ich habe das für 
Deckenspots so gemacht. Jeder Spot hat 2x MAX485, einen WS2814 und 4 
Schaltregler für eine RGBW Power-LED. Da waren die Spots auch jeweils ca 
1 Meter auseinader. Bis 500m Abstand sind da theoretisch möglich :-)
Du kannst, wenn du 1x so einen Bus hast, auch in jedes Modellhaus so 
eine Platine setzen und verschiedene Räume, die Fenster zufällig ein und 
ausschalten. Oder Straßenlaternen usw.

von Daniel S. (supernova01)


Lesenswert?

Nico schrieb:
> Programmier Fähigkeiten

Jo, nicht nur das, aber mach das mal.

Nico schrieb:
> lokalisieren

du meintest eher platzieren, oder?

F. schrieb:
> Charlieplexing.

Nico schrieb:
> Gute Idee, allerdings habe ich auch diese Möglichkeit schon umfangreich
> durchdacht.

Nico schrieb:
> Klingt sehr interessant. In das Thema Charlieplexing werde ich mich
> morgen mal einlesen.

Du schreibst zu viel nebensächliches Zeug, kannst und weißt viel zu 
wenig und du widersprichst dir ständig selbst. Arbeite dich doch erstmal 
in die Fachthemen ein, bevor du dir noch mehr Möglichkeiten aufzählen 
lässt die du nicht verstehst, das bringt doch nichts...

Nico schrieb:
> lasse ich mich gerne mit euren Ideen berieseln.

Wenn du eine Berieselung möchtest, geh doch einfach mal duschen.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nico schrieb:
> Im Bereich der Programmierung bin ich noch ein ziemlicher Neuling. Aber
> momentan hatte ich die Idee, mit dem MC auf der Steuerungsplatine
> vielleicht Stromstöße zu senden.
Warum nimmst du statt der "Stromstöße" nicht sowas simples wie eine 
serielle Schnittstelle? Funktioniert zigmilliardenfach ganz problemlos 
und das Beste: du bezahlst die beim Kauf des µC sowieso, es kostet 
nichts zusätzlich, wenn du die dann auch verwendest.

> Meine Idee wäre
Mach doch mal eine Skizze (mechanisch und elektrisch) statt nur mit 
Prosa um dich zu werfen und auf das Kopfkino der möglichen Helfer zu 
vertrauen.

Daniel S. schrieb:
> Arbeite dich doch erstmal in die Fachthemen ein
In dem viertel Jahr seit dem letzten Thread zum selben Thema wäre dafür 
einiges an Zeit gewesen. Irgendwie sieht das hier für mich aus wie eine 
Totgeburt mit Ansage.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.