Step 11: The IR remote
I probably still need to explain how the IR remote works. You can always take a look at the code to see what keys do in each mode in more detail and also add new functions to keys.
The lamp has four modes at the moment. They can be activated by the four function buttons "FLASH", "STROBE", "FADE" and "SMOOTH".
this is the constant color mode. If you press any color button, all lamps will switch to this color. The up and down buttons (or brighter, darker) change the hue (the software uses HSV color scheme). Brightness and saturation cannot be changed. Feel free to add this functionality (I almost never use this mode).
I called this mode "vivid colors". It is similar to the constant color mode. Select a color and all lamps will show a color that is similar to the selected one. They all fade slowly in brightness, hue and saturation with the hue being kept close to the selected color. If you select white as the color ("W" key) the color is selected randomly and also changes randomly from time to time (between 20 and 150 seconds).
The rainbow mode. Lamps show a rainbow which slowly moves across. The color buttons do nothing in this mode. With the up and down buttons you can increase or decrease the total width of the rainbow, meaning the number of lamps it takes from red to blue. The default is six.
The program mode. Nothing moving here but you can program the color of each lamp and save it to any of the color buttons (is saved to eeprom, so they are kept in memory for many years but can be overwritten anytime).
To change the color of a lamp, push the red "R" button. The selected lamp (the master by default) will quickly fade through the colors to indicate you selected the hue change. Now use the up and down buttons (single clicks or long pressed) to select your hue.
With the green "G" button, you change the saturation. Pressing this button will be confirmed by quickly fading to white and back. Use the up and down buttons to change color saturation.
The blue "B" button changes brightness in the same way.
To select a different lamp, push the white "W" button. The up and down buttons now switch to the next lamp. The currently selected lamp will blink in white.
You can use the "ON" and "OFF" buttons to switch on and off a lamp. When switching a lamp off, its color is copied into a buffer. When switching it back on, the color from the buffer is written to that lamp. This can be used as a copy-paste function. Just switch to another lamp, press the on button and the color is pasted.
That's it. As mentioned before, there probably are still lots of bugs in the code.