When I control the power of one light it works fine, but when I use two they flicker. I'm not very good at coding, so I was hoping someone could help. I tried making more of the class that controls the brightness, but it doesn't work.
This is the light dimmer:
https://robotdyn.com/din-ac-dimmer-module-4channes.html
My code:
/**************
- RobotDyn
- Dimmer Library
- The following sketch is meant to define the dimming value through the serial port of the controller,
- using USE_SERIAL.begin
- void printSpace() function is used for adding of space after functional data
- void loop() serial port evaluator, used to register and define values in dimmer.setPower(outVal);
- ---------------------- OUTPUT & INPUT Pin table ---------------------
- +---------------+-------------------------+-------------------------+
- | Board | INPUT Pin | OUTPUT Pin |
- | | Zero-Cross | |
- +---------------+-------------------------+-------------------------+
- | Lenardo | D7 (NOT CHANGABLE) | D0-D6, D8-D13 |
- +---------------+-------------------------+-------------------------+
- | Mega | D2 (NOT CHANGABLE) | D0-D1, D3-D70 |
- +---------------+-------------------------+-------------------------+
- | Uno | D2 (NOT CHANGABLE) | D0-D1, D3-D20 |
- +---------------+-------------------------+-------------------------+
- | ESP8266 | D1(IO5), D2(IO4), | D0(IO16), D1(IO5), |
- | | D5(IO14), D6(IO12), | D2(IO4), D5(IO14), |
- | | D7(IO13), D8(IO15), | D6(IO12), D7(IO13), |
- | | | D8(IO15) |
- +---------------+-------------------------+-------------------------+
- | ESP32 | 4(GPI36), 6(GPI34), | 8(GPO32), 9(GP033), |
- | | 5(GPI39), 7(GPI35), | 10(GPIO25), 11(GPIO26), |
- | | 8(GPO32), 9(GP033), | 12(GPIO27), 13(GPIO14), |
- | | 10(GPI025), 11(GPIO26), | 14(GPIO12), 16(GPIO13), |
- | | 12(GPIO27), 13(GPIO14), | 23(GPIO15), 24(GPIO2), |
- | | 14(GPIO12), 16(GPIO13), | 25(GPIO0), 26(GPIO4), |
- | | 21(GPIO7), 23(GPIO15), | 27(GPIO16), 28(GPIO17), |
- | | 24(GPIO2), 25(GPIO0), | 29(GPIO5), 30(GPIO18), |
- | | 26(GPIO4), 27(GPIO16), | 31(GPIO19), 33(GPIO21), |
- | | 28(GPIO17), 29(GPIO5), | 34(GPIO3), 35(GPIO1), |
- | | 30(GPIO18), 31(GPIO19), | 36(GPIO22), 37(GPIO23), |
- | | 33(GPIO21), 35(GPIO1), | |
- | | 36(GPIO22), 37(GPIO23), | |
- +---------------+-------------------------+-------------------------+
- | Arduino M0 | D7 (NOT CHANGABLE) | D0-D6, D8-D13 |
- | Arduino Zero | | |
- +---------------+-------------------------+-------------------------+
- | Arduino Due | D0-D53 | D0-D53 |
- +---------------+-------------------------+-------------------------+
- | STM32 | PA0-PA15,PB0-PB15 | PA0-PA15,PB0-PB15 |
- | Black Pill | PC13-PC15 | PC13-PC15 |
- | BluePill | | |
- | Etc... | | |
- +---------------+-------------------------+-------------------------+
*/
#include "RBDdimmer.h"
//#define USE_SERIAL SerialUSB //Serial for boards whith USB serial port
#define USE_SERIAL Serial
#define outputPin 3
#define outputPin2 4
#define outputPin3 5
#define outputPin4 6
#define outputPin5 7
#define outputPin6 8
#define outputPin7 9
#define outputPin8 10
#define outputPin9 11
#define zerocross 2 // for boards with CHANGEBLE input pins
//dimmerLamp dimmer(outputPin, zerocross); //initialase port for dimmer for ESP8266, ESP32, Arduino due boards
dimmerLamp dimmer(outputPin); //initialase port for dimmer for MEGA, Leonardo, UNO, Arduino M0, Arduino Zero
dimmerLamp dimmer2(outputPin2);
dimmerLamp dimmer3(outputPin3);
dimmerLamp dimmer4(outputPin4);
dimmerLamp dimmer5(outputPin5);
dimmerLamp dimmer6(outputPin6);
dimmerLamp dimmer7(outputPin7);
dimmerLamp dimmer8(outputPin8);
dimmerLamp dimmer9(outputPin9);
int outVal = 0;
void setup() {
USE_SERIAL.begin(9600);
dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE)
dimmer2.begin(NORMAL_MODE, ON);
dimmer3.begin(NORMAL_MODE, ON);
dimmer4.begin(NORMAL_MODE, ON);
dimmer5.begin(NORMAL_MODE, ON);
dimmer6.begin(NORMAL_MODE, ON);
dimmer7.begin(NORMAL_MODE, ON);
dimmer8.begin(NORMAL_MODE, ON);
dimmer9.begin(NORMAL_MODE, ON);
USE_SERIAL.println("Dimmer Program is starting...");
USE_SERIAL.println("Set value");
}
void printSpace(int val)
{
if ((val / 100) == 0) USE_SERIAL.print(" ");
if ((val / 10) == 0) USE_SERIAL.print(" ");
}
void loop() {
dimmer.setPower(40); // setPower(0-100%);
dimmer2.setPower(50);
dimmer3.setPower(50);
dimmer4.setPower(1);
dimmer5.setPower(1);
dimmer6.setPower(1);
dimmer7.setPower(1);
dimmer8.setPower(1);
dimmer9.setPower(1);
}
Original Code:
#include "RBDdimmer.h"
//#define USE_SERIAL SerialUSB //Serial for boards whith USB serial port
#define USE_SERIAL Serial
#define outputPin 3
#define zerocross 2 // for boards with CHANGEBLE input pins
//dimmerLamp dimmer(outputPin, zerocross); //initialase port for dimmer for ESP8266, ESP32, Arduino due boards
dimmerLamp dimmer(outputPin);//initialase port for dimmer for MEGA, Leonardo, UNO, Arduino M0, Arduino Zero
int outVal = 0;
void setup() {
USE_SERIAL.begin(9600);
dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE)
USE_SERIAL.println("Dimmer Program is starting...");
USE_SERIAL.println("Set value");
}
void printSpace(int val)
{
if ((val / 100) == 0) USE_SERIAL.print(" ");
if ((val / 10) == 0) USE_SERIAL.print(" ");
}
void loop() {
int preVal = outVal;
if (USE_SERIAL.available())
{
int buf = USE_SERIAL.parseInt();
if (buf != 0) outVal = buf;
delay(200);
}
dimmer.setPower(outVal); // setPower(0-100%);
if (preVal != outVal)
{
USE_SERIAL.print("lampValue -> ");
printSpace(dimmer.getPower());
USE_SERIAL.print(outVal);
USE_SERIAL.println("%");
}
delay(50);
}