RBDDimmer
The following library is used for work with dimmer, it gives ability to control large ammoun of dimmer. This lib uses with Leonardo, Mega, UNO, ESP8266, ESP32, Arduino M0, Arduino Zero, Arduino Due, STM32.
Install / Use
/learn @RobotDynOfficial/RBDDimmerREADME
<table style="border-collapse: separate;
border-spacing: 0;
padding: 5px;">
<tbody>
<tr style="background-color: lightblue">
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;"><b>Board</b></td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2"><b>INPUT Pin <br>Zero Cross</b></td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2"><b> OUTPUT Pin</b> </td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">Leonardo</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D7 (NOT CHANGABLE)</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D0-D6, D8-D13</td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">Mega</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D2 (NOT CHANGABLE)</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D0-D1, D3-D70</td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" >UNO<br>NANO</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D2 (NOT CHANGABLE)</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D0-D1, D3-D20</td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">ESP8266</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >D1(IO5)</li>
<li >D5(IO14)</li>
<li >D7(IO13)</li>
</ul>
</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >D2(IO4)</li>
<li >D6(IO12)</li>
<li >D8(IO15)</li>
</ul>
</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >D0(IO16)</li>
<li >D2(IO4)</li>
<li >D6(IO12)</li>
<li >D8(IO15)</li>
</ul>
</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >D1(IO5)</li>
<li >D5(IO14)</li>
<li >D7(IO13)</li>
</ul>
</td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">ESP32</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >4(GPI36)</li>
<li >5(GPI39)</li>
<li >8(GPO32)</li>
<li >10(GPI025)</li>
<li >12(GPIO27)</li>
<li >14(GPIO12)</li>
<li >21(GPIO7)</li>
<li >24(GPIO2)</li>
<li >26(GPIO4)</li>
<li >28(GPIO17)</li>
<li >30(GPIO18)</li>
<li >33(GPIO21)</li>
<li >36(GPIO22)</li>
</ul>
</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >6(GPI34)</li>
<li >7(GPI35)</li>
<li >9(GP033)</li>
<li >11(GPIO26)</li>
<li >13(GPIO14)</li>
<li >16(GPIO13)</li>
<li >23(GPIO15)</li>
<li >25(GPIO0)</li>
<li >27(GPIO16)</li>
<li >29(GPIO5)</li>
<li >31(GPIO19)</li>
<li >35(GPIO1)</li>
<li >37(GPIO23)</li>
</ul>
</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >8(GPO32)</li>
<li >10(GPIO25)</li>
<li >12(GPIO27)</li>
<li >14(GPIO12</li>
<li >23(GPIO15)</li>
<li >25(GPIO0)</li>
<li >27(GPIO16)</li>
<li >29(GPIO5)</li>
<li >31(GPIO19)</li>
<li >34(GPIO3)</li>
<li >36(GPIO22)</li>
</ul>
</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">
<ul style="list-style-type: none; margin-left: -30px;">
<li >9(GP033)</li>
<li >11(GPIO26)</li>
<li >13(GPIO14)</li>
<li >16(GPIO13)</li>
<li >24(GPIO2)</li>
<li >26(GPIO4)</li>
<li >28(GPIO17)</li>
<li >30(GPIO18)</li>
<li >33(GPIO21)</li>
<li >35(GPIO1)</li>
<li >37(GPIO23)</li>
</ul>
</td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;">Arduino M0 <br>Arduino Zero</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D7 (NOT CHANGABLE)</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D0-D6, D8-D13</td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;"> Arduino Due</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2"> D0-D53</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">D0-D53 </td>
</tr>
<tr>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;"> STM32 <br> Black Pill
<br> Blue Pill <br> Etc...</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2"> PA0-PA15, PB0-PB15
<br> PC13-PC15</td>
<td style="border: 1px solid #bbb; border-bottom: 1px solid #bbb; padding: 10px 15px 10px 15px;" colspan="2">PA0-PA15, PB0-PB15
<br> PC13-PC15</td>
</tr>
</tbody>
</table>
This library can simplify user code with following functions:
1. Function dimmerLamp - this function initializes the number of operating pin and is defined by the user
Example:
a.dimmerLamp dimmer(4); dimmer output DIM/PSM is initialized on the pin 4 for the bords WITHOUT changable ZERO-CROSS input pin (AVR, Arduino M0/Zero)
b.dimmerLamp dimmer(4, 2); dimmer output DIM/PSM is initialized on the pin 4 and zero-cross initialized on pin 2. Only for boards whith changable zero-cross(ESP32, ESP8266, Arduino Due)
2. Function begin port initialization, timer and external interrupt from zero-cross.
Example:
dimmer.begin(NORMAL_MODE, ON/OFF); port initialization, work mode choice, ON/OFF.
Parameter 1: dimmer working modes consist of two choices - NORMAL_MODE and TOGGLE_MODE
a. NORMAL_MODE to make dimmer work in defined value from 0 to 100 (%) (integer)
Example of this mode located in \RBDdimmer\examples\SimpleDimmer
b. TOGGLE_MODE smooth change of dimming value up or down in a defined range. This solutions implies change of dimming values by means of hardware timer, without using the cycle code.
Example of this mode located in \RBDdimmer\examples\SimpleToggleDimmer
Parameter 2: ON/OFF.
a. ON - turns timer ON, allows to use dimmer.
b. OFF - turns timer parameters OFF, prevents the use of dimmer.
3. Function setPower sets dimming value from 0 to 100%
Example: dimmer.setPower(90);
4. Function getPower to display current dimming value
Example: Serial.print(dimmer.getPower()); Result 0~100 int
5. Function setMode sets and changes the work mode (NORMAL_MODE and TOGGLE_MODE)
dimmer.setMode(NORMAL_MODE/TOGGLE_MODE)
6. Function getMode displays values of current work mode
Example: Serial.print(dimmer.getPower()); Result 0 (NORMAL_MODE) or 1 (TOGGLE_MODE)
7. Function setState sets dimming state ON/OFF
Example: dimmer.setState(ON); delay(100); dimmer.setState(OFF);
8. Function getState displays current state of dimmer
Serial.print(dimmer.getState()); Result 0 (OFF) or 1 (ON)
9. Function changeState changes dimmer state to the opposite one
Пример dimmer.setState(ON); delay(100); dimmer.changeState; delay(100);
10. Function toggleSettings smooth change of dimming value up or down in a defined range
Example located in \RBDdimmer\examples\SimpleToggleDimmer
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
