|
MycilaJSY 13.0.0
Arduino / ESP32 library for the JSY1031, JSY-MK-163, JSY-MK-193, JSY-MK-194, JSY-MK-227, JSY-MK-229, JSY-MK-333 families single-phase and three-phase AC bidirectional meters from Shenzhen Jiansiyan Technologies Co, Ltd.
|

Public Member Functions | |
| virtual void | begin ()=0 |
| virtual void | end ()=0 |
| virtual const char * | type () const =0 |
| void | setDutyCycleLimit (float limit) |
| Set the power duty cycle limit of the dimmer. The duty cycle will be clamped to this limit. | |
| void | setDutyCycleMin (float min) |
| Duty remapping (equivalent to Shelly Dimmer remapping feature). Useful to calibrate the dimmer when using for example a PWM signal to 0-10V analog convertor connected to a voltage regulator which is only working in a specific voltage range like 1-8V. | |
| void | setDutyCycleMax (float max) |
| Duty remapping (equivalent to Shelly Dimmer remapping feature). Useful to calibrate the dimmer when using for example a PWM signal to 0-10V analog convertor connected to a voltage regulator which is only working in a specific voltage range like 1-8V. | |
| float | getDutyCycleLimit () const |
| Get the power duty cycle limit of the dimmer. | |
| float | getDutyCycleMin () const |
| Get the remapped "0" of the dimmer duty cycle. | |
| float | getDutyCycleMax () const |
| Get the remapped "1" of the dimmer duty cycle. | |
| void | enablePowerLUT (bool enable, uint16_t semiPeriod=0) |
| Enable or disable the use of power LUT for dimmer curve The power LUT provides a non-linear dimming curve that is more aligned with human perception of brightness. If disabled, a linear dimming curve will be used. | |
| bool | isPowerLUTEnabled () const |
| Check if the power LUT is enabled. | |
| uint16_t | getPowerLUTSemiPeriod () const |
| Get the semi-period in us used for the power LUT calculations. If LUT is disabled, returns 0. | |
| bool | isEnabled () const |
| Check if the dimmer is enabled (if it was able to initialize correctly) | |
| bool | isOnline () const |
| Returns true if the dimmer is marked online. | |
| void | setOnline (bool online) |
| Set the online status of the dimmer. | |
| void | on () |
| Turn on the dimmer at full power. | |
| void | off () |
| Turn off the dimmer. | |
| bool | isOff () const |
| Check if the dimmer is off. | |
| bool | isOn () const |
| Check if the dimmer is on. | |
| bool | isOnAtFullPower () const |
| Check if the dimmer is on at full power. | |
| bool | setDutyCycle (float dutyCycle) |
| Set the power duty. | |
| float | getDutyCycle () const |
| Get the power duty cycle configured for the dimmer by teh user. | |
| float | getDutyCycleMapped () const |
| Get the remapped power duty cycle from the currently user set duty cycle. | |
| float | getDutyCycleFire () const |
| Get the real firing duty cycle applied to the dimmer in the range [0, 1]. | |
Protected Member Functions | |
| virtual bool | _apply ()=0 |
Static Protected Member Functions | |
| static uint16_t | _lookupFiringDelay (float dutyCycle, uint16_t semiPeriod) |
| static float | _contrain (float amt, float low, float high) |
Protected Attributes | |
| bool | _enabled = false |
| bool | _online = false |
| float | _dutyCycle = 0.0f |
| float | _dutyCycleFire = 0.0f |
| float | _dutyCycleLimit = 1.0f |
| float | _dutyCycleMin = 0.0f |
| float | _dutyCycleMax = 1.0f |
| bool | _powerLUTEnabled = false |
| uint16_t | _semiPeriod = 0 |
Definition at line 20 of file MycilaDimmer.h.
|
inlinevirtual |
Definition at line 22 of file MycilaDimmer.h.
|
inlinestaticprotected |
Definition at line 273 of file MycilaDimmer.h.
|
staticprotected |
Definition at line 39 of file MycilaDimmer.cpp.
|
pure virtual |
Implemented in Mycila::BurstFireDimmer, Mycila::DFRobotDimmer, Mycila::PWMDimmer, and Mycila::ZeroCrossDimmer.
|
inline |
Enable or disable the use of power LUT for dimmer curve The power LUT provides a non-linear dimming curve that is more aligned with human perception of brightness. If disabled, a linear dimming curve will be used.
| enable | : true to enable, false to disable |
| semiPeriod | : the semi-period of the grid frequency in us (10000 for 50Hz, 8333 for 60Hz). |
Definition at line 96 of file MycilaDimmer.h.
|
pure virtual |
Implemented in Mycila::BurstFireDimmer, Mycila::DFRobotDimmer, Mycila::PWMDimmer, and Mycila::ZeroCrossDimmer.
|
inline |
Get the power duty cycle configured for the dimmer by teh user.
Definition at line 217 of file MycilaDimmer.h.
|
inline |
Get the real firing duty cycle applied to the dimmer in the range [0, 1].
Definition at line 232 of file MycilaDimmer.h.
|
inline |
Get the power duty cycle limit of the dimmer.
Definition at line 68 of file MycilaDimmer.h.
|
inline |
Get the remapped power duty cycle from the currently user set duty cycle.
Definition at line 222 of file MycilaDimmer.h.
|
inline |
Get the remapped "1" of the dimmer duty cycle.
Definition at line 78 of file MycilaDimmer.h.
|
inline |
Get the remapped "0" of the dimmer duty cycle.
Definition at line 73 of file MycilaDimmer.h.
|
inline |
Get the semi-period in us used for the power LUT calculations. If LUT is disabled, returns 0.
Definition at line 123 of file MycilaDimmer.h.
|
inline |
Check if the dimmer is enabled (if it was able to initialize correctly)
Definition at line 132 of file MycilaDimmer.h.
|
inline |
Check if the dimmer is off.
Definition at line 171 of file MycilaDimmer.h.
|
inline |
Check if the dimmer is on.
Definition at line 176 of file MycilaDimmer.h.
|
inline |
Check if the dimmer is on at full power.
Definition at line 181 of file MycilaDimmer.h.
|
inline |
Returns true if the dimmer is marked online.
Definition at line 137 of file MycilaDimmer.h.
|
inline |
Check if the power LUT is enabled.
Definition at line 118 of file MycilaDimmer.h.
|
inline |
Turn off the dimmer.
Definition at line 166 of file MycilaDimmer.h.
|
inline |
Turn on the dimmer at full power.
Definition at line 161 of file MycilaDimmer.h.
|
inline |
Set the power duty.
| dutyCycle | the power duty cycle in the range [0.0, 1.0] |
Definition at line 188 of file MycilaDimmer.h.
|
inline |
Set the power duty cycle limit of the dimmer. The duty cycle will be clamped to this limit.
| limit | the power duty cycle limit in the range [0.0, 1.0] |
Definition at line 37 of file MycilaDimmer.h.
|
inline |
Duty remapping (equivalent to Shelly Dimmer remapping feature). Useful to calibrate the dimmer when using for example a PWM signal to 0-10V analog convertor connected to a voltage regulator which is only working in a specific voltage range like 1-8V.
| max | Set the new "1" value for the power duty cycle. The duty cycle in the range [0.0, 1.0] will be remapped to [min, max]. |
Definition at line 60 of file MycilaDimmer.h.
|
inline |
Duty remapping (equivalent to Shelly Dimmer remapping feature). Useful to calibrate the dimmer when using for example a PWM signal to 0-10V analog convertor connected to a voltage regulator which is only working in a specific voltage range like 1-8V.
| min | Set the new "0" value for the power duty cycle. The duty cycle in the range [0.0, 1.0] will be remapped to [min, max]. |
Definition at line 49 of file MycilaDimmer.h.
|
inline |
Set the online status of the dimmer.
This flag can be used to temporarily disable the dimmer when not connected to the grid
Definition at line 143 of file MycilaDimmer.h.
|
protected |
Definition at line 260 of file MycilaDimmer.h.
|
protected |
Definition at line 261 of file MycilaDimmer.h.
|
protected |
Definition at line 262 of file MycilaDimmer.h.
|
protected |
Definition at line 264 of file MycilaDimmer.h.
|
protected |
Definition at line 263 of file MycilaDimmer.h.
|
protected |
Definition at line 257 of file MycilaDimmer.h.
|
protected |
Definition at line 258 of file MycilaDimmer.h.
|
protected |
Definition at line 266 of file MycilaDimmer.h.
|
protected |
Definition at line 267 of file MycilaDimmer.h.