Ledmodule

From Jiskar

Jump to: navigation, search

Note: this project is not yet finished. The info on this page may be incomplete, messy and will probably change...

These pages serve as my scratch book during the project. Please use them as no more than that until I've cleaned them up at the end of this project



Contents

project goals:

have a 'turnkey' energy efficient light module that has a color temperature tunable white light output with various control inputs.


Why?

Humans react mentally and biologically on the color temperature and color spectrum of light. I want to make a light that has the possibility to control the spectral composition and color temperatures in order to make a light that positively influences one's biological and mental state. It can be used to improve mood, productivity and natural sleeping rhythm. In order to create different light frequency's the system uses four high power LED's (white,blue,green,red) and control electronics to generate a specific light composition. By relating the resulting color temperature to several factors like the time of day, sleep rythm, wheather, current occupation, etc. the lamp can achieve lighting conditions that positively influence one's state.

Effects to strive at are: -Natural sleep/wake rythm adjusted to your preference. -Increased performance and alertness during working time. -Relaxation when not working. -Good mood.

Literature

  • Myriam Aries - Human lighting demands
  • Ingo Speier & Marc Salsbury - Color temperature tunable white light led system
  • Advanced lighting guidelines, 2003 edition" - Lighting and human performance

Approach

...

System requirements:

Design of a module that provides all the circuitry necessary for a flexible color temperature tunable white led light system with the following requirements:

  • 4 driver outputs for white, red, green, blue with 1Amp current.
  • Scalable output capacity; 1 to 3 LEDs per driver.
  • Possibility to add more output capacity per channel by attaching extra drivers
  • Arduino compatible controller
  • Eeprom memory for color schemes
  • Real time clock (optional)
  • rotary encoder input
  • analog input
  • wireless input/output (optional)
  • small footprint PCB.
  • Design optimized for electric efficiency

Project status:

first prototype built and in use. It works! And I like it. The code is has to be optimised a lot though.


Prototype 1

For the first prototype I had a different set of requirement. Prototype 1 has the following specs:

specifications

  • 4 built in LEDs: cool-white, red, green, blue
  • 8cm diameter double sided round pcb for all the electronics.
  • attiny44 controller
  • switching current driver for each led channel
  • rotary encoder input

design

The module is designed around an ATtiny44 microcontroller. This is a low cost controller with 4 PWM outputs. The pwm outputs are used to drive four current sources which provide the current for the LEDs.

The zxld1360 is a 'continuous mode inductive step down converter'. Its basically a pwm controllable current source that can drive up to 1Amp. A more simple way to drive the led's from the microcontroller would be to use a current limiting resistor and a pwm'd FET. However that would waste a lot of energy in the resistor. The step down converters do this a lot more efficient. Furthermore i hoped that the output of the drivers would provide a more smooth current to the led than hard on and off switching, and that this would result in a less flickering light. The pcb is designed in eagle and converted to EMC readable g-code by the pcbgcode script.

the design files and some sample code are here: File:Ledmodule proto1final cadcam.tar.gz


code

Right now i have a fairly simple and un-optimized code running. The idea is to have one knob with which you adjust everything the lamp can do. By turning it clockwise, you turn through a 'light-day'. This means that the light starts out very dim an blueish, then gets brighter and more white (midday), then maximum brightness and totally white, and finally more red and more dim until it turns off.

The code reads the rotary encoder and counts the position in a global variable time-of-day. This variable is a measure for the light color and brightness. For every led color I made a formula that calculates the intensity as a function of given time-of-day. The calculated intensities are the fed to the PWM registers. The formula's are based on inverted parabola's, shifted and squeezed in x and y direction to get the correct response. For example the blue led has a parapola thats more shiftet to the left, so that it turns on and off earlier than f.e. the red led.

pictures


prototype analysis.

Very quick analysis, more to come.

  • lamp gives funny colored shadows because of the distance between leds. Looks pretty cool, but can in some cases be annoying.
  • dimming is not smooth, steps can be seen
  • lowest light level of leds is still pretty bright (depends on pwm frequency, further research required)
  • drivers make a very slight buzzing noise
  • original heat sink for leds was too small. Had to replace with bigger one (see pictures).
  • the colored leds have more than nescessary power in comparison with the one white led. maybe add more white leds or lower power color leds in future designs.
  • total brightness is enough for normal desk light
  • strange problems with the controller's portB, it seemed only be active when one ore more pin is pulled down.
  • Too little on chip eeprom memory for a full color scheme
  • attachment of perifery (rtc, remote) requires new pcb

Todo list:

  • measure different pwm frequencies and judge corresponding light output on flickering and dimming ratio.
  • code: optimise color algorithm for more subtle colors.
  • code: make dimming speed react on the speed of turning of the input-encoder in order to have better control.
  • code: make special 'mood-light' functionality in code.
  • design next prototype
    • research possible wired/wireless communication possibilities
Personal tools