RGB(W) Beleuchtung als Statusanzeige mit Marlin

In diesem Tutorial zeige ich euch, wie ich einen RGBW LED-Streifen an meinen 3D-Drucker angeschlossen habe und wie der Drucker dar├╝ber nicht nur h├╝bsch ausgeleuchtet wird, sondern auch seinen aktuellen Status anzeigen kann. Wie das dann aussieht, wenn der Drucker aufheizt, seht ihr in diesem Zeitraffer.

Die Idee dazu kam mir noch recht zu Anfang meiner 3D-Druck-Karriere, als ich in irgendeinem YouTube Video mal einen ├Ąlteren Makerbot gesehen habe, der eine farbige Beleuchtung hatte. Einen entsprechenden LED-Strip, sogar mit warmwei├čen LEDs, zus├Ątzlich zu den farbigen, also RGBW oder streng genommen RGBWW, hatte ich noch von einem fr├╝heren Projekt rumliegen. Nach kurzer Recherche war klar, dass au├čerdem Transistoren ben├Âtigt werden, da das Mainboard des Druckers an seinen geeigneten Ausg├Ąngen nicht gen├╝gend Strom f├╝r die LEDs liefern k├Ânnte.

Leider kam schnell die erste Ern├╝chterung, denn damals hatte ich mein Mainboard noch nicht getauscht. Leider ist das in den ersten Tornados verbaute Mainboard sehr rudiment├Ąr und hat nur wenige Anschl├╝sse, die f├╝r dieses Projekt n├Âtig w├Ąren. Gebraucht werden hier n├Ąmlich Pins, die PWM-f├Ąhig sind (Pulse Width Modulation), also Pins die nicht nur den Status an oder aus kennen, sondern die quasi “dimmbar” sind. PWM funktioniert, vereinfacht gesagt, durch schnelles an- und ausschalten. Je h├Âher die Frequenz, desto heller leuchtet eine angeschlossene LED, bei langsameren Frequenzen leuchtet sie entsprechend dunkler.

Das Board der fr├╝hen Tornados verf├╝gt zwar mutma├člich ├╝ber PWM-f├Ąhige Pins, davon war bei mir aber einer schon vom BLTouch belegt. Mutma├člich schreibe ich, weil das Board leider kaum dokumentiert ist. Es weicht vom MKS Base in einigen Aspekten ab, rein optisch kommt es wohl dem Biqu Base am n├Ąchsten, jedoch habe ich auch daf├╝r keine ordentliche Dokumentation gefunden.

Der einzige Anschlussblock, in dem dort wohl nutzbare PWM Pins vorhanden sind, w├Ąre der Servos Block. Dieser hat beim Tevo Base aber nur zwei Reihen (jeweils Signal, +5V, GND) und davon war, wie gesagt eine schon vom Bed Leveling Sensor belegt. Zum Gl├╝ck habe ich das Board dann getauscht und auch die neueren Tornados kommen ab Werk mit einem MKS Gen L Mainboard, das ├╝ber ausreichend PWM Pins verf├╝gt.

Anschluss der LEDs

Die Pins auf Board, sei es nun ein MKS Gen oder ein Arduino mit RAMPS Shield oder was auch immer, sind nur daf├╝r gedacht Steuersignale zu ├╝bertragen, k├Ânnen daher nur wenige mA an Strom liefern. F├╝r eine einzelne LED beim klassischen Blink-Aufbau, den jeder wohl als erstes Arduino-Projekt umsetzt, reicht das aus. F├╝r einen ganzen Streifen mit einigen mehrfarbigen LEDs ist das aber viel zu wenig. Wer hier seine LEDs direkt anschlie├čt, wird wohl kein Licht bekommen oder schlimmstenfalls sein Board zerst├Âren.

Der Korrekte Weg f├╝hrt deshalb ├╝ber Transistoren, die in diesem Fall als Schalter eingesetzt werden. Geschaltet wird bei den meisten LED-Streifen die Masse. Die Streifen besitzen einen gemeinsamen Eingang, meist f├╝r 12V, der alle LEDs mit Strom versorgt und je Farbe einen Anschluss f├╝r Masse, also GND.

Lese auch:  Upgrade: MKS SGEN_L 32bit Mainboard & TMC2209 Treiber

Kleine Transistorkunde

Ein Transistor hat drei Anschl├╝sse: Collector, Emitter und Basis. Wir verwenden einen NPN Transistor, das bedeutet, dass unser Schalter normalerweise immer geschlossen ist, also keinen Strom vom Collector zum Emitter leitet. Um den Schalter zu aktivieren wird ein Signal an die Basis angelegt, nun wird die Collector-Emitter Strecke leitend.

Auf unsere Anforderungen abgeleitet hei├čt das, dass wir den Streifen zun├Ąchst einmal direkt mit Strom versorgen m├╝ssen, den k├Ânnen wir z.B. am Netzteil des Druckers abgreifen. Dann ben├Âtigen wir je Farbe einen NPN Transistor, f├╝r RGBW also vier St├╝ck.

Am Collector des Transistors wird eine Farbe des LED Streifens angeschlossen, am Emitter GND, davon finden sich am Mainboard und Netzteil ausreichend geeignete Anschl├╝sse. Den PWM Pin unseres Mainboards m├╝ssen wir dann noch mit der Basis verbinden. Nun wird jedes Mal wenn der Pin ein Signal ausgibt auch der Weg f├╝r den Strom durch die LEDs frei, unser Streifen leuchtet.

In der Praxis braucht es in diesem vereinfachten Aufbau noch eine zus├Ątzliche Komponente: Einen Basis (Vor-)Widerstand f├╝r den Transistor. Der sorgt daf├╝r, dass der Transistor auch wirklich durchschaltet, wenn ein Signal anliegt und sch├╝tzt unseren Transistor vor ├ťberlastung. Ohne den Widerstand k├Ânnten n├Ąmlich, je nach Last die geschaltet wird, hohe Str├Âme von der Basis zum Emitter flie├čen. Die meisten Transistoren sind auf dieser Strecke aber nur f├╝r kleine Str├Âme ausgelegt und w├╝rden andernfalls zerst├Ârt.

Schaltplan

Im folgenden Schaltbild seht ihr den grundlegenden Aufbau unserer Steuerung. Links sind die Eing├Ąnge, also 12V vom Netzteil (Achtung, bei einem 24V Drucker nicht einfach einen 12V Streifen anschlie├čen!) und die Steuersignale vom Mainboard (bezeichnet mit den Namen der Pins, die wir in diesem Tutorial verwenden). Rechts seht ihr die entsprechenden Ausg├Ąnge, die an den LED-Strip angeschlossen werden. In der Mitte die vier Transistoren mit jeweils einem Vorwiderstand. Die Seite mit dem Pfeil ist der Emitter, die alle ├╝ber eine gemeinsame Leitung an GND angeschlossen sind.

Der Vorwiderstand kann ├╝brigens nicht ganz beliebig gew├Ąhlt werden. Zwar hat man eine gewisse Toleranz nach oben und unten, aber sowohl ein zu kleiner als auch ein zu gro├čer Wert kann dazu f├╝hren dass die Schaltung nicht funktioniert oder die Transistoren ├╝berhitzen und zerst├Ârt werden.

Die Berechnung des geeigneten Vorwiderstands w├╝rde den Rahmen hier sprengen, da man einige Werte der Transistoren und den Strom, den die Verbraucher ziehen, kennen muss. Deshalb verlinke ich an dieser Stelle nur auf einen sehr guten Artikel bei mikrocontroller.net, nach dem auch ich mich gerichtet habe.

Ein Beispiel dazu m├Âchte ich euch aber geben: Ich habe einen LED Streifen in der oberen Strebe des Druckers, also etwa 35-40cm lang. Alle Farben auf voller Helligkeit werden in der Regel nie gemeinsam an sein, daher habe ich mich nach den stromhungrigsten Farben (wei├č und blau) orientiert. Sind die beiden gleichzeitig zu 100% an, zieht mein Streifen um die 200mA, bei nur einer Farbe um die 100-150mA. Nach einer Recherche im Datenblatt der Transistoren, die ich verwende, komme ich auf einen Widerstand von etwa 220╬ę, der ├╝ber diese Spanne im Mittel ganz gut passt.

Lese auch:  3D Druck Anf├Ąngertipps

Steuerung der LEDs ├╝ber Marlin

Eher zuf├Ąllig habe ich entdeckt, dass schlaue Entwickler doch tats├Ąchlich schon eine Steuerung f├╝r verschiedene Arten von LEDs in die Firmware integriert haben. Wir m├╝ssen als gar nichts programmieren!

Das Feature findet sich in der configuration.h, ziemlich am Ende. Dort muss lediglich die Zeile f├╝r die verwendeten LEDs aktiviert werden und die verwendeten Pins sind anzugeben – das war es schon. So sieht das dann f├╝r unseren RGBW Streifen aus:

//#define RGB_LED
#define RGBW_LED

#if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
  #define RGB_LED_R_PIN 5
  #define RGB_LED_G_PIN 4
  #define RGB_LED_B_PIN 6
  #define RGB_LED_W_PIN 44
#endif

Wenn dein verwendeter Streifen keine extra wei├čen LEDs hat, dann wird anstatt der zweiten Zeile die erste aktiviert. Ein Pin f├╝r wei├č muss dann nicht definiert werden.

Wie man sieht habe ich die Pins 4, 5, 6 und 44 verwendet. Alle sind auf dem MKS Gen L PWM Pins. Die drei mit den niedrigen Zahlen sitzen in den den Bl├Âcken Servos-1 und Servos-2, Pin 44 im Aux-2. Die untere Reihe des Servos-1 Blocks wird vom BLTouch belegt, daher wird der hier nicht verwendet.

Die Plug&Play L├Âsung

W├Ąhrend der Vorbereitung dieses Tutorials kam mir der Gedanke, dass vielleicht nicht jeder das hier gezeigte einfach umsetzen kann. Vom Schaltplan ist der Weg zur Platine mit der richtigen Software nicht mehr weit. Daher habe ich auf Facebook gefragt, ob Bedarf f├╝r eine fertige Plug&Play L├Âsung besteht. Mit weit ├╝ber 90% war das Ergebnis recht eindeutig.

So ist dann das RGBW Plug&Play entstanden, das ihr ab sofort als komplettes Kit bei mir im Shop kaufen k├Ânnt.

Der Clou des Boards besteht darin, dass neben einem einfachen Zusammenbau auch an die Stromversorgung gedacht wurde. Die meisten LED-Strips arbeiten n├Ąmlich mit 12V, k├Ânnen also an einen Drucker, der mit 24V arbeitet, wie der Tevo Tornado, nicht direkt angeschlossen werden. Zwar gibt es auch Strips f├╝r 24V, die sind aber meist teurer.

Daher sind im Kit nicht nur die Transistoren und Widerst├Ąnde enthalten, sondern auch noch ein 12V Spannungsregler, der bis zu 2A liefern kann. Das Board kann also direkt am Netzteil angeschlossen werden und liefert am Ausgang die ben├Âtigten 12V. Aber auch f├╝r Drucker mit 12V Netzteil oder 24V Streifen ist es geeignet, da man einfach per Jumper den Regler umgehen und die Spannung direkt vom Eingang zum Ausgang durchschleifen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht ver├Âffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr dar├╝ber, wie deine Kommentardaten verarbeitet werden.