Multiplexing Rote und grüne Doppel-LED werden nicht richtig eingeschaltet

Ich habe Probleme, diese rote und grüne LED in ihrem gelben Farbzustand einzuschalten. Rot + Grün = Gelb!! Aber es weigerte sich einfach, dies zu tun. Es ist für mich eher ein Ärgernis als ein wirklich großes Problem, aber es ist auch ziemlich interessant, ob ich es noch mit Software beheben kann, von dem ich nicht sicher bin, ob ich es könnte.

Hier ist die LED: (rot 2V, grün 3V)Geben Sie hier die Bildbeschreibung ein

So sieht es aus. Die grünen LEDs sollten gelb werden, und wenn ich nah genug starre, kann ich tatsächlich sehen, dass die rote LED eingeschaltet ist, aber nicht hell genug. Normalerweise würde man annehmen, dass die rote LED heller ist als die grüne LED, weil Rot eine niedrigere Spannung ist, aber seltsamerweise ist es das Gegenteil.

Geben Sie hier die Bildbeschreibung ein

Hier ist die Schaltung!! Es ist riesig, bitte öffnen Sie es in einem neuen Tab und vergrößern Sie es, um die Details zu sehen. Grundsätzlich ist der linke Teil der LED die rote LED.Geben Sie hier die Bildbeschreibung ein

Hier ist der Code, den ich verwende, um die LEDs auszuführen. Es ist nichts Besonderes, nur ein einfaches altes Multiplexing.

  if(counter==0){
    PORTC &=~(1<<0);
    PORTD= ~(led[counter]);   
    PORTB=1<<0;
    }

  if(counter>0 && counter<8){
    PORTB =0;  
    PORTD= ~(led[counter]);     
    PORTB=1<<counter;    
    }

  if(counter==8){
    PORTB =0;
  PORTD= ~(led[counter]);       
    PORTC |=1<<0;
    }

  counter++;
   if(counter>8) {
   counter=0;
   for( byte i=0; i<9; i++){
    led[i]=0;
    } 

Also, um es klarzustellen, Q1 , warum kein Gelb? Q2 , kann es mit Software repariert werden? Q3 , wenn ja wie? Q4 , falls es nicht per Software behoben werden kann, was benötige ich, um es in Hardware zu beheben. 12 Widerstände zu roten LEDs hinzufügen?

Update: Hier versuche ich, die erste Dual-LED ein- und auszuschalten, das letzte Foto zeigt, wie sie sehr schnell ein- und ausschalten, und klar, es ist nicht gelb. Geben Sie hier die Bildbeschreibung ein

Sind LED1 bis LED60 Ihre dreifarbigen LEDs? Die LED-Symbole stehen für herkömmliche LEDs.
@Michael Gorsich Sind sie nicht. Insgesamt 60 LEDs, nur 12 dieser LEDs sind zweifarbige LEDs, von LED 1, 6, 11, 16 usw. Der Rest sind normale rote LEDs.
Welchen R- und G-Arbeitszyklus verwenden Sie? Was ist die Helligkeit von R und G bei einem bestimmten Strom im Datenblatt?
Ich bin es gewohnt, dreifarbige LEDs zu sehen, die nur zwei Pins nach außen bringen, und Sie wechseln die Polarität für Farbwechsel. Es sieht so aus, als ob diese LEDs alle vier Pins herausbringen, also können Sie nicht einfach die grünen und roten LEDs parallel schalten, um gelb zu werden?
@winny red300MCD, grün700MCD; rot 620NM grün520NM; gleicher 10MA-Strom; Sie werden mit der gleichen Geschwindigkeit ein-/ausgeschaltet.
Da Sie Widerstände mit mehreren LEDs teilen, kann es sein, dass die anderen roten LEDs eine etwas niedrigere Vf haben, sodass sie bei niedrigeren Spannungen einschalten, was wiederum verhindert, dass die rote LED am Doppelgehäuse vollständig aufleuchtet.
Möchten Sie jemals, dass die dreifarbigen LEDs eine andere Farbe als Gelb haben? Außerdem sind Geschwindigkeit und Einschaltdauer nicht dasselbe. Meinten Sie mit "gleicher Geschwindigkeit", dass sie einen Arbeitszyklus von 50% haben?
@Michael Gorsich plz. Dies sind keine Tircolor-LEDs, sondern NUR zweifarbige LEDs. Rot kombiniert mit Grün kann Ihnen nur gelbe Farbe geben. Ich glaube, ich sehe das Problem jetzt.
Ich denke, das ist ein semantischer Unterschied. Jedes Paket kann rot, grün oder gelb sein, richtig? Das macht es buchstäblich dreifarbig. Sorry für die Verwirrung.
@Michael Gorsich Ich glaube, Sie sind verwirrt. Wenn Sie sich das Paket ansehen, handelt es sich weder um eine gemeinsame Anode noch um eine gemeinsame Kathode, was bedeutet, dass es sich nur um 2 LEDs handelt, nicht um eine dreifarbige LED.
Wie wollen Sie ein dreifarbiges LED-Gehäuse nennen, damit Sie im Gespräch den Unterschied (dreifarbig) von einer LED erkennen können, die nur eine Farbe anzeigen kann? Auch dreifarbige LEDs mit zwei Anschlüssen sind nicht üblich Anode noch gemeinsame Kathode (was dasselbe wäre, wenn nur zwei Leitungen vorhanden sind).
Warte was? Wie ziehen Sie die LEDs hoch / versorgen sie mit Vcc? Wenn Grün 700 mCd (m für Milli, M für Mega) und Rot 300 mCd beträgt, benötigen Sie viel weniger Einschaltdauer, damit sich Grün mit Gelb vermischt. Versuchen Sie 3/7 = 43 %.

Antworten (1)

Eng verbunden mit diesem Q&A.

Unsere Augen reagieren empfindlicher auf Grün; Sind die LEDs gleich effizient, braucht man in Rot etwa den doppelten Strom, damit sie gleich hell erscheinen, was vermutlich ein gutes Gelb erzeugt.

Ein erster Schritt besteht darin, mit einer einzelnen LED und zwei Stromquellen (oder variablen Widerständen oder zwei PWM-Kanälen auf Ihrer MCU) zu experimentieren, um herauszufinden, welche relativen Ströme oder Einschaltzeiten die gewünschte Farbe ergeben.

Ein zweiter Schritt wäre, dieses aktuelle Verhältnis irgendwie zu erzeugen; vielleicht mit einem größeren Widerstand in Reihe mit Grün und einem kleineren mit Rot. Oder schließen Sie die LEDs gegenphasig an und treiben Sie sie in einer Richtung für Grün, eine andere für Rot an, einstellbar in der Software. Oder andere Mittel entsprechend den Hardware- oder Softwareänderungen, die Sie vornehmen möchten.

Brian, ich denke, die dunkleren Rottöne sind auf ein 1/8-Tastverhältnis im Vergleich zu den dreifarbigen LEDs zurückzuführen.
Das mCd-Rating berücksichtigt dies bereits. Oder hat er die Informationen vielleicht nach deinem Beitrag hinzugefügt?
ah ich sehe es jetzt in den Kommentaren.