Forum: Mikrocontroller und Digitale Elektronik Arduino RGB-LED Steuerung


von Christian S. (darkmemoriesger)


Angehängte Dateien:

Lesenswert?

Hallo,
ich baue zur Zeit in einem kleinen Projekt einen Kopfhörerständer. In 
diesen sind Acrylscheiben integriert die von unten mit 3 alten 10 cm 
langen RGB-LED-Stripes beleuchtet werden. Diese sollen von einem Arduino 
Pro Mini gesteuert werden.

Dafür habe ich die Schaltung im Anhang entworfen. Sie verwendet 6 
MOSFETs (ich will Multiplexing anwenden) um mit den 5V Signalen des 
Arduino die 12V Betriebsspannung der LEDs zu steuern. Meine Wahl fiel 
hierbei auf den MOSFET IRF530N da er alle Bedingungen erfüllte und 
billig war. Die Vorwiderstände der LEDs habe ich weggelassen, da diese 
bereits auf dem Stripe integriert sind.
Multiplexing will ich nutzen, da der Arduino nur 6 PWM-Ports hat, ich 
jedoch für die vollständige RGB-Steuerung 9 bräuchte.
Der Schalter vor D2 dient als Eingabe zum Durchschalten mehrerer Modi. 
Dessen Status wird per
1
digitalRead(2)
 ausgelesen.

Jetzt habe ich zwei Fragen:
1. Ist die Schaltung so korrekt? Ich beziehe das sowohl auf die 
Verbindung mit dem Arduino(das ist mein erstes Arduino-Projekt) als auch 
auf die Verwendung der MOSFETs und der PullDown-Widerstände (ich setze 
hier das erste Mal MOSFETs ein). Ein weiterer Punkt ist, ob vor den 
Schalter-Pin D2 noch ein PullDown-Widerstand muss, da ich mir in dieser 
Frage nicht sicher bin.
2. Habe ich das richtig verstanden, dass der Pro Mini mit 5V 
Eingansspannung versorgt wird? Wenn ja, wie komme ich dann am besten von 
12V von irgendeinem Netzteil auf 5V? Reicht da ein Spannungsteiler + 
Kondensator? Ich will übrigens diesen Arduino-Klon einsetzen: 
http://www.amazon.de/gp/product/B015MGHLNA/sr=8-1/qid=1459613874/ref=olp_product_details?ie=UTF8&me=&qid=1459613874&sr=8-1

von Paul S. (paul_s856)


Lesenswert?

Christian S. schrieb:
> 1. Ist die Schaltung so korrekt?

Wenn du das so haben willst, ja. MOSFET Gatewiderstände könnten etwas 
kleiner, so um 150 Ohm.

Christian S. schrieb:
> 2. Habe ich das richtig verstanden, dass der Pro Mini mit 5V
> Eingansspannung versorgt wird?

Fast.
"Operating Voltage  3.3V or 5V (depending on model)
Input Voltage  3.35 -12 V (3.3V model) or 5 - 12 V (5V model)" 
(arduino.cc)

Die dinger arbeiten je nach Modell mit 3.3 oder 5V, haben aber 
anscheinend einen Spannungsregler. Einfach an 12V an Vin anschließen.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

für 3/9 LEDs in RGB gnügen ja ein mini und ein Stück WS2812b Stripe, 
fertig.

FETs entbehrlich das vereinfacht vieles!

von Wolfgang (Gast)


Lesenswert?

Christian S. schrieb:
> Meine Wahl fiel hierbei auf den MOSFET IRF530N da er alle Bedingungen
> erfüllte

Die einzige Bedingung, die er nicht sicher erfüllt, ist die vernünftige 
Ansteuerbarkeit mit 5V. Dafür gibt es von International Rectifiers 
MOSFETs, die bevorzugt mit einem L (für Logic Level) in der 
Typenbezeichnung gekennzeichnet sind. Aber vielleicht ist der Strom von 
deinen LEDs gering genug, so dass es funktioniert und der FET auch nicht 
übermäßig warm wird. Die angegebenen 160mΩ für den On-Widerstand sind 
allerdings schon kräftig.

von Christian S. (darkmemoriesger)


Lesenswert?

Joachim B. schrieb:
> für 3/9 LEDs in RGB gnügen ja ein mini und ein Stück WS2812b Stripe,
> fertig.
>
> FETs entbehrlich das vereinfacht vieles!

Wie meinst du das jetzt? Ich dachte da die stripes mit 12 V arbeiten 
brauch ich FETs? Deshalb habnich welche verbaut

von Thomas E. (picalic)


Lesenswert?

Q1..Q3 dürfte an der Stelle wohl kaum so funktionieren! Oder gibt der 
Aduino da etwa eine Gatespannung von deutlich über 12V aus? Da gehören 
eigentlich P-Kanal FETs hin! Aber auch dann brauchst Du noch eine 
geeignete Treiberschaltung, zumindest jeweils einen NPN-Transistor, um 
die 0/5V vom Arduino in 0/12V Gatespannung umzusetzen.

von Joachim B. (jar)


Lesenswert?

Christian S. schrieb:
> Joachim B. schrieb:
>> für 3/9 LEDs in RGB gnügen ja ein mini und ein Stück WS2812b Stripe,
>> fertig.
>>
>> FETs entbehrlich das vereinfacht vieles!
>
> Wie meinst du das jetzt? Ich dachte da die stripes mit 12 V arbeiten
> brauch ich FETs? Deshalb habnich welche verbaut

nicht so WS2812b Stripes, können mit der Din Leitung direkt an einen 
Port

http://www.tweaking4all.com/wp-content/uploads/2014/01/arduino_usb_and_extrenal_power_ws2812.jpg

LIB dazu
https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library


die Stripes gibt es in 30/60/144 LEDs pro Meter

: Bearbeitet durch User
von Christian S. (darkmemoriesger)


Lesenswert?

Thomas E. schrieb:
> Q1..Q3 dürfte an der Stelle wohl kaum so funktionieren! Oder gibt der
> Aduino da etwa eine Gatespannung von deutlich über 12V aus? Da gehören
> eigentlich P-Kanal FETs hin! Aber auch dann brauchst Du noch eine
> geeignete Treiberschaltung, zumindest jeweils einen NPN-Transistor, um
> die 0/5V vom Arduino in 0/12V Gatespannung umzusetzen.

Jetzt Frage ich mal ganz naiv: Kann ich auch statt den MosFets einfache 
npn-Transitoren nutzen um die 12 V mit den 5V des digital-Pins zu 
schalten oder ist das jetzt komplett daneben?

von Thomas E. (picalic)


Lesenswert?

Christian S. schrieb:
> Kann ich auch statt den MosFets einfache
> npn-Transitoren nutzen um die 12 V mit den 5V des digital-Pins zu
> schalten oder ist das jetzt komplett daneben?

Letzteres.
Auch mit bipolaren Transistoren kannst Du nicht einfach ohne einen 
zusätzlichen Pegelwandler direkt den Transistor, der die +12V schalten 
soll, von einem Logik-Ausgang (0..5V) ansteuern.

In Bezug auf Ersatz der MOSFETs, die die Kathoden gegen GND schalten, 
dürften für Dein bisschen Strom (mehr als vielleicht 100mA pro Kanal 
werden bei den 10cm Streifen ja wohl nicht zusammenkommen, oder?) auch 
jeweils ein NPN, z.B. BC337, ausreichen.

von Christian S. (darkmemoriesger)


Lesenswert?

Ok.
Ich habe mich jetzt noch ein bisschen mehr mit Transistoren und MOSFETs 
beschäftigt und glaube jetzt zu verstehen, was ihr meint, das Q1...Q3 
nicht funktionieren würden.
Das ist doch einfach nur weil die eigentliche Last erst nach dem 
Transistor kommt? Das könnte man ja dann abändern, in dem man PNP / 
P-Kanal Transistoren nutzt. Nun verstehe ich nur nicht was Thomas Elger 
mit "einer geeigneten Treiberschaltung meint"? Kann mir bitte jemand 
eine solche zeigen und eine kurze Erklärung geben was diese tut?

Noch etwas anderes: wenn ich jetzt Logic-Level-MosFets verwende, welche 
würden sich dann als die drei n-Kanal und welche als die drei p-Kanal 
MosFets eignen?

Danke im Vorraus.

von Joachim B. (jar)


Lesenswert?

Christian S. schrieb:
> Nun verstehe ich nur nicht was Thomas Elger
> mit "einer geeigneten Treiberschaltung meint"? Kann mir bitte jemand
> eine solche zeigen und eine kurze Erklärung geben was diese tut?

warum hältst du so daran fest für 3 oder 9 LEDs wo es mit WS2812b keine 
Teile braucht, ich verstehe es nicht.

Die LEDs gibt es fertig als Stripe oder einzeln mit 4 Beine wenn du 
Einzel LEDs willst!

von Christian S. (darkmemoriesger)


Lesenswert?

Joachim B. schrieb:
> warum hältst du so daran fest für 3 oder 9 LEDs wo es mit WS2812b keine
> Teile braucht, ich verstehe es nicht.
>
> Die LEDs gibt es fertig als Stripe oder einzeln mit 4 Beine wenn du
> Einzel LEDs willst!

Ich hatte ursprünglich vor Restbestände an LED Stripes auf zu brauchen. 
Allerdings habe ich auch die Idee mit diesen WS2812b Stripes noch nicht 
verworfen. Trotzdem Frage ich Interesse halber wie ich MOSFETs einsetzen 
muss, da ich dass vielleicht in späteren Projekten brauchen werde.

Zu den WS2812b: kann ich damit die 3 Stripes einzeln in vollem RGB 
ansteuern mit nur 6 PWMs?

von Wolfgang A. (Gast)


Lesenswert?

Christian S. schrieb:
> Zu den WS2812b: kann ich damit die 3 Stripes einzeln in vollem RGB
> ansteuern mit nur 6 PWMs?

Die WS2812b haben mit deinen PWM-Ausgängen nichts zu tun. Die Dinger 
verwenden ein serielles Datenprotokoll, das auf den Eingang der ersten 
LED geführt wird. Wozu gibt es eigentlich Datenblätter?

von Thomas E. (picalic)


Lesenswert?

Christian S. schrieb:
> Nun verstehe ich nur nicht was Thomas Elger
> mit "einer geeigneten Treiberschaltung meint"?

Dann überleg Dir doch mal, wenn Du zum Schalten der (+12V) dort einen 
P-Kanal FET einbaust, mit Source an (+12V) und die Last an Drain 
angeschlossen. Klar, wenn Dein Microcontroller den FET einschalten soll, 
kannst Du das Gate über einen Port auf Masse ziehen, aber welche 
Spannung musst Du am Gate anlegen, damit der FET sperrt? Und wie soll 
der Microcontroller diese ausgeben können? Na, klickt's jetzt 
vielleicht?

von Christian S. (darkmemoriesger)


Lesenswert?

Thomas E. schrieb:
> Dann überleg Dir doch mal, wenn Du zum Schalten der (+12V) dort einen
> P-Kanal FET einbaust, mit Source an (+12V) und die Last an Drain
> angeschlossen. Klar, wenn Dein Microcontroller den FET einschalten soll,
> kannst Du das Gate über einen Port auf Masse ziehen, aber welche
> Spannung musst Du am Gate anlegen, damit der FET sperrt?

OK ich benutze einen selbstsperrenden P-Kanal FET. 12 V an Source. D.h. 
damit der FET sperrt müssten an Gate 12 V liegen, damit UGS = 0V wird. 
Wenn der Transistor schalten soll muss am Gate 0V liegen, damit UGS = 
-12V wird. Dann schaltet der Fet durch. Das heißt ich schalte noch einen 
NPN davor und nehme dessen invertiertes Signal an Gate. Die Basis dieses 
NPN wird dann vom Pin des Mikrocontrollers gesteuert.

Das ergibt dann ne ähnliche Schaltung wie hier:
https://upload.wikimedia.org/wikipedia/commons/7/7b/Gatetreiber_diskret_simple.PNG
Nur das da ein N-kanal mosfet gezeigt wurde.

Richtig?

von Thomas E. (picalic)


Lesenswert?

Christian S. schrieb:
> Richtig?

Genau! Und diese Schaltung aus NPN-Transistor und zwei Widerständen ist 
in dem Fall der "Gate Treiber".

von Christian S. (darkmemoriesger)


Lesenswert?

Thomas E. schrieb:
> Christian S. schrieb:
>> Richtig?
>
> Genau! Und diese Schaltung aus NPN-Transistor und zwei Widerständen ist
> in dem Fall der "Gate Treiber".

Super.
D.h. Q4..Q6 lasse ich so wie sie sind, und tausche Q1..Q3 durch P-Kanal 
FETs mit Treiber aus.

Dann kann ich jetzt meine Schaltung aktualisieren.

Danke an alle ;)

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.