ATtiny25 PWM LED-Treiber mit Helligkeitsregelung

Ich werde ein Stück RGB-LED-Schmuck für ein Geschenk bauen. Es handelt sich im Grunde genommen um ein Paar Kopfhörer mit jeweils einer oder zwei RGB-LEDs und einem kleinen ATtiny25-basierten PWM-Treiber in einem kleinen Gehäuse.

Ich werde wahrscheinlich in der Lage sein, die Firmware selbst zu entwickeln; Da ich jedoch ein paar Zentimeter Kabel zu jedem Telefon haben werde, brauche ich eine Art LED-Treiber, und dort bin ich mir nicht sicher, wie ich vorgehen soll.

Die Grundidee ist, dass alle LEDs an einem bestimmten Punkt die gleiche Farbe anzeigen. Die MCU blendet alle Farben nacheinander mit Software-PWM durch. Allerdings möchte ich auch eine Steuerung für die Gesamthelligkeit der LEDs implementieren (sobald das Umgebungsgeräusch einen bestimmten Pegel überschreitet, beginnt es mitzupulsieren, ähnlich wie ein VU-Meter). Ich denke an einen PWM-gesteuerten "Helligkeits" -MOSFET, um die Quellenspannung (?) Zu den anderen drei "Farb" -MOSFETs zu steuern. Ist dies der richtige Weg?

Ich habe viele BS170s und sonst nicht viel an FETs (BF245, 2N5457 JFETs), also werde ich das wahrscheinlich verwenden. Ich denke darüber nach, hier voll auf SMD zu setzen ... Ich habe sowieso nur den tiny25 in SOIC.

Wahrscheinlich möchten Sie das Mischen in Software und nicht elektrisch durchführen, um den Countdown der Teile und die Schaltung einfach zu halten. Achten Sie auch auf die Möglichkeit, dass Ihre LED-Stromimpulse Störungen in den Kopfhörern verursachen, entweder direkt oder durch Rückkopplung in das Quellgerät.
Ja, Software-Mixing ist die andere Option, die ich in Betracht ziehe. Ich muss sicherstellen, dass die PWM-Frequenz über dem Audiobereich liegt - danke für die Erinnerung.
Welche Macht streben Sie an? Sollte dies die Discokugel und das Blitzlicht im Club (sorry, Alter) und die Sonne überwältigen, wenn sie nach draußen geht, oder sollte es nur sanft drinnen leuchten? Gemäß Abbildung 17-20, I/O Pin Output Voltage vs. Sink Current (VCC = 3V) , sollte der ATTiny in der Lage sein, 5 mA ohne Probleme zu senken, was ausreichen sollte, um die meisten 5-mm-RGB-LEDs schön zum Leuchten zu bringen.
@KevinVermeer - überwältigen Sie sicherlich nicht Discolichter oder die Sonne, aber seien Sie bei schwachem Licht sichtbar. Die MCU wird jedoch nicht in der Lage sein, vier LEDs alleine anzusteuern ...

Antworten (2)

Hier ist eine weitere Idee, die zu den guten Vorschlägen anderer hinzugefügt werden kann. Wenn Sie RGB-LEDs verwenden, sollten Sie die Stromversorgungsanforderungen des Geräts berücksichtigen. Die blauen LEDs im RGB-LED-Paket haben eine hohe Durchlassspannungsanforderung, sodass Sie entweder eine 3,6-Volt-Lithiumbatterie oder eine 9-Volt-Batterie benötigen. Die 3,6-Volt-Batterie ist für eine blaue LED kaum ausreichend - sagen wir, Sie wählen Ihren Strombegrenzungswiderstand basierend auf dieser Nennspannung und die Spannung nimmt beim Entladen der Batterie um einige Zehntel Volt ab - die blauen LEDs verlieren schnell an Helligkeit. Am Ende verurteilen Sie Ihren SO dazu, die ganze Nacht eine 9-Volt-Batterie oder mehrere 3,6-Volt-Batterien in Reihe zu tragen, was sperrig ist.

Der Standard-ATTiny ist gut bis 10 MHz bei bis zu 2,7 Volt und hat zwei PWM-Kanäle und vier AD-Wandler. Es wird ein Slumming sein, wenn es nur ein paar LEDs steuert; Es sollte genügend Coderaum zur Verfügung stehen, um den zweiten PWM-Kanal zur Implementierung eines einfachen Aufwärtswandlers zu verwenden. Der Konverter kann eine kaum ausreichende Batteriespannung aufnehmen und sie verstärken/regulieren, um die Lichtleistung einer blauen LED stabil zu halten, wenn sich die Batterie entlädt. Dies eröffnet alle möglichen Möglichkeiten für leichte Batterien; Sie könnten zum Beispiel 2 alkalische Triple A's für eine wirklich lange Lebensdauer verwenden. Dieses Schema hat noch einen weiteren Vorteil: Sie können die LED-Stromversorgungsspannung dynamisch modulieren, je nachdem, welche LEDs verwendet werden. Wenn die blauen LEDs eingeschaltet sind, pumpen Sie die Spannung auf das, was benötigt wird, um ihnen die erforderliche Helligkeit zu geben. Wenn sie aus sind, Senken Sie die Versorgung wieder auf knapp über der Batterieausgangsspannung für die roten und grünen LEDs. Dies sollte zu erheblichen Energieeinsparungen führen.

Wenn Sie feststellen, dass bei Verwendung einer 3-Volt-Versorgung der Standard-ATTiny unter bestimmten Bedingungen braun wird, wenn er direkt von der Batterie / den Batterien gespeist wird, können Sie versuchen, den Niederspannungsteil zu verwenden, oder Sie können ihn tatsächlich so einrichten, dass die direkte Batteriespannung verwendet wird Startet es einfach und führt dann den Chip aus der verstärkten Versorgung aus.

Großartige Idee! Können Sie mir Material zu DC/DC-Wandlern zeigen? Vorzugsweise etwas, das ich sofort modifizieren und verwenden könnte, da ich fürchte, ich habe nicht zu viel Zeit für Recherche und Versuch / Irrtum ... : / Ich habe darüber nachgedacht, die Schaltung aus mehreren 2032-Zellen in Reihe zu speisen. die dann auf die erforderliche Spannung herunterkonvertiert werden, aber ich habe keine Ahnung, wie lange diese dauern würden oder wie effizient sie wären. Oder vielleicht eine einzelne 1,5-V-AA-Zelle, die auf 5 V erhöht wurde? Es gibt eine ganze Menge Möglichkeiten.
Obwohl 1,5 V einen externen DC-Wandler erfordern würden, da die MCU bei dieser Spannung nicht hochfährt ...
Sie können eine ausreichend hohe Spannung erhalten, indem Sie CR2015s stapeln - das Ergebnis passt in einen CR2032-Batteriehalter.
Ich glaube nicht, dass CR2032, CR2015 usw. genug Energie haben werden, um das Projekt für eine lange Clubnacht mit Energie zu versorgen.

ATTiny25 Datenblatt hier .
6 I/O-Pins

Wenn Sie RGB-LEDs ansteuern, benötigen Sie mindestens 3 Volt und vorzugsweise mehr.

LEDs sollten stromgesteuert sein, nicht spannungsgesteuert. Der Versuch, Spannungen zu steuern, führt zu einer massiven Nichtlinearität von Spannung und Helligkeit.

Der Versuch, eine allgemeine Helligkeitssteuerung vorzunehmen, ist machbar, aber angesichts begrenzter Pins und mehr schreit dies nach einer Softwarelösung.

Da alle LEDs zu einem bestimmten Zeitpunkt die gleiche Farbe und Helligkeit haben, benötigt die RGB-Steuerung 3 Pins.

  • LEDs werden von einer Spannungsquelle über einen Widerstand oder eine Konstantstromquelle gespeist, so dass sie im eingeschalteten Zustand mit der vollen gewünschten Helligkeit für diese LED arbeiten. Dadurch wird ein maximaler Strom festgelegt, den Sie dann per PWM ein- und ausschalten, um den Strom zu variieren.

  • PWM LDs ein/aus also = maximale Helligkeit oder aus.

    • Passen Sie die PWM-Tastverhältnisse zueinander an, um die gewünschte Farbe zu erhalten.
  • Multiplizieren Sie dann jedes PWM-Tastverhältnis mit einem gemeinsamen Helligkeitsskalierungsfaktor.

  • Angenommen, Sie haben 8-Bit-PWM und eine Farbmischung erfordert 8:3:5-Helligkeiten.
    Die maximale PWM bei voller Helligkeit beträgt beispielsweise 255 Zähler. Der 8-Kanal ist also
    auf 255 eingestellt.
    Der 3-Kanal ist auf 3/8 x 255 = 86 Zählungen eingestellt.
    5 Kanäle = 5/8 x 255 = 159 Zählungen.

Die LED ist jetzt so hell wie möglich bei dieser Farbe.
Wenn 10 % relative Helligkeit erwünscht sind, können Sie die PWM-Zählungen auf 26, 9, 16 skalieren

Das bedeutet, dass die maximal verfügbare Helligkeit je nach Farbe variiert.

  • Das Folgende ist in Eile geschrieben.
    Das Konzept gilt als solide, aber es kann schwer zu verstehen sein, fragen Sie, wenn es nicht klar ist.

Wenn Sie eine konstante Helligkeit für alle Farben wünschen, müssen Sie die Helligkeit, die Kombinationen erreichen können, auf nicht mehr als das Maximum begrenzen, das von einer Farbe allein erreicht werden kann = 255 Zählwerte. Da z. B. Rot n = ineffizienter als Blau ist, könnte dies bedeuten, dass die maximale Anzahl von Rot beispielsweise 150 Zählungen beträgt, aber maximale Blau = 255

Eine bessere Methode kann darin bestehen, die Stromquellen pro Farbe für die maximale Helligkeit in umgekehrter Reihenfolge der Effizienz anzupassen, sodass alle die gleiche Helligkeit haben, wenn 100 % auf jeder Farbe dieselbe Helligkeit haben.

Angenommen, die relativen Helligkeiten bei demselben Strom für RGB sind 10: 6: 4 (erstellt). Wenn Sie dann die vollen Helligkeitsströme im umgekehrten Verhältnis einstellen, können Sie sie in Bezug auf Treiber pro Helligkeit gleich behandeln. zB
Rot = 6 mA,
Grün = 10 mA,
Blau = 15 mA
oder 12,20, 30 mA oder was auch immer.

DANN sollte die maximale Helligkeit pro LED, wenn alle 3 eingeschaltet sind, nicht mehr als jeweils 85 Zählungen betragen = 3 x 85 = 255 Zählungen summiert - Da keine für sich allein > 255 sein kann. Also volles Rot = 255 0 0.

Diese können durch PWM-Signal zur Helligkeitssteuerung weiter reduziert werden.


Wenn Sie 3 Sätze LED-Laufwerke bekommen können, werden Sie und Ihre Geliebten es nicht bereuen. Dies ermöglicht leichte Chaser-Action mit Farben, die entlang von Halsketten usw. sickern.

Vor Jahren habe ich in weniger als einer Stunde ein Go-to-Finish-Projekt mit PIC-Treiber-LEDs in einem Engelshalo mit Lametta-Wrapper und Batterierückseite durchgeführt. LEDs haben alle die gleiche Farbe, werden aber als Lichtjäger angesteuert. Grundlegendes Programm, das in wenigen Minuten geschrieben wurde, lief durch Flash, Rolle nach links, Rolle nach rechts usw. Halo, das von meiner Tochter für eine Party als Klaps des Kostüms getragen wurde. Ein bisschen schwach im Raumlicht, aber fantastische Wirkung auf der Tanzfläche. Das plus Farbe !!!!!!!!

Die 6 IO von ATTiny erlauben 3 x 3 Mux = 9 = 3 Sätze oder könnten einen kleinen I/O-IC hinzufügen.