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. My Project
  3. AC light dimmer with 2x TRIAC

AC light dimmer with 2x TRIAC

Scheduled Pinned Locked Moved My Project
23 Posts 7 Posters 21.7k Views 12 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.
  • rvendrameR Offline
    rvendrameR Offline
    rvendrame
    Hero Member
    wrote on last edited by
    #8

    @jacikaas

    You must declare variables as 'volatile' to ensure they will be updated during interrupts. Try changing:

    static int currentLevel = 128;  // Current dim level...
    

    into

    volatile int currentLevel = 128;  // Current dim level...
    

    And to ensure no triac firing at zero level, try something like this at beginning of zero_cross_int() (before the "int dimtime"):

    if ( currentLevel == 0 )  return; 
    

    Good luck again!

    Home Assistant / Vera Plus UI7
    ESP8266 GW + mySensors 2.3.2
    Alexa / Google Home

    1 Reply Last reply
    1
    • J Offline
      J Offline
      jacikaas
      wrote on last edited by
      #9

      Thanks!

      Now when light bulb shining in 100% and I turn it off, it graceful goes to 0% with fading.
      When I turn it on, bulb also graceful goes to 100%, but when max power had been reached - power instantly goes to 0% and in Domoticz status leaves as ON.
      But if I use slipper to set 100% - dim level leaves and light bulb is shining as 100%.

      When I use slipper to set dim between 0% and 100% there still shows up flickering.

      What about that line which one we used before:

      analogWrite( LED_PIN, (int)(currentLevel / 100. * 255) );
      

      Maybe this line marks the end, when ligh bulb is going up from 0% to 100%?
      Is this possible?

      rvendrameR 1 Reply Last reply
      0
      • J jacikaas

        Thanks!

        Now when light bulb shining in 100% and I turn it off, it graceful goes to 0% with fading.
        When I turn it on, bulb also graceful goes to 100%, but when max power had been reached - power instantly goes to 0% and in Domoticz status leaves as ON.
        But if I use slipper to set 100% - dim level leaves and light bulb is shining as 100%.

        When I use slipper to set dim between 0% and 100% there still shows up flickering.

        What about that line which one we used before:

        analogWrite( LED_PIN, (int)(currentLevel / 100. * 255) );
        

        Maybe this line marks the end, when ligh bulb is going up from 0% to 100%?
        Is this possible?

        rvendrameR Offline
        rvendrameR Offline
        rvendrame
        Hero Member
        wrote on last edited by
        #10

        @jacikaas

        The analogWrite will fire the triac based on PWM concept, and not synched to zero_cross detection, so in my opinion it would bring more problems than solutions.

        You might be suffering from electrical problems at your zero-cross circuit. It might be not detecting all zero-crosses (or false triggering).

        Maybe if you have a oscilloscope you could check the activity in "zero-cross signal out" pin, it should give you precisely 100 pulses in one second, if working good.

        Another try is to change the '75' constant at dimtime calculation, try increase and/or decrease it a bit, and watch the results...

        Home Assistant / Vera Plus UI7
        ESP8266 GW + mySensors 2.3.2
        Alexa / Google Home

        1 Reply Last reply
        0
        • J Offline
          J Offline
          jacikaas
          wrote on last edited by
          #11

          @rvendrame

          Thank You for Your help! Unfortunately I don't have oscilloscope so I can't check the signal either.

          I will try to change dimtime constant values :)

          Thanks!

          1 Reply Last reply
          0
          • ahmedadelhosniA Offline
            ahmedadelhosniA Offline
            ahmedadelhosni
            wrote on last edited by ahmedadelhosni
            #12

            I wanted to post this topic in the general discussion as I want to make a "safe" AC control circuit and wanted some ideas.

            I have already designed this circuit 2 years ago but every while I gain some new experience. I was programming the dimmer using PIC and I was using Real Time Operating System (RTOS) + using (delay) to create an accurate timing for firing the TRIAC after the Zero crossing is detected. It worked very fine. Ofcourse using delay is bad and blocks your code.
            Afterwards I changed my code to use time interrupts instead of RTOS, and flickering was happening sometimes.
            I am telling you this because this may be something wrong in your coding. So this is the first issue you have to revise.

            Second. A few months ago I found a better design in this link . It is also a dimmer circuit but I read the comments and people said that there is no choke component in the circuit. I read later and new that this means that an inductor must be added ( don't know where exactly ) but I knew later that pulsing in such circuits is not safe without a choke components. This may also cause this flicker as I have on some sites.

            Third. I had a friend of mine who used to run his Home Automation for 3 years. He used the same simple design as you and he never reported any bad issues :) This really made me confused, as the link which I have shared above contains more componets ( capactitors + snubber circuit ) for safety, while my friend didn't add them. I have also to add that snubber circuits are needed with inductive loads only, and maybe this is way he didn't face any problem.

            ohhh what a long reply :)

            1 Reply Last reply
            1
            • J Offline
              J Offline
              jacikaas
              wrote on last edited by
              #13

              Hey,

              @ahmedadelhosni
              Thanks for long post ;)

              Safety is in first place. This circuit should be safer with snubber circuit, inductor and varistor. I miss something? DIAC is same purpose like varistor?

              I look at few already made products in China. Im not realy sure about whats that in pictures, is that inductor or antenna for rf module :)

              First smart switch from China:
              0_1456680598953_upload-d7de8b51-9fa6-491b-8890-ba237374a0a7

              Second smart switch from China:
              0_1456681086581_upload-5f889d7a-2e39-488b-8099-0d7059df050c

              Even more cheaper: Cheap smart switch

              But theese switches are with relays.

              @rvendrame
              I was trying to change around dimtime constant values - and with no any good luck.

              Today I move last modified code to Arduino Mini Pro and test it. When I test it - there was no flickering at all. Only there is same problem with:
              When I turn it on, bulb also graceful goes to 100%, but when max power had been reached - power instantly goes to 0% and in Domoticz status leaves as ON.
              But if I use slipper to set 100% - dim level leaves and light bulb is shining as 100%.

              I will check it and try to figure out why this is happening. :)))

              rvendrameR 1 Reply Last reply
              0
              • J jacikaas

                Hey,

                @ahmedadelhosni
                Thanks for long post ;)

                Safety is in first place. This circuit should be safer with snubber circuit, inductor and varistor. I miss something? DIAC is same purpose like varistor?

                I look at few already made products in China. Im not realy sure about whats that in pictures, is that inductor or antenna for rf module :)

                First smart switch from China:
                0_1456680598953_upload-d7de8b51-9fa6-491b-8890-ba237374a0a7

                Second smart switch from China:
                0_1456681086581_upload-5f889d7a-2e39-488b-8099-0d7059df050c

                Even more cheaper: Cheap smart switch

                But theese switches are with relays.

                @rvendrame
                I was trying to change around dimtime constant values - and with no any good luck.

                Today I move last modified code to Arduino Mini Pro and test it. When I test it - there was no flickering at all. Only there is same problem with:
                When I turn it on, bulb also graceful goes to 100%, but when max power had been reached - power instantly goes to 0% and in Domoticz status leaves as ON.
                But if I use slipper to set 100% - dim level leaves and light bulb is shining as 100%.

                I will check it and try to figure out why this is happening. :)))

                rvendrameR Offline
                rvendrameR Offline
                rvendrame
                Hero Member
                wrote on last edited by
                #14

                @jacikaas said:

                When I turn it on, bulb also graceful goes to 100%, but when max power had been reached - power instantly goes to 0% and in Domoticz status leaves as ON.
                But if I use slipper to set 100% - dim level leaves and light bulb is shining as 100%.

                I saw you still using 'static int' instead 'volatile int' for currentLevel . Did you try 'volatile int' ?

                Apart from that, I don't see any other reason for that. Perhaps something into controller side (domoticz)? I use Vera Lite with similar arduino circuit as yours, and I never had this behavior in my setup.

                Home Assistant / Vera Plus UI7
                ESP8266 GW + mySensors 2.3.2
                Alexa / Google Home

                1 Reply Last reply
                0
                • Z Offline
                  Z Offline
                  Zeph
                  Hero Member
                  wrote on last edited by
                  #15

                  If I understand, sometimes when you think you should be seeing 100%, the light is actually off?

                  You are counting on the triac to latch and hold until the next Zero Crossing. However a triac needs a certain level of current in order to latch. If you try to trigger it too early in the AC cycle (while the AC voltage is still close to zero, just starting to rise), the load may not provide enough current to latch the triac. This is especially true with some kinds of loads. For example, LED Xmas lisghts don't conduct until the AC instantaneous voltage rises above the combined Vfwd of 25-50 series LEDs.

                  One way to test this hypothesis is to lengthen the pulse. Or you could adjust your timing multiplier.

                  1 Reply Last reply
                  0
                  • J Offline
                    J Offline
                    jemish
                    wrote on last edited by
                    #16

                    Can we control AC fan using this module???

                    1 Reply Last reply
                    0
                    • OitzuO Offline
                      OitzuO Offline
                      Oitzu
                      wrote on last edited by
                      #17

                      @jemish which module do you mean exactly?
                      The schematic in the first post is not suitable for inductive loads.

                      J 1 Reply Last reply
                      0
                      • OitzuO Oitzu

                        @jemish which module do you mean exactly?
                        The schematic in the first post is not suitable for inductive loads.

                        J Offline
                        J Offline
                        jemish
                        wrote on last edited by
                        #18

                        @Oitzu okk my friend, thank you so much.

                        But is there any design available for controlling inductive load???

                        1 Reply Last reply
                        0
                        • OitzuO Offline
                          OitzuO Offline
                          Oitzu
                          wrote on last edited by
                          #19

                          @jemish maybe have a look at following blog-post: http://www.homemade-circuits.com/2012/04/how-to-use-triacs-for-inductive-loads.html
                          With this information you should be able to "improve" above schematic to be also able to handle inductive loads.

                          If you have no clue about all that... maybe have a look at this module:
                          https://www.kemo-electronic.de/en/Light-Sound/Effects/Modules/M028-Power-control-110-240-V-AC-2600-VA.php
                          It can control AC Motors,
                          in combination with this module:
                          https://www.kemo-electronic.de/en/Transformer-Dimmer/Converter/M150-DC-pulse-converter.php
                          You can connect it safely to the arduino.

                          ahmedadelhosniA 1 Reply Last reply
                          0
                          • OitzuO Oitzu

                            @jemish maybe have a look at following blog-post: http://www.homemade-circuits.com/2012/04/how-to-use-triacs-for-inductive-loads.html
                            With this information you should be able to "improve" above schematic to be also able to handle inductive loads.

                            If you have no clue about all that... maybe have a look at this module:
                            https://www.kemo-electronic.de/en/Light-Sound/Effects/Modules/M028-Power-control-110-240-V-AC-2600-VA.php
                            It can control AC Motors,
                            in combination with this module:
                            https://www.kemo-electronic.de/en/Transformer-Dimmer/Converter/M150-DC-pulse-converter.php
                            You can connect it safely to the arduino.

                            ahmedadelhosniA Offline
                            ahmedadelhosniA Offline
                            ahmedadelhosni
                            wrote on last edited by
                            #20

                            @Oitzu i cant find the price of them on the site. Are they listed ?

                            1 Reply Last reply
                            0
                            • OitzuO Offline
                              OitzuO Offline
                              Oitzu
                              wrote on last edited by
                              #21

                              @ahmedadelhosni
                              http://www.ebay.com/itm/KEMO-M028-Power-control-110-240-V-AC-2600-VA-Made-in-Germany-/251096815198
                              as example..they are relativ expensive.. see it more as an example. :)

                              ahmedadelhosniA 1 Reply Last reply
                              1
                              • OitzuO Oitzu

                                @ahmedadelhosni
                                http://www.ebay.com/itm/KEMO-M028-Power-control-110-240-V-AC-2600-VA-Made-in-Germany-/251096815198
                                as example..they are relativ expensive.. see it more as an example. :)

                                ahmedadelhosniA Offline
                                ahmedadelhosniA Offline
                                ahmedadelhosni
                                wrote on last edited by
                                #22

                                @Oitzu assume that I didn't ask you :) :)

                                1 Reply Last reply
                                0
                                • rsaefulR Offline
                                  rsaefulR Offline
                                  rsaeful
                                  wrote on last edited by
                                  #23

                                  @jacikaas did you solve the issued? any luck i also have same problem event now i migrated to mysensors v 2.

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


                                  14

                                  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