Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. Bartek Kowalczyk
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Bartek Kowalczyk

    @Bartek Kowalczyk

    0
    Reputation
    4
    Posts
    297
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Bartek Kowalczyk Follow

    Best posts made by Bartek Kowalczyk

    This user hasn't posted anything yet.

    Latest posts made by Bartek Kowalczyk

    • RE: 4CH AC LED Light Dimmer triack Module Leading Edge how to connect with Domoticz using MySensors?

      At the beginning yes, and shortly after I want to control 4 dimmers by Domoticz and by push buttons paralelly.
      Second sketch (posted today) it is my testing sketch which I used for learning how communicate with domoticz, but it seems that I have no idea how to doit.

      posted in Domoticz
      Bartek Kowalczyk
      Bartek Kowalczyk
    • RE: 4CH AC LED Light Dimmer triack Module Leading Edge how to connect with Domoticz using MySensors?

      Could you plese explain me a little bit more? I'm not sure what are you suggesting.
      First I would like to see in domoticz values from Arduino - 33 % or 66% depending on which button I press.

      posted in Domoticz
      Bartek Kowalczyk
      Bartek Kowalczyk
    • RE: 4CH AC LED Light Dimmer triack Module Leading Edge how to connect with Domoticz using MySensors?

      Hi,
      I have try to adopt less complicated version to Domoticz: one button should set value of dimmer to 33 % and second 66%. Unfortunatelly without any success.
      It looks that node is registered with 5 children (I don't know why 5 ).

      Sketch and some print screens from Domoticz below.
      1.
      0_1517863301397_eafbe66f-14c4-4459-8ee4-f6f4f5a80ca8-image.png
      2.
      0_1517863461127_e500a070-6767-44b0-b8a2-bdd44b550528-image.png
      3.
      0_1517863596406_9796883b-6f9a-4881-ae9e-e4b7ab19cecb-image.png

      // Testing sketch for 50Hz !
      // Dimmer  Arduino
      //   |             |
      //  GND           GND
      //  VCC           5V
      //  SYNC        DIGITAL.3
      //  CH1         DIGITAL.50
      //  CH2         DIGITAL.51
      //  CH3         DIGITAL.52
      //  CH4         DIGITAL.53
      //
      //  HC-05       Arduino Mega  
      //   |             |
      //  GND           GND
      //  VCC           5V
      //  TX            RX (DIGITAL.0) 
      
      
      #define MY_DEBUG  // Enable debug prints to serial monitor 
      #define MY_GATEWAY_SERIAL // Enable serial gateway
      //#define MY_REPEATER_FEATURE
      #include <SPI.h>
      #include <MySensors.h>
      #include <TimerOne.h>    // download this library from arduino.cc
      #include <Bounce2.h> 
      #define BUTTON_1_PIN 4
      #define BUTTON_2_PIN 5
      #define BUTTON_3_PIN 6
      #define BUTTON_4_PIN 7
      unsigned char channel_1 = 50; // Output to Opto Triac pin, channel 1
      unsigned char channel_2 = 51; // Output to Opto Triac pin, channel 2
      unsigned char channel_3 = 52; // Output to Opto Triac pin, channel 3
      unsigned char channel_4 = 53; // Output to Opto Triac pin, channel 4
      unsigned char Status_button_1;
      unsigned char Status_button_2;
      unsigned char Status_button_3;
      unsigned char Status_button_4;
      unsigned char CH1, CH2, CH3, CH4;
      unsigned char clock_tick; // variable for Timer1
      MyMessage Strefa_1_dimmermsg(0, V_DIMMER);  // Define message name and type to send sensor info  
      MyMessage Strefa_2_dimmermsg(1, V_DIMMER);
      MyMessage Strefa_3_dimmermsg(2, V_DIMMER);
      MyMessage Strefa_4_dimmermsg(3, V_DIMMER);
      MyMessage Strefa_1_lightmsg(0, V_LIGHT);
      MyMessage Strefa_2_lightmsg(1, V_LIGHT);
      MyMessage Strefa_3_lightmsg(2, V_LIGHT);
      MyMessage Strefa_4_lightmsg(3, V_LIGHT);
      Bounce debouncer1 = Bounce();
      Bounce debouncer2 = Bounce();
      Bounce debouncer3 = Bounce();
      Bounce debouncer4 = Bounce();
      void setup() {
      
      Serial.begin(9600);
      pinMode(channel_1, OUTPUT);// Set AC Load pin as output
      pinMode(channel_2, OUTPUT);// Set AC Load pin as output
      pinMode(channel_3, OUTPUT);// Set AC Load pin as output
      pinMode(channel_4, OUTPUT);// Set AC Load pin as output
      pinMode(BUTTON_1_PIN, INPUT_PULLUP); //button channel 1
        pinMode(BUTTON_2_PIN, INPUT_PULLUP); //button channel 2
        pinMode(BUTTON_3_PIN, INPUT_PULLUP); //button channel 3
        pinMode(BUTTON_4_PIN, INPUT_PULLUP);//button channel 4
        // After setting up the button, setup debouncer.
        debouncer1.attach(BUTTON_1_PIN);
        debouncer1.interval(5);
        debouncer2.attach(BUTTON_2_PIN);
        debouncer2.interval(5);
        debouncer3.attach(BUTTON_3_PIN);
        debouncer3.interval(5);
        debouncer4.attach(BUTTON_4_PIN);
      attachInterrupt(1, zero_crosss_int, RISING);
      Timer1.initialize(75); // set a timer of length 75 microseconds 
      Timer1.attachInterrupt( timerIsr ); // attach the service routine here
      
      CH1=CH2=CH3=CH4=95; // WHEN ARDUINO START, ALL LIGHT OFF (95 - FULLY OFF ; 5 - FULLY ON) !!!
      
      }
      void presentation(){
        sendSketchInfo("Dimmer","05_02_2018_v3");  // Present sketch (name, version)
        for (int sensor=0; sensor<=3;sensor++) // Register all sensors to gw (they will be created as child devices)
        {
          present(sensor, S_DIMMER);}} //Your sensor must first present itself to the controller. 
                                    //The presentation is a hint to allow controller prepare for the sensor data that eventually will come.
                                    // This is done by calling present(child-sensor-id,sensor-type)  
                                    // Register sensors (id, type, description, ack back)
      void timerIsr(){
        clock_tick++;
        if (CH1==clock_tick)
        {
          digitalWrite(channel_1, HIGH); // triac firing
          delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
          digitalWrite(channel_1, LOW); // triac Off
          }
          if (CH2==clock_tick)
          {
            digitalWrite(channel_2, HIGH); // triac firing
            delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
            digitalWrite(channel_2, LOW); // triac Off
            }
            if (CH3==clock_tick)
            {
              digitalWrite(channel_3, HIGH); // triac firing
              delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
              digitalWrite(channel_3, LOW); // triac Off
              }
              if (CH4==clock_tick)
              {
                digitalWrite(channel_4, HIGH); // triac firing
                delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
                digitalWrite(channel_4, LOW); // triac Off
                }
      }
      void zero_crosss_int() // function to be fired at the zero crossing to dim the light
      {
        // Every zerocrossing interrupt: For 50Hz (1/2 Cycle) => 10ms ; For 60Hz (1/2 Cycle) => 8.33ms
        // 10ms=10000us , 8.33ms=8330us
        clock_tick=0;
        }
        
      void loop() {
      Status_button_1=digitalRead(BUTTON_1_PIN);
      Status_button_2=digitalRead(BUTTON_2_PIN);
      
      if (Status_button_2==LOW){;
      CH1=CH2=CH3=CH4=33;
      
      send(Strefa_1_dimmermsg.set(CH1));
      send(Strefa_2_dimmermsg.set(CH2));
      send(Strefa_3_dimmermsg.set(CH3));
      send(Strefa_4_dimmermsg.set(CH4));
      delay(5000);}
      if (Status_button_1==LOW){
        CH1=CH2=CH3=CH4=66;
      
        send(Strefa_1_dimmermsg.set(CH1));
        send(Strefa_2_dimmermsg.set(CH2));
        send(Strefa_3_dimmermsg.set(CH3));
        send(Strefa_4_dimmermsg.set(CH4));
        delay(5000);
      
      }
      }
      
      
      

      This is what I see in serial port monitor:
      (0;0;1;0;3;66
      0;1;1;0;3;66
      0;2;1;0;3;66
      0;3;1;0;3;66
      0;0;1;0;3;33
      0;1;1;0;3;33
      0;2;1;0;3;33
      0;3;1;0;3;33)

      posted in Domoticz
      Bartek Kowalczyk
      Bartek Kowalczyk
    • 4CH AC LED Light Dimmer triack Module Leading Edge how to connect with Domoticz using MySensors?

      Hi,
      I'm planning to build controller for light based on Ardino Mega and Domoticz installed on Raspbery Pi 3 B. Somedays ago I 've bought Dimmer for light like here: e-bay dimmer and I'm looking for someone who can help me adopt scetch posted below to control dimming by Domoticz. I am using USB cable ror connection between Arduino and Raspberry at this moment.
      Any help appreciated

      
      // Testing sketch for 50Hz !!!
      //
      /
      // Dimmer  Arduino Mega
      //   |             |
      //  GND           GND
      //  VCC           5V
      //  SYNC        DIGITAL.3
      //  CH1         DIGITAL.45
      //  CH2         DIGITAL.47
      //  CH3         DIGITAL.49
      //  CH4         DIGITAL.51
      //https://github.com/mysensors/MySensorsArduinoExamples/blob/master/examples/RGB_3D/RGB_3D.ino 
      
      #define MY_DEBUG  // Enable debug prints to serial monitor //TO MUSI BYĆ ZDEFINIOWANE PRZED INCLUDE MYSENSORS
      #define MY_GATEWAY_SERIAL // Enable serial gateway
      
      #include <SPI.h>
      #include <MySensors.h>
      #include <TimerOne.h>    // download this library from arduino.cc
      #include <Bounce2.h> 
      unsigned char channel_1 = 45; // Output to Opto Triac pin, channel 1
      unsigned char channel_2 = 47; // Output to Opto Triac pin, channel 2
      unsigned char channel_3 = 49; // Output to Opto Triac pin, channel 3
      unsigned char channel_4 = 51; // Output to Opto Triac pin, channel 4
      unsigned int CH1, CH2, CH3, CH4;
      unsigned char i=0;
      unsigned int delay_time=2500; // delay ms or SPEED
      unsigned char clock_tick; // variable for Timer1
      unsigned char Status_przycisk_1;
      unsigned char Status_przycisk_2;
      unsigned char Status_przycisk_3;
      unsigned char Status_przycisk_4;
      int16_t last_dim = 33;
      #define BUTTON_1_PIN 10
      #define BUTTON_2_PIN 11
      #define BUTTON_3_PIN 12
      #define BUTTON_4_PIN 13
      
      
      Bounce debouncer1 = Bounce();
      Bounce debouncer2 = Bounce();
      Bounce debouncer3 = Bounce();
      Bounce debouncer4 = Bounce();
      
      MyMessage Strefa_1_dimmerMsg(1, V_DIMMER);  // Define message name and type to send sensor info  
      MyMessage Strefa_2_dimmerMsg(2, V_DIMMER);
      MyMessage Strefa_3_dimmerMsg(3, V_DIMMER);
      MyMessage Strefa_4_dimmerMsg(4, V_DIMMER);
      
      void setup() {
        Serial.begin(9600);
        pinMode(channel_1, OUTPUT);// Set AC Load pin as output
        pinMode(channel_2, OUTPUT);// Set AC Load pin as output
        pinMode(channel_3, OUTPUT);// Set AC Load pin as output
        pinMode(channel_4, OUTPUT);// Set AC Load pin as output
        pinMode(BUTTON_1_PIN, INPUT_PULLUP); //przycisk kanał 1
        pinMode(BUTTON_2_PIN, INPUT_PULLUP); //przycisk kanał 2
        pinMode(BUTTON_3_PIN, INPUT_PULLUP); //przycisk kanał 3
        pinMode(BUTTON_4_PIN, INPUT_PULLUP);//przycisk kanał 4
        // After setting up the button, setup debouncer.
        debouncer1.attach(BUTTON_1_PIN);
        debouncer1.interval(5);
        debouncer2.attach(BUTTON_2_PIN);
        debouncer2.interval(5);
        debouncer3.attach(BUTTON_3_PIN);
        debouncer3.interval(5);
        debouncer4.attach(BUTTON_4_PIN);
        attachInterrupt(1, zero_crosss_int, RISING);
        Timer1.initialize(100); // set a timer of length 100 microseconds for 50Hz or 83 microseconds for 60Hz;
        Timer1.attachInterrupt( timerIsr ); // attach the service routine here
        
        CH1=CH2=CH3=CH4=99; // WHEN ARDUINO START, ALL LIGHT OFF (95 - FULLY OFF ; 5 - FULLY ON) !!!
      
      }
      
      void presentation(){
        
        sendSketchInfo("Sciemniacz","1.2");  // Present sketch (name, version)
        present(1, S_DIMMER, "strefa 1", true); // Register sensors (id, type, description, ack back)
        present(2, S_DIMMER, "strefa 2", true);
        present(3, S_DIMMER, "strefa 3", true);
        present(4, S_DIMMER, "strefa 4", true);
      }
      void timerIsr()
      {
      clock_tick++;
      
      if (CH1==clock_tick){
        digitalWrite(channel_1, HIGH); // triac firing
        delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)\
        digitalWrite(channel_1, LOW); // triac Off
        }
      
      if (CH2==clock_tick){
        digitalWrite(channel_2, HIGH); // triac firing
        delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
        digitalWrite(channel_2, LOW); // triac Off
        }
      
      if (CH3==clock_tick){
        digitalWrite(channel_3, HIGH); // triac firing
        delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
        digitalWrite(channel_3, LOW); // triac Off
        }
      
      if (CH4==clock_tick){
        digitalWrite(channel_4, HIGH); // triac firing
        delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
        digitalWrite(channel_4, LOW); // triac Off
        }
      }
      
      void zero_crosss_int() // function to be fired at the zero crossing to dim the light
      {
      // Every zerocrossing interrupt: For 50Hz (1/2 Cycle) => 10ms ; For 60Hz (1/2 Cycle) => 8.33ms
      // 10ms=10000us , 8.33ms=8330us
      
      clock_tick=0;
      }
      
      void loop() {
      
        Status_przycisk_1=digitalRead(BUTTON_1_PIN);
        Status_przycisk_2=digitalRead(BUTTON_2_PIN);
        Status_przycisk_3=digitalRead(BUTTON_3_PIN);
        Status_przycisk_4=digitalRead(BUTTON_4_PIN);
      
      if (Status_przycisk_1 == 0) {
        CH1=CH1-1;
        if (CH1<5){
          CH1=99;
          }
         
          }
      if (Status_przycisk_2 == 0) {
        CH2=CH2-1;
          
        if (CH2<5){
          CH2=99;
        }
          }
      
      if (Status_przycisk_3 == 0) {
        CH3=CH3-1;
        if (CH3<5){
          CH3=99;
        }
      }
      if (Status_przycisk_4 == 0) {
        CH4=CH4-1;
        if (CH4<5){
          CH4=99;
        }
      }
      
      delay(50);
      }```
      posted in Domoticz
      Bartek Kowalczyk
      Bartek Kowalczyk