LED-Pendellampe

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Martin Clausen

Einleitung

Ziel bei diesem Projekt war die helle, gleichmäßige, farbgetreue und blendfreie Beleuchtung eines Wohnzimmer-Tisches. In einer Variante wird die gleiche Elektronik auch in einer Lampe in der Küche verwendet.

Features für den Nutzer

  • Bedienung über Tasten & Drehencoder oder per IR-Fernbedienung
  • Behält Dimstufe auch nach Abschalten der Versorgungsspannung
  • Unterstützt Bewegungsmelder, wertet Umgebungshelligkeit aus
  • Anpassung der Helligkeit an Umgebungslicht
  • Temperaturüberwachung der LED
  • RGB-Status-LED
  • Konfigurierbar via Menü
  • Koppelbar mit anderen Lampen
  • LCD optional
  • Leuchtet!

Technische Eigenschaften

  • MCU
    • NXP 89LPC935, 8051 mit 2-Takt Kern
    • 8k Byte Flash (ca. 6,4k Byte ohne LCD belegt), 768 Byte RAM, 512 Byte EEPROM, ISP
    • 3 Volt, niedriger Stromverbrauch
    • interne Takterzeugung
  • Kommunikation
    • Empfängt IR-Signale gemäß RC5-Protokoll
  • Stromversorgung
    • Dimmbares Osram Konstantstrom-Netzteil mit LEDset
    • Stellt 12V zur Versorgung der Steuerung bereit
    • Standby-Leistungsaufnahme von 1,5W
    • Alternativ Netzteil von Meanwell bietet größeren Dimbereich und eine niedrigere Standby-Leistungsaufnahme
    • Netzteile können per PWM-Signal oder 0-10V Analogsignal gesteuert werden (Bestückungsoptionen)
    • LEDs können alternativ mit Konstantspannung direkt via PWM gedimmt werden (Bestückungsoptionen)
  • LEDs
    • Nichia NS6W183 mit CRI90+ auf Streifen-Alu-Kern-Platinen
    • Kann nach zu beliebig angepasst werden
    • Überwachung der Temperatur via KTY81-220, bei Überschreitung von ca. 70°C abdimmen, Abschaltung bei 90°C
  • Mechanik
    • Konstruktion aus eloxierten Aluminium Profilen
  • Software
    • Open Source C für SDCC 3.3
    • Verwendet Stromsparmodi der MCU
    • State-Machines für RC5-Dekodierung
    • LCD per #define aktivierbar
    • Helligkeit wird erst nach einigen Sekunden ohne Bedienvorgang gespeichert, um das EEPROM zu schonen
    • Viele Parameter vom Benutzer konfigurierbar

Bilder

  • Bei maximaler und minimaler Leistung

PendellampeMax.jpg PendellampeMin.jpg

  • Variante als Küchenlampe

KuechenlampeMax.jpg KuechenlampeMin.jpg

Die Bilder wurden alle bei den gleichen fixen Kamera-Einstellungen aufgenommen. Der effektive dimmbare Bereich liegt zwischen 25 und 100%. Mit dem Netzteil von Meanwell ist ein größer Dim-Bereich möglich. Die Küchenlampe ist in der Leistung durch die Kühlmöglichkeiten des verwendeten Aluminium-Profils beschränkt. Die Küchenlampe verwendet zwei LED-Module mit einer Farbtemperatur von 2700K.

Beschreibung

Bedienung

Mit einem kurzem Tastendruck wird zwischen Standby und Betrieb gewechselt. Ein langer Tastendruck aktiviert das Optionsmenü, bzw. verlässt dieses wieder. Bei einem sehr langen Tastendruck wird der Tastendruck ignoriert.

Hauptmenü
Funktion Status-LED Erklärung
Standby rot LED nicht bestromt, IR-Signale, Umgebungshelligkeit und Bewegungsmelder werden ausgewertet
Betrieb weiß LED bestromt, IR-Signale und Temperatur werden ausgewertet
Betrieb rot aufblinkend minimale Helligkeit erreicht
Betrieb grün aufblinkend maximale Helligkeit erreicht
Optionsmenü blau / rot, blinkend Wahl der Option über Drehencoder und Taste
Tastendruck ignorieren grün Tastendruck wird nach dem loslassen ignoriert
Übertemperatur weiß / rot, blinkend Temperatur der LED erhöht, Leistung reduziert
Übertemperatur rot, blinkend Temperatur der LED zu hoch, Abschaltung

Im Optionsmenü wird die Option durch die Anzahl der Blitze der Status-LED angezeigt. Jeder vierte Blitz ist rot, alle anderen sind blau. Bei der Wahl eines Menüpunktes durch Tastendruck, gibt die Status-LED durch ihre Farbe die Einstellung der Option wieder.

Optionsmenü
Nr. Funktion Status-LED Erklärung
1 Min. Light blau minimale Helligkeit beim Einschalten der LED
2 Offset Light blau minimales Ausgangssignal, ab dem das Netzteil anfängt die LED zu bestromen, wird auf das Netzteil eingestellt
3 Light Alarm Farbwechsel maximale Helligkeit der LED beim Ende eines Alarms
4 Light Fading Farbwechsel Dauer des Dimmens bei einem Alarm
5 Detector Timeout Farbwechsel Zeit in Minuten nach der die LED nach der Detektion einer Bewegung ausgeschaltet wird, der Wert null schaltet den Bewegungsmelder ab.
6 Det.Bright.Limit Farbwechsel maximale Helligkeit, bei der der Bewegungsmelder noch aktiv ist
7 Set RC Address Farbwechsel Lernt RC5 Adresse, Empfang eines gültigen RC5-Codes
8 Receiver Mode Farbwechsel bestimmt das Zusammenspiel mit anderen Lampen
9 Reset settings Farbwechsel Setzt Steuerung auf Werkseinstellungen zurück
10 LCD Contrast - nur mit LCD
11 Version - nur mit LCD

Software

Die Software besteht aus folgenden Teilen:

  • Hauptschleife
  • Interrupt-Routinen
    • RC5 Decoder, ausgelöst durch Timer 0 mit 4,5kHz, mit Software Timer auch Auswertung der Drehencoder bei 500Hz
    • Update PWM-Werte mit 40Hz und Einlesen der Tasten usw., ausgelöst durch Timer aus RTC der MCU bei 10Hz
  • Initialisierung der MCU
    • Core Funktionen, hauptsächliche Stromsparfunktionen
    • I/O Pins
    • Interne RTC als 40Hz Taktgeber: 6*10^6/4/128/40
    • Watchdog wird abgeschaltet
    • ADC fixed channel, single conversion mode für ADC0
    • DAC
    • CCU output compare: non-inverted PWM, PLL: auf Lock-in abwarten
    • Interrupts freischalten
  • RC5 Decoder

Der RC5 Decoder beruht auf einer State-Machine, die schrittweise die einzelnen Bits erkennt und dann in Adresse und Daten zerlegt. Nach der Erkennung eines kompletten Komandos wird steht rCounter auf dem Wert 12 und das Hauptprogramm beginnt mit der Decodierung (Aufruf "DecodeRemote()").

  • Auswertung Tasten

Es werden die Tasten entprellt und die Dauer des Tastendrucks wird festgestellt.

  • Messung der externen Helligkeit

Der SFH320 Fototransistor wird über durch die Portpins umschaltbare Vorwiderstände von 3V aus bestromt. Mittels ADC wird dann der Spannungsabfall über dem Fototransistor gemessen. Am Bereichsende des ADC wird dann entsprechend auf den größeren oder kleiner Vorwiderstand umgeschaltet. Die Portpins wechseln für die Umschaltung zwischen Open-Drain und Push-Pull. Der Ausgabewert ist immer 1. Die Messwerte werden entsprechend ihrem Bereich gewichtet und durchlaufen einen exponentiellen Mittelwert-Filter. Da der DAC des ADCs für die Helligkeitsmessung für die Ausgabe des Analogsignals an das Netzteil verwendet wird, ist eine Helligkeitsmessung nur im Standby möglich. Beim Einschalten erfolgt zunächst eine Helligkeitsmessung bevor die LED bestromt wird, um den Strom entsprechend der Umgebungshelligkeit anzupassen. Der Fototransistor muss gegen das Licht der Status-LED geschirmt werden.

  • Bewegungsmelder

Wenn der Eingang Bewegungsmelder aktiviert ist und die Helligkeit unter der eingestellten Schwelle liegt, kann durch ein Pegel von 0V am Pin 1.3 für die zuvor eingestellte Zeit, die LED aktiviert werden.

  • Temperaturüberwachung

Die Temperatur wird vom OPV für den ADC in den Bereich zwischen 25°C und 125°C skaliert. Mit 10Hz werden die Werte digitalisiert und dann stark gefiltert. Jeden Zyklus wird geprüft, ob die Temperatur niedrig ist (LED wird nach Helligkeitseinstellung bestromt), über der ersten Schwelle liegt (LED wird weniger als nach nach Helligkeitseinstellung bestromt) oder über der zweiten Schwelle liegt (LED wird abgeschaltet). Nach einer temperaturbedingten Abschaltung wird erst nach dem Unterschreiten der ersten Schwelle wieder eingeschaltet. Während dessen blinkt die Status-LED rot.

Elektronik

Die Stromversorgung der LED-Kette erfolgt über ein steuerbares Konstantstrom-Netzteil vom Typ Osram OT 45/220-240/700 LTCS ( distrelec , 46,05€). Es bietet eine maximale Ausgangsleistung von 45W und eine maximale Ausgangsspannung von 120V. Je nach Ausgangsspannung werden maximal 350mA (120V) bis 700mA (64V) geliefert. Das Netzteil wird dafür per DIP-Schalter konfiguriert. Zusätzlich gibt es einen LEDset Anschluss, der zur Versorgung von externen Komponenten 12V bei max. 50mA und einen analogen 0-10V Steuereingang bietet. Negativ fallen der minimale Laststrom von 100mA und der Standby-Verbrauch von 1,5W auf.

Alternativ kann das LED-Netzteil LCM-60 (60W, 2-90V) oder LCM-40 (40W, 2-100V) von Meanwell (Reichelt , 45,20€ bzw.41,75€) verwendet werden, wenn man sich auf auf 2 LED-Module beschränkt. Diese können dann im Strom auch komplett von 0 bis 100% gesteuert werden. Dies kann auch per 10V PWM Signal erfolgen (also nicht direkt vom Mikrocontroller!). Das Netzteil bietet zusätzlich einen Anschluss zur Temperaturüberwachung per NTC. Der Standby-Verbrauch beträgt weniger als 1W.

Die Steuerung gruppiert sich um eine MCU von NXP der 8051 Serie. Das Steuersignal wird per PWM mit der CCU (0/Ub PWM Signal) oder per DAC (0-10V) erzeugt. Das kärgliche On-Chip der klassischen 8051 hat NXP um 512 Byte aufgebessert, was die Programmierung mit dem SDCC erleichtert. Die Einstellungen werden im internen EEPROM abgelegt. Der interne Takt ist für RC5-Dekoder und PWM-Erzeugung ausreichend. Die Software sollte auch einfach auf einen Atmel AVR o.ä. portiert werden können.

Die MCU und der IR-Empfänger werden durch einen sparsamen Linearspannungsregler mit 3,0V oder 3,3Vversorgt. LP2951-3.X oder LP2950-3.X vertragen die 12V Eingangsspannung leicht. Sie sind jedoch nur mit Tantal-Kondensator am Ausgang zu betreiben. Die Nachbauten von Taiwan Semiconductor (TS295X-3.X) funktionieren auch mit Keramikkondensatoren. Je nach Betriebsspannung muss die Verstärkung des Analogausgangs angepasst werden.

Das Ausgangssignal des DAC wird von einem OPV verstärkt, um den Signalhub bis 10V zu erreichen. Der Ausgang des OPV muss von vom LEDset Ausgang mittels 270 Ohm entkoppelt werden, sonst flackern die LEDs. Das PWM-Signal wird mittels eines NPN-Transistors oder MOSFETS auf Betriebsspannungs-Niveau gehoben. Je nach Anforderung sollte nur eine Variante also PWM oder analog Steuerung bestückt werden. LED-Streifen für Konstantspannungsbetrieb können direkt per PWM gedimmt werden. Dazu wird die Software-Variante 'Noninverted PWM' verwendet und ein MOSFET wie IRLML 6344 als Ausgangsstufe verwendet. Der Gate-Vorwiderstand sollte dann bei 100 Ohm liegen, der Pull-Down bei 47k Ohm. Für den Betrieb bei 24V sind die Spannungsfestigkeit von Suppressordiode und Keramikkondensatoren zu prüfen. Außerdem sollte mit dem Oszi überprüft werden, ob es zu Überschwingern der Drain-Source-Spannung beim Abschalten des MOSFETS kommt. In diesem Fall kann eine Z-Diode mit z.B. 27V helfen. Die Vorwiderstände der RGB-LED erhöhen sich auf 4,7k Ohm.

Die Steuerplatine trägt eine 5*2 polige Pfostenleiste, diese dient primär zur Programmierung der MCU, kann aber auch für Erweiterungen verwendet werden. Statt auf einer geätzten Platine, lässt sich die Schaltung aber auch leicht auf einer Lochrasterplatine aufbauen, wenn man noch einer "sockelbaren" MCU im PLCC habhaft werden kann (oder die Portierung auf eine andere MCU durchführt).

Die MCU wird mit der kostenlosen Software FlashMagic und einer Schaltung von Keil über RS232 geflasht. Bei der Inbetriebnahme müssen folgende Punkte beachtet werden:

  • Die Kondensatoren auf der Steuerungsplatine müssen schnell genug entladen werden können, damit die MCU beim Start in den Programmiermodus gebracht werden kann. Eine zusätzliche Last von z.B. 100 Ohm über die Betriebsspannung hilft.
  • Es muss keine "echte" RS232 Schnittstelle sein. Ein USB-RS232 Adapter mit FTDI-Chip funktioniert bei mir auch.
  • Einstellungen Flash Magic:
    • Select: 89LPC936 oder 89LPC935 je nach Chip
    • Baud Rate: 7200
    • Interface: None (ISP)
    • Oscillator (MHz): 7,373
    • Erase block used by Hex File
  • Die Device Configuration wird wie folgt geschrieben: interner Oszillator, Rest-Pin aus, Brown-out an

Nach der Programmierung der MCU muss diese im Optionsmenü unbedingt auf Werkseinstellungen zurückgesetzt werden.

Optoelektronik

Die Auswahl der LEDs wird primär von den Wünschen nach der Lichtwirkung bestimmt. Es wurden 3 LED-Leisten Typ "PowerBar LED Leiste, 12 Nichia LEDs, CRI 90+" von Leds.de in das Leuchtenprofil sorgfältig eingeklebt (WK 709-5ML, Reichelt). Die kalte Variante ist mit 6500K wirklich recht kühl, die meisten werden die Variante mit 2700K bevorzugen.

Kosten ca. 75€ + Kleber

Mechanik

Bei einer Lampe ist natürlich das Design eine wichtiges Merkmal. Ich bevorzuge ein klares einfaches Design und Materialien wie Glas und eloxiertes Aluminium. Die verwendeten Profile ermöglichen es die Kabel und die Leistungselektronik im Inneren zu verstecken. Zwei IR-Empfänger "schauen" aus den Enden des Vierkant-Rohres nach RC5-Signalen. Das Alu-Leuchtenprofil gibt es mit opaler oder klarer Abdeckung. Die opale schluckt deutlich Licht, was jedoch genug vorhanden ist, belohnt aber mit gleichmäßiger, blendfreier Beleuchtung.

Mechanik
Anzahl Länge [mm] Bezeichnung Preis [€]
1 850 Alu-Leuchtenprofil 80mm breit, Abdeckung opal oder klar, Nr. 9458020, pur-led 99,75 mit Zuschnitt
2 - Abdeckkappen, Nr. 94580201, pur-led 19,98
1 160 x 22,0 Profil-Gehäusehalbschale, KOH-2160, Reichelt 6,70
1 160 x 42,4 Profil-Gehäusehalbschale, KOH-6160, Reichelt 8,45
1 105 x 64,4 Deckelsatz für Profil-Gehäusehalbschale, DPL 2-6, Reichelt 7,75
8 - Kabelzugentlastungschelle, KAZU 0440, Reichelt 0,36
1 850 Alu-Vierkantrohr 25mmx25mm, eloxiert, aus dem Baumarkt
1 4000 Leitung für Halogenseilsysteme mit transparenter Isolierung, aus dem Baumarkt

Ein 3D-Model für FreeCAD befindet sich weiter unten.

2D-Zeichnungen auf Anfrage per PM bei Martin Clausen

Downloads

Siehe auch