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.
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.
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.
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.
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.
Chris Stratton
Avramov
Kevin Vermeer
Avramov