![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
publish for RS
Dependencies: BLE_API mbed nRF51822
Fork of rbChromaOffice by
patterns.cpp@9:02ac9f6bb320, 2016-12-16 (annotated)
- Committer:
- MarkSPA
- Date:
- Fri Dec 16 00:13:52 2016 +0000
- Revision:
- 9:02ac9f6bb320
- Parent:
- 8:e275405a431d
- Child:
- 11:45f76d2b5b8c
Minor changes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MarkSPA | 4:c8515fbd2e44 | 1 | #include "mbed.h" // remove line if not using mbed |
MarkSPA | 4:c8515fbd2e44 | 2 | |
MarkSPA | 4:c8515fbd2e44 | 3 | #include <stdbool.h> |
MarkSPA | 4:c8515fbd2e44 | 4 | #include <stdint.h> |
MarkSPA | 4:c8515fbd2e44 | 5 | #include <stdlib.h> |
MarkSPA | 4:c8515fbd2e44 | 6 | #include "nrf_delay.h" |
MarkSPA | 4:c8515fbd2e44 | 7 | #include "nrf_gpio.h" |
MarkSPA | 4:c8515fbd2e44 | 8 | #include "neopixel.h" |
MarkSPA | 4:c8515fbd2e44 | 9 | |
MarkSPA | 4:c8515fbd2e44 | 10 | // Input a value 0 to 255 to get a color value. |
MarkSPA | 4:c8515fbd2e44 | 11 | // The colours are a transition r - g - b - back to r. |
MarkSPA | 4:c8515fbd2e44 | 12 | uint32_t Wheel(uint8_t WheelPos, neopixel_strip_t m_strip, uint8_t led_to_enable) { |
MarkSPA | 4:c8515fbd2e44 | 13 | WheelPos = 255 - WheelPos; |
MarkSPA | 4:c8515fbd2e44 | 14 | if(WheelPos < 85) { |
MarkSPA | 4:c8515fbd2e44 | 15 | return neopixel_set_color(&m_strip, led_to_enable, 255 - WheelPos * 3, 0, WheelPos * 3); |
MarkSPA | 4:c8515fbd2e44 | 16 | } |
MarkSPA | 4:c8515fbd2e44 | 17 | if(WheelPos < 170) { |
MarkSPA | 4:c8515fbd2e44 | 18 | WheelPos -= 85; |
MarkSPA | 4:c8515fbd2e44 | 19 | return neopixel_set_color(&m_strip, 0, led_to_enable, WheelPos * 3, 255 - WheelPos * 3); |
MarkSPA | 4:c8515fbd2e44 | 20 | } |
MarkSPA | 4:c8515fbd2e44 | 21 | WheelPos -= 170; |
MarkSPA | 4:c8515fbd2e44 | 22 | return neopixel_set_color(&m_strip, led_to_enable, WheelPos * 3, 255 - WheelPos * 3, 0); |
MarkSPA | 4:c8515fbd2e44 | 23 | } |
MarkSPA | 4:c8515fbd2e44 | 24 | |
MarkSPA | 4:c8515fbd2e44 | 25 | void rainbowCycle(int delay, uint8_t numLEDs, neopixel_strip_t m_strip) { |
MarkSPA | 7:0db51a3107fc | 26 | uint16_t i, j; |
MarkSPA | 7:0db51a3107fc | 27 | uint32_t ret; |
MarkSPA | 4:c8515fbd2e44 | 28 | |
MarkSPA | 7:0db51a3107fc | 29 | for(j=0; j<256; j++) { |
MarkSPA | 7:0db51a3107fc | 30 | for(i=0; i<numLEDs; i++) { |
MarkSPA | 7:0db51a3107fc | 31 | //neopixel_set_color(&m_strip, i, Wheel((i+j) & 255)); |
MarkSPA | 7:0db51a3107fc | 32 | ret = Wheel((i+j) & 255, m_strip, i); |
MarkSPA | 4:c8515fbd2e44 | 33 | } |
MarkSPA | 4:c8515fbd2e44 | 34 | neopixel_show(&m_strip); |
MarkSPA | 4:c8515fbd2e44 | 35 | wait_ms(delay); |
MarkSPA | 4:c8515fbd2e44 | 36 | } |
MarkSPA | 4:c8515fbd2e44 | 37 | } |
MarkSPA | 4:c8515fbd2e44 | 38 | |
MarkSPA | 4:c8515fbd2e44 | 39 | void candyChase(int delay, uint8_t numLEDs, neopixel_strip_t m_strip) { |
MarkSPA | 6:074f5ec7428c | 40 | |
MarkSPA | 6:074f5ec7428c | 41 | for (int i=0; i < numLEDs; i++) |
MarkSPA | 6:074f5ec7428c | 42 | neopixel_set_color(&m_strip, i, 255,255,255); //turn every pixel white |
MarkSPA | 6:074f5ec7428c | 43 | |
MarkSPA | 6:074f5ec7428c | 44 | for (int i=0; i < numLEDs-1; i++) { |
MarkSPA | 6:074f5ec7428c | 45 | neopixel_set_color(&m_strip, i, 255,255,255); |
MarkSPA | 6:074f5ec7428c | 46 | neopixel_set_color(&m_strip, i+1, 255,0,0); //turn on a red pixel and move it |
MarkSPA | 6:074f5ec7428c | 47 | neopixel_show(&m_strip); |
MarkSPA | 6:074f5ec7428c | 48 | wait_ms(delay); |
MarkSPA | 4:c8515fbd2e44 | 49 | } |
MarkSPA | 6:074f5ec7428c | 50 | wait_ms(delay); |
MarkSPA | 6:074f5ec7428c | 51 | |
MarkSPA | 6:074f5ec7428c | 52 | for (int i=0; i < numLEDs; i++) |
MarkSPA | 6:074f5ec7428c | 53 | neopixel_set_color(&m_strip, i, 255,0,0); //turn every pixel red |
MarkSPA | 6:074f5ec7428c | 54 | |
MarkSPA | 6:074f5ec7428c | 55 | for (int i=0; i < numLEDs-1; i++) { |
MarkSPA | 6:074f5ec7428c | 56 | neopixel_set_color(&m_strip, i, 255,0,0); |
MarkSPA | 6:074f5ec7428c | 57 | neopixel_set_color(&m_strip, i+1, 255,255,255); //turn on a white pixel and move it |
MarkSPA | 6:074f5ec7428c | 58 | neopixel_show(&m_strip); |
MarkSPA | 6:074f5ec7428c | 59 | wait_ms(delay); |
MarkSPA | 6:074f5ec7428c | 60 | } |
MarkSPA | 4:c8515fbd2e44 | 61 | } |
MarkSPA | 4:c8515fbd2e44 | 62 | |
MarkSPA | 4:c8515fbd2e44 | 63 | void snowflakes(int delay, uint8_t numLEDs, neopixel_strip_t m_strip) { |
MarkSPA | 4:c8515fbd2e44 | 64 | |
MarkSPA | 6:074f5ec7428c | 65 | for (int i=0; i < numLEDs; i++) |
MarkSPA | 6:074f5ec7428c | 66 | neopixel_set_color(&m_strip, i, 0,0,235); //turn every pixel blue |
MarkSPA | 6:074f5ec7428c | 67 | |
MarkSPA | 6:074f5ec7428c | 68 | for (int i=0; i < numLEDs-1; i++) { |
MarkSPA | 6:074f5ec7428c | 69 | neopixel_set_color(&m_strip, i, 0,0,235); |
MarkSPA | 6:074f5ec7428c | 70 | neopixel_set_color(&m_strip, i+1, 255,255,255); //turn on a white pixel and move it |
MarkSPA | 4:c8515fbd2e44 | 71 | neopixel_show(&m_strip); |
MarkSPA | 6:074f5ec7428c | 72 | wait_ms(delay); |
MarkSPA | 4:c8515fbd2e44 | 73 | } |
MarkSPA | 4:c8515fbd2e44 | 74 | } |
MarkSPA | 4:c8515fbd2e44 | 75 | |
MarkSPA | 7:0db51a3107fc | 76 | void collegiate(int delay, uint8_t numLEDs, neopixel_strip_t m_strip) { |
MarkSPA | 7:0db51a3107fc | 77 | |
MarkSPA | 7:0db51a3107fc | 78 | for (int i=0; i < numLEDs; i++) |
MarkSPA | 7:0db51a3107fc | 79 | neopixel_set_color(&m_strip, i, 224,193,36); //turn every pixel gold |
MarkSPA | 7:0db51a3107fc | 80 | |
MarkSPA | 7:0db51a3107fc | 81 | for (int i=0; i < numLEDs-1; i++) { |
MarkSPA | 7:0db51a3107fc | 82 | neopixel_set_color(&m_strip, i, 224,193,36); |
MarkSPA | 7:0db51a3107fc | 83 | neopixel_set_color(&m_strip, i+1, 0,255,0); //turn on a green pixel and move it |
MarkSPA | 7:0db51a3107fc | 84 | neopixel_show(&m_strip); |
MarkSPA | 7:0db51a3107fc | 85 | wait_ms(delay); |
MarkSPA | 7:0db51a3107fc | 86 | } |
MarkSPA | 7:0db51a3107fc | 87 | wait_ms(delay); |
MarkSPA | 7:0db51a3107fc | 88 | |
MarkSPA | 7:0db51a3107fc | 89 | for (int i=0; i < numLEDs; i++) |
MarkSPA | 7:0db51a3107fc | 90 | neopixel_set_color(&m_strip, i, 0,255,0); //turn every pixel green |
MarkSPA | 7:0db51a3107fc | 91 | |
MarkSPA | 7:0db51a3107fc | 92 | for (int i=0; i < numLEDs-1; i++) { |
MarkSPA | 7:0db51a3107fc | 93 | neopixel_set_color(&m_strip, i, 0,255,0); |
MarkSPA | 7:0db51a3107fc | 94 | neopixel_set_color(&m_strip, i+1, 224,193,36); //turn on a gold pixel and move it |
MarkSPA | 7:0db51a3107fc | 95 | neopixel_show(&m_strip); |
MarkSPA | 7:0db51a3107fc | 96 | wait_ms(delay); |
MarkSPA | 7:0db51a3107fc | 97 | } |
MarkSPA | 7:0db51a3107fc | 98 | } |
MarkSPA | 7:0db51a3107fc | 99 | |
MarkSPA | 4:c8515fbd2e44 | 100 | void iceflakes(int delay, uint8_t numLEDs, neopixel_strip_t m_strip) { |
MarkSPA | 9:02ac9f6bb320 | 101 | uint8_t led; |
MarkSPA | 6:074f5ec7428c | 102 | for (int i=0; i < numLEDs; i++) |
MarkSPA | 6:074f5ec7428c | 103 | neopixel_set_color(&m_strip, i, 235,235,235); //turn every pixel white |
MarkSPA | 6:074f5ec7428c | 104 | |
MarkSPA | 9:02ac9f6bb320 | 105 | led = rand()%numLEDs; |
MarkSPA | 9:02ac9f6bb320 | 106 | neopixel_set_color(&m_strip, led, 0, 0, 235); // set random blue |
MarkSPA | 6:074f5ec7428c | 107 | neopixel_show(&m_strip); |
MarkSPA | 9:02ac9f6bb320 | 108 | wait_ms(delay); |
MarkSPA | 6:074f5ec7428c | 109 | } |
MarkSPA | 5:1f6311e0fc14 | 110 | |
MarkSPA | 5:1f6311e0fc14 | 111 | void xmas(int delay, uint8_t numLEDs, neopixel_strip_t m_strip) { |
MarkSPA | 5:1f6311e0fc14 | 112 | //All green |
MarkSPA | 5:1f6311e0fc14 | 113 | for (int j=0; j<numLEDs; j++) |
MarkSPA | 5:1f6311e0fc14 | 114 | neopixel_set_color(&m_strip, j, 0,255,0); |
MarkSPA | 5:1f6311e0fc14 | 115 | neopixel_show(&m_strip); |
MarkSPA | 7:0db51a3107fc | 116 | wait_ms(1000); |
MarkSPA | 5:1f6311e0fc14 | 117 | //All red |
MarkSPA | 5:1f6311e0fc14 | 118 | for (int j=0; j<numLEDs; j++) |
MarkSPA | 5:1f6311e0fc14 | 119 | neopixel_set_color(&m_strip, j, 255,0,0); |
MarkSPA | 5:1f6311e0fc14 | 120 | neopixel_show(&m_strip); |
MarkSPA | 7:0db51a3107fc | 121 | wait_ms(1000); |
MarkSPA | 5:1f6311e0fc14 | 122 | //Green with a red mover |
MarkSPA | 5:1f6311e0fc14 | 123 | for (int j=0; j<numLEDs; j++) |
MarkSPA | 5:1f6311e0fc14 | 124 | neopixel_set_color(&m_strip, j, 0,255,0); |
MarkSPA | 5:1f6311e0fc14 | 125 | neopixel_show(&m_strip); |
MarkSPA | 6:074f5ec7428c | 126 | wait_ms(500); |
MarkSPA | 5:1f6311e0fc14 | 127 | for (int j=0; j<numLEDs; j++) |
MarkSPA | 5:1f6311e0fc14 | 128 | { |
MarkSPA | 5:1f6311e0fc14 | 129 | neopixel_set_color(&m_strip, j, 255,0,0); |
MarkSPA | 5:1f6311e0fc14 | 130 | neopixel_show(&m_strip); |
MarkSPA | 5:1f6311e0fc14 | 131 | wait_ms(delay); |
MarkSPA | 5:1f6311e0fc14 | 132 | } |
MarkSPA | 5:1f6311e0fc14 | 133 | //Red with a green mover |
MarkSPA | 5:1f6311e0fc14 | 134 | for (int j=0; j<numLEDs; j++) |
MarkSPA | 5:1f6311e0fc14 | 135 | neopixel_set_color(&m_strip, j, 255,0,0); |
MarkSPA | 5:1f6311e0fc14 | 136 | neopixel_show(&m_strip); |
MarkSPA | 5:1f6311e0fc14 | 137 | wait_ms(delay); |
MarkSPA | 5:1f6311e0fc14 | 138 | for (int j=0; j<numLEDs; j++) |
MarkSPA | 5:1f6311e0fc14 | 139 | { |
MarkSPA | 5:1f6311e0fc14 | 140 | neopixel_set_color(&m_strip, j, 0,255,0); |
MarkSPA | 5:1f6311e0fc14 | 141 | neopixel_show(&m_strip); |
MarkSPA | 5:1f6311e0fc14 | 142 | wait_ms(delay); |
MarkSPA | 5:1f6311e0fc14 | 143 | } |
MarkSPA | 8:e275405a431d | 144 | } |
MarkSPA | 8:e275405a431d | 145 | |
MarkSPA | 8:e275405a431d | 146 | void irondude(int delay, uint8_t numLEDs, neopixel_strip_t m_strip) { |
MarkSPA | 8:e275405a431d | 147 | |
MarkSPA | 8:e275405a431d | 148 | for (int i=0; i < numLEDs; i++) |
MarkSPA | 8:e275405a431d | 149 | neopixel_set_color(&m_strip, i, 255,255,255); //turn every pixel white |
MarkSPA | 8:e275405a431d | 150 | |
MarkSPA | 8:e275405a431d | 151 | for (int i=0; i < numLEDs; i++) { |
MarkSPA | 8:e275405a431d | 152 | neopixel_set_color(&m_strip, i, 255,0,0); //change whites to reds |
MarkSPA | 8:e275405a431d | 153 | neopixel_show(&m_strip); |
MarkSPA | 8:e275405a431d | 154 | wait_ms(delay); |
MarkSPA | 8:e275405a431d | 155 | } |
MarkSPA | 8:e275405a431d | 156 | wait_ms(delay); |
MarkSPA | 8:e275405a431d | 157 | |
MarkSPA | 8:e275405a431d | 158 | for (int i=0; i <= numLEDs; i++) { |
MarkSPA | 8:e275405a431d | 159 | neopixel_set_color(&m_strip, numLEDs - i, 255,255,255); //change reds to white, in reverse |
MarkSPA | 8:e275405a431d | 160 | neopixel_show(&m_strip); |
MarkSPA | 8:e275405a431d | 161 | wait_ms(delay); |
MarkSPA | 8:e275405a431d | 162 | } |
MarkSPA | 4:c8515fbd2e44 | 163 | } |