Forum: Mikrocontroller und Digitale Elektronik RGB LED Ansteuerung


von Felice D. (flexbex)


Angehängte Dateien:

Lesenswert?

Moin
Ich will mit einem Pic16f874 4 Pol Rgb Led's ansteuern. Exemplarisch hab 
ich mal meine Idee fuer eine Led gezeichnet. Widerstände und Kapazitäten 
muss ich noch berechnen. Als Analog Multiplexer wollte ich nen 4051 
nehmen. Geht das so. Also meine idee ist ich lade den jeweiligen 
Kondensator springe zum naechsten Port des MUX lade den nächsten. der 
Kondensator soll dann den Mosfet solange steuern bis er einen neuen 
Steuer impuls erhält. Wie ist das wenn ein Port des Mux gerade nicht 
gewält ist liegt der dann auf masse oder ist der dann halbwegs gut vom 
Stromkreis getrennt. Vielleicht gibts ja auch einfachere Varianten.

vielen Dank aber erstmal für Antworten

Felix

von Michael K. (Gast)


Lesenswert?

Du brauchst 4 Steuerleitungen zum Multiplexer.
Die Leuchtdioden liegen im Source der Fets, d.h. zu der Benötigten 
Gatespannung von ab 3V bei Logic-level Fets addiert sich die 
Diodenspannung von 2,2 bis 3,2 V je nach Farbe.

=> unnötig kompliziert

Lege die Fets nach unten, das Source auf GND liegt und steuer die Fets 
direkt mit dem Pic an = 3 Leitungen.
Keine Kondensatoren an den Fets, wenn Du Dir nicht um EMI Gedanken 
machst, ansonsten nur mit kleinem Vorwiderstand.

Siehe: Kondensator an Rechteckspannung
Du schrottest sonst die Treiber wegen der Pulsströme in die 
Kondensatoren.

Wenn Du viele Farben Stufenlos einstellen willst wirst Du recht schnell 
feststellen das eine 3*Software-PWM schnell an die Grenzen stößt.
Für eine quasi 8bit PWM sinkt Deine mögliche Schaltfrequenz dann schnell 
in den sichbaren Flacker-Bereich.

Mit einem 16F688 und 8Mhz int. Osc habe ich mit dem Code (unten) gerade 
mal eine 6bit PWM und 190Hz wiederholrate geschafft.
Dazu der depug_pin damit ich sehe welchen Teil seiner Lebensarbeitszeit 
der Pic in der timer irq vertrödelt.
Damit siehst Du aber die Farbsprünge beim Regeln und das ging garnicht.
Bei 8bit hast Du dann vieleich noch knappe 50Hz.
Habe auf einen PIC24FJ64GA002 mit Hardware PWM gewechselt.

Machst Du das nicht in einer IRQ Routine führt alles zum Flackern was 
nebenbei noch so läuft, und irgenwie regeln willst Du das ja auch.

(stöhn)
Oh, jetzt peil ich dass erst ...
Was Du willst ist wahrscheinlich eine gemultiplexte Anzeige um eine 
Display-ähnliche Funktion zu erreichen ?
In dem Fall: Als Schnellschuss würde ich je ein Schieberegister in X und 
Y Richtung legen und die Matrix Spaltenweise ansteuern.
Kurze Pulse, hoher Strom, die z.B. 20mA max beziehen sich ja nur auf den 
Dauerstrom. Puls darf dann auch bei 100mA liegen (Datenblatt)
Deine Timing Probleme potenzieren sich dadurch natürlich.
Dafür 'unten' die N-Channel Fets mit 1 ansteuern, 'oben' d.h. wirklich 
oben, nämlich über den Vorwiderständen, P-Channel mit 0 Ansteuern und 
die nötigen Amps fürs Netzteil berücksichtigen.
Bei vielen Leds hast du stark pulsförmige Ströme und das bringt so 
manches Netzteil ganz schön ins schwitzen, heißt schwingen, abschalten 
etc.
Spalte mit 8*RGB a 3Leds a 100ma = 2.4A Puls.

Int-Prio muß der PWM Timer + kompletter Ansteuerung haben falls Du noch 
an eine Serielle Schnittstelle gedacht hast. Die entweder gepollt wie 
gesagt mit niedrigerer Int-Prio als der Timer.
Kann man das beim 16F876 überhaupt einstellen ?

Gruß
Michael


void timer1irq(void)
{
    output_low (debug_pin);
    if ( counter )
    {
        --counter;
    }
    else
    {
        counter = 63;
    }

    // RGB PWM erzeugen

    if ( counter_hit_RED > counter )
    {
        output_high(RED);
    }
    else
    {
        output_low(RED);
    }
    if ( counter_hit_GREEN > counter )
    {
        output_high(GREEN);
    }
    else
    {
        output_low(GREEN);
    }
    if ( counter_hit_BLUE > counter )
    {
        output_high(BLUE);
    }
    else
    {
        output_low(BLUE);
    }

    set_timer1 (0xFFA0);  // für 190Hz PWM
}

von Felice D. (flexbex)


Lesenswert?

Oh wow erstmal fuer die lange Antwort
leider ist es doch alles ein bisschen anders gemeint gewesen

als Led's wollte ich die nehmen

http://cgi.ebay.de/50X-New-5mm-4-Pin-RGB-Common-Cathode-LED-8,000mcd-F/R_W0QQitemZ290371143464QQcmdZViewItemQQimsxZ20091118?IMSfp=TL091118186003r23336#ht_2881wt_872

deshalb auch die Led's nach dem Fet weil sie die selbe Kathode haben 
ansonsten hab ich auch schon die Fehler in meiner Schaltung gefunden.

Vielleicht ma erstmal die Idee ich will viele von diesen Led's 
ansteuern. wieviele ich brauche ist erstmal noch nicht raus weil ich 
sehen muss wie hell die werden. ich wollte dann mit sagen wir jetzt mal 
20 oder mehr immer eine Lichtquelle bauen. Das heisst die 20 sollen die 
Selbe Farbe usw haben dann wieder 20 die nächste Lichtquelle usw. Am 
Ende soll dann eine jede Lichtquelle hinter milchglaskacheln. so 
entsteht dann nach der idee eine Fläche mit unterschiedlich leuchtenden 
Kacheln. Mhh hoffe man kann die beschreibung verstehen.

zur schaltung
ich hatte die Kondensatoren dahin gemacht weil ich dachte die würden die 
Spannung halten wenn das jeweilige bein des Mux gerade nicht auf dieses 
bein schaltet.  Der Fehler ist mir jetzt aber klar weil ja eine null am 
bein anliegt und er nicht wie ich dachte nur sperrt.


ich werds jetzt aber einfach mit logik gattern machen hab schonmal mit 
meinem Proffessor heute gesprochen und der meinte dass es so gehen 
könnte werd ma die schaltung hochladen wenn's klappt


danke aufjedenfall erstmal für die antwort..

Felix

von yalu (Gast)


Lesenswert?

Das mit dem Multiplexer und den Kondensatoren zur Speicherung des
Signalzustands bis zur nächsten Periode geht prinzipiell schon.
Allerdings kostet das Umladen der Kondensatoren Zeit und/oder Strom, was
du bei der Dimensionierung der Kondensatoren, des Analogmultiplexers,
der Steuersignalquelle und der Weiterschaltfrequenz berücksichtigen
solltest.

Die Ansteuerung der Mosfets geht so wahrscheinlich wegen der
erforderlichen hohen Gate-Spannung nicht. Mit P-Mosfets in Source-
Schaltung wird's leichter.

Sollen die LEDs nur ein- und ausgeschaltet werden, oder sollen sie
stufenlos in der Helligkeit veränderbar sein?

von BMK (Gast)


Lesenswert?

Öhm.... der iBäh Anbieter hat wohl ein technisch fundiertes Halbwissen.

Auf dem Schaltbild ist nämlich 'Common Anode' zu sehen, so wie das
gezeichnet ist. Also Vorsicht vor einer Massenbestellung.

von philipp (Gast)


Lesenswert?

vom mux abkoppeln würd ich so:
>--->DIODE>---WIDERSTAND-I-KONDENSATOR----MASSE
.......................  I------------------------->ausgang
<--<diode<----widerstand-I-kondensator---masse

das eine ist ein negativer input, mit dem der kondensator auf 0 gesetzt 
werden kann, mit dem anderen input auf eins.
geht genauso mit flipflop. ein reset eingang und ein set eingang.
Anders kann ich mir das nicht vorstellen, dass das mit dem mux funzt

von Felice D. (flexbex)


Lesenswert?

BMK schrieb:
> Öhm.... der iBäh Anbieter hat wohl ein technisch fundiertes Halbwissen.
>
> Auf dem Schaltbild ist nämlich 'Common Anode' zu sehen, so wie das
> gezeichnet ist. Also Vorsicht vor einer Massenbestellung.

Ja das hatte ich auch gesehen aber ein Freund von mir hat auf Ebay 
Spanien vom selben Hersteller auch welche gekauft da hat's gepasst. Ich 
hab ma 50 für 13 Euro bestellt. Werd die ma testen.

das mit dem Analog Mux hab ich auch gerade gelesen. Ja Ich wollte die 
auch in der Helligkeit ändern über die Gate Source Spannung halt war 
meine idee. Die Idee war das ich mit 10v anstatt 5v Arbeite.

"P-Mosfets in Source-Schaltung" muss ich mich ma einlesen. Leider bin 
ich noch nicht so fit was FET's angeht. In der Uni lernt ja man nur 
dauernd was über Transistoren.

viele Grüsse
Felix

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.