nerves-project / nerves_leds

Functions to drive LEDs on embedded systems
Other
13 stars 5 forks source link

Support LEDs that support a max_brightness > 1 #7

Closed fhunleth closed 7 years ago

fhunleth commented 8 years ago

While they're not technically unsupported, there's an assumption that LEDs can only be set on or off. Some LEDs can have their brightness set from 0-255 or other ranges if the Linux driver supports it. Currently, setting those LEDs to true sets them to 1 which is really dim.

The Lego Mindstorms EV3 is one platform that has LEDs like this. I've seen this on other platforms as well.

ghitchens commented 7 years ago

Finally made a pass on nerves_leds to solve a bunch of configuration stuff.

You can now definitely do this...

Leds.set :backlight, brightness: 200

And I added an example as such, But you could also redefine true to have a different value written, as follows...

# in config.exs
...
config nerves_leds, states: [ 
    true:  [brightness: 255],  # or whatever
    false: [brightness: 0],
    slowblink: [trigger: "timer", delay_off: 250, delay_on: 250],
    fastblink: [trigger: "timer", delay_off: 80, delay_on: 50],
    slowwink:  [trigger: "timer", delay_on: 1000, delay_off: 100],
    heartbeat: [trigger: "heartbeat"]
]

Do you think this is enough to address this issue?

If not, one other idea would be to do implement the ability to do something like...

# in config.exs
config nerves_leds, max_brightness: 255, min_brightness: 0

And then have true mean write the "maximum" value for brightness, but I'm not sure that's enough better than just redefining the meaning of true and false.

Thoughts?

mobileoverlord commented 7 years ago

👍

fhunleth commented 7 years ago

I'm glad that you can set the brightness to an integer. I don't think that I knew that when I entered this issue. My guess is that people who actually have an LED that supports a variable brightness probably won't use true and false and maybe this is a non-problem. However, I do like the first suggestion of defining the brightness of true and false.

ghitchens commented 7 years ago

Looks like current behavior is good enough to close this. Thanks.