root / Ports / examples / dimmer_demo / dimmer_demo.pde
History | View | Annotate | Download (1.7 KB)
| 1 | //>>> The latest version of this code can be found at https://github.com/jcw/ !! |
|---|---|
| 2 | |
| 3 | // Demo for the Dimmer plug |
| 4 | // 2010-03-18 <jcw@equi4.com> http://opensource.org/licenses/mit-license.php |
| 5 | // $Id: dimmer_demo.pde 7763 2011-12-11 01:28:16Z jcw $ |
| 6 | |
| 7 | #include <Ports.h> |
| 8 | #include <RF12.h> // needed to avoid a linker error :( |
| 9 | |
| 10 | PortI2C myBus (1); |
| 11 | DimmerPlug dimmer (myBus, 0x40); |
| 12 | |
| 13 | int level = 0x1FFF; |
| 14 | |
| 15 | void setup () {
|
| 16 | dimmer.begin(); |
| 17 | // set each channel to max brightness |
| 18 | dimmer.setMulti(dimmer.PWM0, 255, 255, 255, 255, |
| 19 | 255, 255, 255, 255, |
| 20 | 255, 255, 255, 255, |
| 21 | 255, 255, 255, 255, -1); |
| 22 | // set up for group blinking |
| 23 | dimmer.setReg(dimmer.MODE2, 0x34); |
| 24 | // blink rate: 0 = very fast, 255 = 10s |
| 25 | dimmer.setReg(dimmer.GRPFREQ, 50); |
| 26 | // blink duty cycle: 0 = full on, 255 = full off |
| 27 | dimmer.setReg(dimmer.GRPPWM, 240); |
| 28 | // let the chip do its thing for a while |
| 29 | delay(10000); |
| 30 | // set up for group dimming |
| 31 | dimmer.setReg(dimmer.MODE2, 0x14); |
| 32 | // gradually decrease brightness to minimum |
| 33 | for (byte i = 100; i < 255; ++i) {
|
| 34 | dimmer.setReg(dimmer.GRPPWM, i); |
| 35 | delay(100); |
| 36 | } |
| 37 | // the rest of the code dims individual channels |
| 38 | delay(2000); |
| 39 | } |
| 40 | |
| 41 | void loop () {
|
| 42 | byte brightness = ++level; |
| 43 | if (level & 0x100) |
| 44 | brightness = ~ brightness; |
| 45 | byte r = level & 0x0200 ? brightness : 0; |
| 46 | byte g = level & 0x0400 ? brightness : 0; |
| 47 | byte b = level & 0x0800 ? brightness : 0; |
| 48 | byte w = level & 0x1000 ? brightness : 0; |
| 49 | // set all 16 registers in one sweep |
| 50 | dimmer.setMulti(dimmer.PWM0, w, b, g, r, |
| 51 | w, b, g, r, |
| 52 | w, b, g, r, |
| 53 | w, b, g, r, -1); |
| 54 | } |