Hallo mikcrocontroller-Forum! Das ist mein erster Beitrag, nachdem ich hier jahrelang mitgelesen habe. Nun habe ich selbst eine Frage und freue mich über Tipps und Hinweise :-) Eins vorweg: Ich bin Informatiker und verfüge deshalb in Sachen Elektronik nur über Grundkenntnisse. Folgendes Setup: Bauen einer "Lava-LED-Lampe, deren Farbe über das Internet gesteuert werden kann" Zutaten: - 1 x Raspberry Pi - 1 x WLAN-USB Stick - 1 x RGB-LED-Lichtleiste (Farbwechsel stufenlos möglich, soll durch Raspberry Pi antsteuerbar sein) Idee: Auf den Raspberry Pi installiere ich einen Webserver. Dort soll ein Programm laufen, dass IO-Ports vom Raspberry ansteuert und damit die LED-Leiste farblich ändert. Das ändern der Farbe soll stufenlos geschehen (faden). Die gesamte Lichtleiste ändert ihre Farbe. Ich möchte nicht einzelne Pixel ansteuern! Hier fällt dann das Stichwort PWM (Pulse With Modulation). Der Raspberry verfügt nur über einen PWM-fähigen IO-Port. Bei LED-Lichtleisten gibt es verschiedene Arten der Ansteuerung. Mir fallen da z.B. ein - WS2801 - LPD8806 Latenzen sind mir relativ egal. Nur das Faden sollte stufenlos erscheinen ;-) Am Liebsten hätte ich das Problem mit einem Arduino erschlagen, aber auf dem lässt sich halt nicht eine All-in-One Lösung implementieren samt Webserver und WLAN. Da ich evtl. mehrere Lampen bauen möchte (für Freunde), sollten die Kosten der Einzelkomponenten so niedrig wie möglich sein. Frage: 1. Der Raspberry Pi hat nur einen PWM Port. Reicht der aus, um die Farbe der gesamten RGB-LED-Lichtleiste anzusteuern und stufenlos die Farbe zu ändern oder muss Gebrauch von der Software-PWM-Lösung machen? Da gibt es irgendwelche Libraries, wie ich gelesen habe, wo man die digitalen Ports zweckentfremden kann. (Stichwort Adafruit-WS2801-Library, WiringPi) 2. Reicht ein Raspberry Pi Model A dafür aus, oder muss ein Model B her? 3. Welche RGB-LED-Lichtleiste schlagt ihr vor zu kaufen? Bitte beachten: Ich muss nicht einzelne Pixel ansteuern können, aber stufenlos die Farben der gesamten Leiste ändern können. Eine Lichtleiste die nur 2^3 Farben anzeigen kann bringt mir also nichts ;-) Ich bin auf Eure Hinweise gespannt und freue mich auf Antworten. Liebe Grüße silver
Hallo, Martin Förtsch schrieb: > 2. Reicht ein Raspberry Pi Model A dafür aus, oder muss ein Model B her? A reicht. > 3. Welche RGB-LED-Lichtleiste schlagt ihr vor zu kaufen? a) Am Günstigsten dürfte sein nur eine nackte Leiste mit Leds zu kaufen und sich dann mit drei Mosfets selbst die Ansteuerung zu bauen, oder eine fertige Platine zu kaufen, falls es da eine gibt. b) Alternativ eine Leiste, die schon die Ansteuerung enthält, aber teuer ist. Also so eine mit diesen Chips: > - WS2801 > - LPD8806 c) Als Zwischenlösung eine einfache Leiste und eine fertige Digital-rein-PWM-raus Platine, so etwa wie diese, kaufen: http://www.exp-tech.de/Shields/Grove-LED-Strip-Driver.html Für die Option a) gelten folgende Antworten. > 1. Der Raspberry Pi hat nur einen PWM Port. Reicht der aus, um die Farbe > der gesamten RGB-LED-Lichtleiste anzusteuern und stufenlos die Farbe zu > ändern oder muss Gebrauch von der Software-PWM-Lösung machen? Du brauchst für die drei Farben drei PWMs. Theoretisch müsste die Leistung des Raspberry Pi locker für drei Soft-PWMs ausreichen. Allerdings hat er einen relativ schnellen und kompliziert aufgebauten Prozessor, der IO-Operationen nicht sehr performant durchführen kann. https://projects.drogon.net/raspberry-pi/wiringpi/software-pwm-library/ >> To maintain a low CPU usage, the minimum pulse width is 100μS. That >> combined with the default suggested range of 100 gives a PWM frequency >> of 100Hz. >> If you change the pulse-width in the driver code, then be aware that at >> delays of less than 100μS wiringPi does it in a software loop, which >> means that CPU usage will rise dramatically, and controlling more than >> one pin will be almost impossible. Du kannst also bei gerade noch genügenden 100 Hz eine Auflösung von 100³ verschiedenen Farben erreichen, das sind ca. 20 Bits. Allerdings nimmt das Auge die Helligkeit logarithmisch wahr, daher sind es weniger wahrnehmbare Farben. Viele Grüße, Alexander Schmidt
Hallo Alexander, vielen Dank für Deine wertvollen Tipps! :-) Ich habe mich so dermaßen auf die LED-Leisten mit den Chipsätzen versteift, dass ich den Blick für das Wesentliche verloren habe. Natürlich müsste eine einfache RGB-LED-Leiste ausreichen. Ich habe soeben Tests mit meinem Arduino Uno und einfachen RGB-Dioden durchgeführt. Dabei habe ich PWM-Ansteuerung benutzt und ein Colorwheel implementiert. Ich denke das Einfachste ist es, genau denselben Versuchsaufbau mit einem Raspberry Pi zu wiederholen (jedoch dann mit Software-PWM, weil ich - wie Du sagtest - pro Farbe eine PWM benötige). Wenn es mit mit ein/zwei RGB-Dioden funktioniert, dann natürlich auch mit einer ganzen LED-Leiste! Sollte ich wider erwarten damit nicht zurecht kommen (schlechte Performance ect. pp.) werde ich die Digital-rein/PWM-raus Lösung versuchen. Hinweis, für die, die so etwas nachmachen wollen. Soweit ich mich informiert habe, muss für genügend Strom gesorgt werden. Hängt man eine LED-Leiste ohne externe Stromversorung an Arduino oder Raspberry Pi kann man schnell sein Board zerschiessen! Vielen Dank nochmal und viele Grüße silver
Hallo mal wieder, so langsam trudeln alle Bauteile ein und ich habe mit dem Raspberry Pi erfolgreich eine RGB-Led mit Hilfe von software-generierten PWM Signalen steuern können. Dafür nutzte ich die Open Source Bilbiothek pi-blaster von github. Von dimmen bis hin zum Farbwechsel war alles möglich :-) Soweit so gut - meine ersten Schritte in Hobbyelektronik getan :D Jetzt habe ich hier einen LED-Strip mit 12V, der ca. 0,7A zieht. Ich benötige also eine 12V Stromversorgung mit genügend Power. Die GPIO-Pins vom Raspberry Pi haben 3,3 Volt Spannung, wenn der Pin EIN ist, 0 Volt, wenn er AUS ist. Der LED-Strip benötigt 12 Volt, um betrieben zu werden. Ich benötige also einen MOSFET (zum Beispiel), der als schneller Schalter agiert und 12 Volt von meiner 12V-Spannungsquelle durchschaltet, wenn der GPIO-Pin auf EIN ist und entsprechend sperrt, wenn der GPIO-Pin AUS ist. Nun wurden in diversen Foren verschiedenste MOSFETs, "normale" Transistoren vorgeschlagen, aber bei einigen gab es immer wieder Probleme, weil sie z.B. bei einer anliegenden Spannung von 3,3V nicht komplett durchgeschaltet haben. Kennt Ihr einen MOSFET, dem die 3,3V-Spannung ausreicht, um komplett durchzuschalten? Besser gefragt: Unter welchem Wert muss ich nachschauen, um die Spannung zu erkennen, wo ein Transistor komplett durchschaltet? Ist das die Gate to Threshold Voltage? Evtl. habt ihr tolle Empfehlungen und/oder Erfahrunsgwerte. Ich würde mich freuen, welche zu hören. Ist der hier geeignet? N-Channel MOSFET 60V 30A https://www.sparkfun.com/products/10213 Sehe ich das richtig, dass der im Bereich 1V-2V Spannung schaltet? Ich müsste also dafür sorgen, dass vom GPIO ausgehend maximal 2V in den MOSFET reingehen. Bild einer ähnlichen Schaltung mit einem Arduino Board http://learn.adafruit.com/rgb-led-strips/usage Bei meinen Recherchen bin ich auf folgende Produkte gestoßen: https://www.sparkfun.com/products/10213 http://www.adafruit.com/datasheets/TIP120.pdf http://www.mikrocontroller.net/part/IRLZ34N http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Components/General/FQP30N06L.pdf Viele Grüße silver
Hallo ich will auch sowas ähnliches versuchen, habe aber offensichtlich noch nicht ganz so viel Ahnung. Eine Verständnisfrage hätte ich: Kann ich ganz einfach den GPIO PIN mit dem MOSFET Gate verknüpfen, den Source Strom mit Soure und BEIDE GND, also vom RPi und der Stromquelle zusammen an die Drain? Fliegt mir der RPi nicht um die Ohren wenn ich ihn mit dem GND der Stromquelle verbinde? Wie machst Du das? Vielen Dank vorab! Alex
Martin Förtsch schrieb: > Die GPIO-Pins vom Raspberry Pi haben 3,3 Volt Spannung, wenn der Pin EIN > ist, 0 Volt, wenn er AUS ist. Der LED-Strip benötigt 12 Volt, um > betrieben zu werden. Ich benötige also einen MOSFET (zum Beispiel), Das ist soweit richtig. Es gibt grundsätzlich zwei Arten von Transistoren. MOSFETs und Bipolar-Transistoren. Zweitere werden auch als NPN oder PNP bezeichnet. Erstere sind spannungsgesteuert, letztere stromgesteuert. Für dich und die allermeisten im Forum hier sind nur diese beiden Arten relevant, natürlich gibt es noch ein paar mehr. Für deine Anwendung sind nur MOSFETs sinnvoll. > Nun wurden in diversen Foren verschiedenste MOSFETs, "normale" > Transistoren vorgeschlagen, aber bei einigen gab es immer wieder > Probleme, Das ist richtig. Es müssen spezielle MOSFETs sein. Das Stichwort ist Logic Level. > Kennt Ihr einen MOSFET, dem die > 3,3V-Spannung ausreicht, um komplett durchzuschalten? MOSFET-Übersicht -> N-Kanal MOSFET -> Logic-Level -> N-Kanal MOSFET -> Tabelle nach "UGS(th)/V" sortieren Ich empfehle dir das Gehäuse "TO-220" > Besser gefragt: Unter welchem Wert muss ich nachschauen, um die Spannung > zu erkennen, wo ein Transistor komplett durchschaltet? Ist das die Gate > to Threshold Voltage? Die Gate Threshold Voltage gibt an, ab wann der MOSFET anfängt zu leiten. Also muss diese Spannung bei dir kleiner ca. 2 Volt sein. Aber diese Spannung sagt noch nicht aus, ob er dann schon den gewünschten Strom führen kann. Daher musst du im Datenblatt schauen, ob bei U_GS = 3,3 Volt und I_D = 1 A der Spannungsabfall U_DS klein genug ist (ca. <0,2V). Ich habe das Vorgehen mal im angehängten Bild illustriert. Zuerst suchst du die für dich relevante Kennlinie bei deiner Gate-Spannung. 3V ist das bei dir. Sie ist rot markiert (evtl. ins Bild zoomen). Dann trägst du deinen Strom (0,7A) ein und schaust die resultierende Drainspannung (U_DS) an. > Ist der hier geeignet? N-Channel MOSFET 60V 30A > https://www.sparkfun.com/products/10213 Ja. > Sehe ich das richtig, dass der im Bereich 1V-2V Spannung schaltet? Ich > müsste also dafür sorgen, dass vom GPIO ausgehend maximal 2V in den > MOSFET reingehen. Nein. Die maximal erlaubte Spannung ist unter den Absolute Maximum Ratings zu finden. Sie liegt hier zwischen +10 V und -8 V. Natürlich sollte man davon immer ein paar Volt Sicherheitsabstand halten. > Bei meinen Recherchen bin ich auf folgende Produkte gestoßen: > https://www.sparkfun.com/products/10213 siehe oben > http://www.adafruit.com/datasheets/TIP120.pdf Das ist ein Bipolar-Transistor in Darlingtonbauweise. Durch die Darlingtonbauweise der Nachteil, die hohe abfallende Spannung von >2V. Nicht geeignet, weil 2V * 0,7 A = 1,4 Watt Verluste. > http://www.mikrocontroller.net/part/IRLZ34N Geht > http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Components/General/FQP30N06L.pdf Geht Zum Schluss noch der Hinweis: Ich habe hier der Einfachheit halber die Bauteiltoleranzen vernachlässigt. Für Einzelstücke ist das trotzdem kein Problem. Viele Grüße, Alexander Schmidt
Hallo Alexander, vielen Dank für Deinen Post, der mich bezüglich MOSFETs noch mal richtig weitergebracht hat. Wie ich aus Deinem Post bemerkte, habe ich teilweise ein falsches Verständnis von MOSFETs gehabt. Da ich an den ersten MOSFET (N-Channel MOSFET 60V 30A) nicht mehr dran komme, werde ich zunächst mal eine paar IRLZ34N bestellen und damit das RGB-LED Experiment wiederholen (zunächst nur mit einer einzelnen RGB-LED und nicht der gesamten Leiste, nicht dass ich was kaputt mache ^^) Nur um nochmal sicher zu gehen: Wenn ich beim IRLZ34N auf Fig. 1 schaue: Laut dem Diagramm Drain to Source Voltage / Drain to Source Current könnte ich mit meinem Raspberry Pi und dem Output-Pin mit seinem 3,3 V das Gate des MOSFETS ansteuern und wäre damit in der Lage diese 12 V durchzuleiten mit ihren max. 7-8A. Richtig? Ich steuere das Gate direkt an, ohne einen Widerstand zwischenzuschalten oder sonst irgendwas? Viele Grüße und danke für Deine Hilfe @Alex (Gast) Wenn ich mit dem nächsten Experiment durch bin, kann ich posten, wie ich es schlussendlich realisiert habe.
Martin Förtsch schrieb: > Wenn ich beim IRLZ34N auf Fig. 1 schaue: > > Laut dem Diagramm Drain to Source Voltage / Drain to Source Current > könnte ich mit meinem Raspberry Pi und dem Output-Pin mit seinem 3,3 V > das Gate des MOSFETS ansteuern und wäre damit in der Lage diese 12 V > durchzuleiten mit ihren max. 7-8A. Die 7A sind das zehnfache von 0,7A, die du vorhin genannt hast: Martin Förtsch schrieb: > Jetzt habe ich hier einen LED-Strip mit 12V, der ca. 0,7A zieht. Die 7A schafft der MOSFET bei der kleinen Gatespannung nicht mehr. Siehe angehängtes Bild. Du könntest einen kleinen Transistor davorschalten, so wie in diesem Bild "Diskreter Treiber 1": https://www.mikrocontroller.net/articles/Datei:Beispiel_LS_Treiber_1_2.png Einen Kühlkörper für den MOSFET brauchst du bei 2,5 Watt Verlustleistung auch. > Ich steuere das Gate direkt an, ohne einen Widerstand zwischenzuschalten > oder sonst irgendwas? Ja, für die 0,7A geht das direkt. Ein zusätzliche Widerstand mit ca. 100kΩ von Gate nach Masse schaltet den MOSFET aus, wenn der Pin des RPi auf Eingang geschaltet ist, oder wenn der RPi aus ist. Leider kann man nicht einfach 10 Mal den IRLZ34N parallelschalten, weil der RPi zu schwach ist um soviele auf einmal treiben: > source and sink current is configurable from 2 mA up to 16 mA. Quelle:http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29
Hi Alexander und Mitlesende, ich muss hier nochmal nachhaken, da ich mglw. noch ein Verständnisproblem bei der Interpretation der Datenblatt-Diagramme für MOSFETs habe. Wie gehabt, ich möchte nur eine LED-Leiste mit um die 12V und 0,7A mit meinem Raspberry Pi ansteuern. Die 7A war nur eine Zahl, die ich aus dem Datenblatt extrahiert habe, um mein Verständnis von der Diagramm-Interpreation zu prüfen. Du hast in Deinem angehängten Screenshot folgendes markiert: 0,7A bei 0,04V. Was bedeutet diese Zahl nun konkret für mich, wenn der Raspberry Pi den spannungsgesteuerten MOSFET mit seinen 3,3 V anspricht? Klar, die 0,7A ist der Strom, den ich zum antreiben des LED-Strips benötige. Aber was bedeuten dann die 0,04V? Vielen Dank für Deine Antworten soweit :-) silver
Martin Förtsch schrieb: > Du hast in Deinem angehängten Screenshot folgendes markiert: 0,7A bei > 0,04V. Was bedeutet diese Zahl nun konkret für mich, wenn der Raspberry > Pi den spannungsgesteuerten MOSFET mit seinen 3,3 V anspricht? Klar, die > 0,7A ist der Strom, den ich zum antreiben des LED-Strips benötige. Und dieser Strom fließt auch durch den MOSFET durch. > Aber was bedeuten dann die 0,04V? Das ist die Spannung, die am MOSFET abfällt, wenn 0,7A durch ihn hindurchfließen und sein Gate auf 3 Volt liegt. D.h. es entsteht im MOSFET eine Verlustleistung von 0,7A * 0,04V = 0,03 Watt. Das ist so gering, dass der MOSFET dadurch kaum warm wird. Außerdem heißt das, das am LED-Strip nur noch 12V - 0,04V = 11,96 Volt abfallen. Das ist auch kein Problem, das Netzteil wird ungenauer sein als diese 0,04V. > Vielen Dank für Deine Antworten soweit :-) Gerne ;)
Hi Alexander, jetzt habe ich es verstanden! :-) Ich bestelle jetzt noch weitere fehlende Teile und werde dann einen Schaltungsprototypen bauen. Ich werde von meinen Fortschritten berichten und ggf. die Schaltung mitposten ;-) Viele Grüße und einen schönen Abend Silver
Martin Förtsch schrieb: > Ich werde von meinen Fortschritten berichten > und ggf. die Schaltung mitposten Das wäre fein.
Hallo in Runde, heute habe ich es endlich geschafft Zeit zu finden die Einzelteile in einer Prototypenschaltung zu verbauen. Was soll ich sagen: Es funktioniert alles hervorragend! Vielen lieben Dank nochmal an die tolle Hilfe hier! Ich hätte gerne die komplette Schaltung in Fritz gepostet, aber es gibt dort keinen RGB Led Strip (nur die programmierbaren LPD8806) und DC-DC Step Down Konverter - das Raspberry Pi wird von einem DC-DC Step Down Konverter über Micro USB betrieben. Einen sehr, sehr günstigen habe ich hier gefunden http://www.ebay.de/itm/110913268903?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2648 - Die GPIO Pins des Rasbperry Pi Model A habe ich direkt mit dem GATE der IRLZ34N Mosfets verbunden - die DRAIN Pins führen an die entsprechenden Farben am RGB Led Strip - an den SOURCE Pins liegt die Masse an - PLUS wird direkt an den RGB LED Strip angelegt Mit Hilfe von pi-blaster habe ich ein PWM Signal generiert und kann nun stufenlos die Helligkeiten aller drei Farben unabhängig voneinander bestimmen! Das ganze wird mit einem 12V Netzteil betrieben, wobei 12V direkt am LED Strip anliegen, da das deren Betriebsspannung ist. Der DC-DC Step Down Konverter spuckt mir auch noch 5 Volt aus, die ich zum Betrieb des Raspberry nutze. Kostenpunkt: Raspberry Pi Model A 25 € WLAN Stick 10 € Led Strip RGB 5m SMD5050 300 LEDs 15 € (nur ein Meter verwendet ~3 €) 3x IRLZ34N MOSFETs ~1,50 € viele Grüße silvertears
Danke für die Rückmeldung, Martin. Sie wird bestimmt beim Nachbau behilflich sein.
Mann O Mann, ein hammermäßiger MiniPC Mit 700MHz, 1/2 GB RAM, HDMI und Pi Pa Po zur Ansteuerung einer lumpigen LED-Leiste. 8-0 Mensch, ein kleiner AVR mir Bluetooth oder LAN hätte es auch getan.
Hallo Falk, wie im ersten Beitrag geschrieben ist die Lampe ständig über das Internet verbunden. Ein LAN Anschluss kommt nicht in Frage, da eine Lampe mit zwei Verbindungskabeln schlicht und einfach unhandlich sind, gerade dann, wenn die Lampe wegen dem LAN-Kabel dann auch noch ortsgebunden wird. Weiterhin läuft auf dem Raspberry ein Webservice, der über das Internet angesprochen werden und die LED-Leiste ansteuern kann. Dabei werden Farbverläufe nach bestimmten Farbmodellen umgesetzt. Weiterhin ist auf dem Raspberry eine Webseite gehostet, die als Frontend für den Webservice dient. Wenn es eine günstigere Lösung gibt, als meine vorgeschlagene, dann her damit. Der Vorschlag, mit AVR Lösung & Bluetooth oder LAN Kabel verfehlt schlicht und einfach das Ziel ;-) Eine mögliche AVR und WLAN Lösung wäre diese hier, die jedoch nach meinen Recherchen oft zu inkonsistenten Konfigurationen führt: http://www.harbaum.org/till/spi2cf/index.shtml Grüße silver
@ Martin Förtsch (silvertears) >Wenn es eine günstigere Lösung gibt, als meine vorgeschlagene, dann her >damit. Der Vorschlag, mit AVR Lösung & Bluetooth oder LAN Kabel verfehlt >schlicht und einfach das Ziel ;-) Naja, die Wunder der modernen Elektronik machen es möglich, dass hunderte von MIPS ungenutzt rumoxidieren um ein paar lausige LEDs zu steuern. 35 Euro für CPU + WLAN ist schon sehr preiswert, und schnell ist es auch zusammengebaut. Unter den Umständen nur sehr schwer zu schlagen. 8-0
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.