Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Announcements
  3. 💬 Dimmable LED Actuator

💬 Dimmable LED Actuator

Scheduled Pinned Locked Moved Announcements
59 Posts 27 Posters 13.7k Views 27 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CreakyC Creaky

    @mfalkvidd Yikes, you're right! I drew my conclusion too soon and only by watching the LED strip at max brightness. At max brightness the switching frequency is so high it is no longer perceptible by the eye. Mea culpa...

    mfalkviddM Offline
    mfalkviddM Offline
    mfalkvidd
    Mod
    wrote on last edited by
    #26

    @Creaky yes the switching is pretty quick. I guess that's the whole idea :) I have noticed a refraction pattern in the kitchen sink when using a thin jet of water though.

    The analogWrite function in Arduino is very poorly named, since it doesn't really write an analog value. But I guess it is hard to change now.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      antonholmstedt
      wrote on last edited by
      #27

      I plan to use a LED strip as a closet light, controlled by a magnetic door switch, and of course also controllable in Domoticz. What would be the right way to write the code, should the pro mini send the state of the magnetic switch to the controller and then let the controller turn on the light, or is it easier to let the pro mini turn on the light directly and then report the state back to the controller? Big difference in delay?

      1 Reply Last reply
      0
      • A Offline
        A Offline
        antonholmstedt
        wrote on last edited by
        #28

        It's a closet with two sliding doors and therefore two magnetic switches, and I want the LED to turn on when opening one of the doors, but also be able to turn it off remotely if we forgot to close it when leaving our home.

        1 Reply Last reply
        0
        • boblasureB Offline
          boblasureB Offline
          boblasure
          wrote on last edited by
          #29

          I would like to use this with a 48 Watt led which uses a constant-current power supply 54 - 87 VDC 600 ma output. This mosfet isn't high enough voltage rating, the IRF630MFP is rated at 200V 9amp, however I have questions about if the uC output will power the gate. The gate-source voltage is +/- 20. The VGS(th) gate threshold voltage is 2 to 4 volts with typ 3V. I would cut the negative from the power supply and connect to source, then connect the Led negative to drain, and connect the drain to ground on the uC? I need a reality check- does this sound possible or will I fry something?

          1 Reply Last reply
          0
          • WieselW Offline
            WieselW Offline
            Wiesel
            wrote on last edited by
            #30

            Hi,
            I'm new in MySensors and build this Dimmer - LED with and without the rotary encoder which works fine.
            Now I would like to decouple the rotary encoder as a battery powered "standalone" sensor which is (in best case) connected directly to the LED-Dimmer. Furthermore the decoupled rotary encoder should be always in sleep mode until the rotary encoder awake the arduino.
            Is that possible ? I'm just stuck to seperate the code for the rotary encoder from the led-dimmer code.
            Thank you in advance.

            1 Reply Last reply
            0
            • J Offline
              J Offline
              joschre
              wrote on last edited by
              #31

              hi, i used the example sketch. i also changed from "delay" to "wait" in fade section. The problem: i can change the percentage for example 8 times and then the gateway crashes and reboots. In a other case it works 12 times and then the gateway crashes. All other nodes (Temp, Hum) works fine all the time.

              mfalkviddM 1 Reply Last reply
              0
              • J Offline
                J Offline
                joschre
                wrote on last edited by
                #32

                oh, i use mysensors serial gateway connected to a raspberry with fhem running.

                1 Reply Last reply
                0
                • J joschre

                  hi, i used the example sketch. i also changed from "delay" to "wait" in fade section. The problem: i can change the percentage for example 8 times and then the gateway crashes and reboots. In a other case it works 12 times and then the gateway crashes. All other nodes (Temp, Hum) works fine all the time.

                  mfalkviddM Offline
                  mfalkviddM Offline
                  mfalkvidd
                  Mod
                  wrote on last edited by
                  #33

                  @joschre could you post the debug output from the node?

                  1 Reply Last reply
                  0
                  • J Offline
                    J Offline
                    joschre
                    wrote on last edited by
                    #34

                    Problem solved! The 3.3v Form arduino nano was too Bad for the nrf24l01j pa lna with PA_LEVEL MAX. NOW i usw an external regulator an everything is fine :-) sorry for this newbie fault :-D

                    mfalkviddM 1 Reply Last reply
                    1
                    • J joschre

                      Problem solved! The 3.3v Form arduino nano was too Bad for the nrf24l01j pa lna with PA_LEVEL MAX. NOW i usw an external regulator an everything is fine :-) sorry for this newbie fault :-D

                      mfalkviddM Offline
                      mfalkviddM Offline
                      mfalkvidd
                      Mod
                      wrote on last edited by
                      #35

                      @joschre great that you found a solution. Thank for reporting back.

                      1 Reply Last reply
                      0
                      • U Offline
                        U Offline
                        user2684
                        Contest Winner
                        wrote on last edited by
                        #36

                        Hi, I've noticed the V_DIMMER of the example is not (anymore?) available in https://www.mysensors.org/download/serial_api_20, am I wrong? Thanks

                        mfalkviddM 1 Reply Last reply
                        0
                        • U user2684

                          Hi, I've noticed the V_DIMMER of the example is not (anymore?) available in https://www.mysensors.org/download/serial_api_20, am I wrong? Thanks

                          mfalkviddM Offline
                          mfalkviddM Offline
                          mfalkvidd
                          Mod
                          wrote on last edited by mfalkvidd
                          #37

                          @user2684 you're right. I think it is supposed to be S_DIMMER (S_ is used for presentation)

                          1 Reply Last reply
                          0
                          • LacesL Offline
                            LacesL Offline
                            Laces
                            wrote on last edited by
                            #38

                            Dear Guys,

                            How can I control an RGB ledstrip with this config may I add more MOSFAT or how ?
                            Thank you very much.

                            L

                            korttomaK 1 Reply Last reply
                            0
                            • LacesL Laces

                              Dear Guys,

                              How can I control an RGB ledstrip with this config may I add more MOSFAT or how ?
                              Thank you very much.

                              L

                              korttomaK Offline
                              korttomaK Offline
                              korttoma
                              Hero Member
                              wrote on last edited by
                              #39

                              @Laces yes you can. The principal is the same, just one mosfet per channel.
                              Search the forum for RGB or RGBW and you sould be able to find some examples.

                              • Tomas
                              1 Reply Last reply
                              1
                              • PlantexP Offline
                                PlantexP Offline
                                Plantex
                                wrote on last edited by
                                #40
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • J jeti

                                  so this works now like a charm:

                                  // Enable debug prints to serial monitor
                                  #define MY_DEBUG 
                                  
                                  // Enable and select radio type attached
                                  #define MY_RADIO_NRF24
                                  //#define MY_RADIO_RFM69
                                  
                                  #define MY_NODE_ID 153 
                                  
                                  #include <SPI.h>
                                  #include <MySensors.h> 
                                  
                                  #define SN "MultiDimmableLED"
                                  #define SV "1.1"
                                  
                                  #define noLEDs 3
                                  const int LED_Pin[] = {3, 5, 6}; 
                                  
                                  #define FADE_DELAY 25  // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim)
                                  
                                  static int currentLevel = 0;  // Current dim level...
                                  MyMessage dimmerMsg(noLEDs, V_DIMMER);
                                  MyMessage lightMsg(noLEDs, V_LIGHT);
                                  
                                  
                                  
                                  /***
                                   * Dimmable LED initialization method
                                   */
                                  void setup()  
                                  { 
                                    // not sure this works
                                    // Pull the gateway's current dim level - restore light level upon sendor node power-up
                                  for (int sensor=1; sensor<=noLEDs; sensor++){
                                    request( sensor, V_DIMMER );
                                   }
                                  }
                                  
                                  void presentation() {
                                    // Register the LED Dimmable Light with the gateway
                                   for (int sensor=1; sensor<=noLEDs; sensor++){
                                   present(sensor, S_DIMMER);
                                   wait(2);
                                   }
                                    sendSketchInfo(SN, SV);
                                  }
                                  
                                  /***
                                   *  Dimmable LED main processing loop 
                                   */
                                  void loop() 
                                  {
                                  }
                                  
                                  
                                  
                                  void receive(const MyMessage &message) {
                                    if (message.type == V_LIGHT || message.type == V_DIMMER) {
                                      
                                      //  Retrieve the power or dim level from the incoming request message
                                      int requestedLevel = atoi( message.data );
                                      
                                      // Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on]
                                      requestedLevel *= ( message.type == V_LIGHT ? 100 : 1 );
                                      
                                      // Clip incoming level to valid range of 0 to 100
                                      requestedLevel = requestedLevel > 100 ? 100 : requestedLevel;
                                      requestedLevel = requestedLevel < 0   ? 0   : requestedLevel;
                                      
                                      Serial.print( "Changing LED " );
                                      Serial.print(message.sensor);
                                      Serial.print(", PIN " );
                                      Serial.print( LED_Pin[message.sensor] );
                                      Serial.print(" level to " );
                                      Serial.print( requestedLevel );
                                      Serial.print( ", from " ); 
                                      Serial.println( currentLevel );
                                  
                                      
                                      fadeToLevel( requestedLevel, message.sensor );
                                      
                                      // Inform the gateway of the current DimmableLED's SwitchPower1 and LoadLevelStatus value...
                                      send(lightMsg.set(currentLevel > 0 ? 1 : 0));
                                  
                                      // hek comment: Is this really nessesary?
                                      send( dimmerMsg.set(currentLevel) );
                                  
                                      
                                      }
                                  }
                                  
                                  /***
                                   *  This method provides a graceful fade up/down effect
                                   */
                                  void fadeToLevel( int toLevel, int ledid ) {
                                  
                                    int delta = ( toLevel - currentLevel ) < 0 ? -1 : 1;
                                    
                                    while ( currentLevel != toLevel ) {
                                      currentLevel += delta;
                                      analogWrite(LED_Pin[ledid-1], (int)(currentLevel / 100. * 255) );
                                      wait( FADE_DELAY );
                                    }
                                  }```
                                  
                                  thank you :thumbsup:
                                  PlantexP Offline
                                  PlantexP Offline
                                  Plantex
                                  wrote on last edited by Plantex
                                  #41
                                  This post is deleted!
                                  1 Reply Last reply
                                  0
                                  • I Offline
                                    I Offline
                                    itbeyond
                                    wrote on last edited by
                                    #42

                                    Ah I have just built a test bed with this setup however it appears the circuit diagram in the Fritizing is actually not 100% correct. The red wire from the protoboard is connected to the GND of the Pro Mini - this confused me as I was using the GND/RAW pins to identify the cable color. If you flip the red/blue connections on the Pro Mini it will be right. Small issue I know but I had to reference another image to get the circuit to work.

                                    1 Reply Last reply
                                    0
                                    • K Offline
                                      K Offline
                                      KoenP
                                      wrote on last edited by
                                      #43

                                      Hi Folks,

                                      I have build this in combination with a ethernet gateway. Works perfect, however, when for whatever reason the network fails, I cannot control my lights anymore.

                                      Is there a possibilty toi have it working also "stand alone" when the network fails?

                                      Grtz.

                                      KoenP

                                      1 Reply Last reply
                                      0
                                      • vladimirV Offline
                                        vladimirV Offline
                                        vladimir
                                        wrote on last edited by
                                        #44

                                        Hi all!

                                        I'm using OpenHAB 2, and I have some problems with the sketch code "DimmableLightWithRotaryEncoderButton".

                                        1. When the encoder button is pressed, the switch in OpenHAB does not respond.
                                        2. When you turn the encoder knob one step, the value changes in two steps.

                                        Maybe you have encountered such a problem? Or maybe you can share a more modern sketch?

                                        mfalkviddM 1 Reply Last reply
                                        0
                                        • vladimirV vladimir

                                          Hi all!

                                          I'm using OpenHAB 2, and I have some problems with the sketch code "DimmableLightWithRotaryEncoderButton".

                                          1. When the encoder button is pressed, the switch in OpenHAB does not respond.
                                          2. When you turn the encoder knob one step, the value changes in two steps.

                                          Maybe you have encountered such a problem? Or maybe you can share a more modern sketch?

                                          mfalkviddM Offline
                                          mfalkviddM Offline
                                          mfalkvidd
                                          Mod
                                          wrote on last edited by
                                          #45

                                          In case anyone can help @vladimir, please post in https://forum.mysensors.org/post/93111 so we keep the discussion focused in one place.

                                          1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          12

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular