Library to control NeoPixel strings of RGB leds
Dependents: NeoPixelI2cSlave NeoPixelI2cSlave
neopixel_string.cpp@3:7d32f46a38d3, 2016-04-15 (annotated)
- Committer:
- dwini
- Date:
- Fri Apr 15 14:38:13 2016 +0000
- Revision:
- 3:7d32f46a38d3
- Parent:
- 2:bb9ebad05691
Been to long since i coded this.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dwini | 0:66a5d46a740f | 1 | #include "neopixel_string.h" |
dwini | 0:66a5d46a740f | 2 | |
dwini | 0:66a5d46a740f | 3 | NeoPixelString::NeoPixelString(PinName spi_pin, unsigned int length) : PixelArray(spi_pin) { |
dwini | 0:66a5d46a740f | 4 | this->length = length; |
dwini | 0:66a5d46a740f | 5 | pixels = new neopixel::Pixel[length]; // Actual buffer of colors |
dwini | 0:66a5d46a740f | 6 | |
dwini | 0:66a5d46a740f | 7 | // Clear all |
dwini | 0:66a5d46a740f | 8 | update(Colors::Black); |
dwini | 0:66a5d46a740f | 9 | } |
dwini | 0:66a5d46a740f | 10 | |
dwini | 2:bb9ebad05691 | 11 | unsigned int NeoPixelString::getLength(void) { |
dwini | 2:bb9ebad05691 | 12 | return this->length; |
dwini | 2:bb9ebad05691 | 13 | } |
dwini | 2:bb9ebad05691 | 14 | |
dwini | 2:bb9ebad05691 | 15 | void NeoPixelString::update(void) { |
dwini | 2:bb9ebad05691 | 16 | PixelArray::update(pixels, length); |
dwini | 2:bb9ebad05691 | 17 | } |
dwini | 2:bb9ebad05691 | 18 | |
dwini | 0:66a5d46a740f | 19 | void NeoPixelString::update(neopixel::Pixel singlecolor) { |
dwini | 0:66a5d46a740f | 20 | for (unsigned int i = 0; i < length; i++) { |
dwini | 0:66a5d46a740f | 21 | pixels[i] = singlecolor; |
dwini | 0:66a5d46a740f | 22 | } |
dwini | 2:bb9ebad05691 | 23 | update(); |
dwini | 2:bb9ebad05691 | 24 | } |
dwini | 2:bb9ebad05691 | 25 | |
dwini | 2:bb9ebad05691 | 26 | neopixel::Pixel NeoPixelString::getPixel(unsigned int i) { |
dwini | 2:bb9ebad05691 | 27 | if (i < this->length) { |
dwini | 2:bb9ebad05691 | 28 | return pixels[i]; |
dwini | 2:bb9ebad05691 | 29 | } |
dwini | 2:bb9ebad05691 | 30 | } |
dwini | 2:bb9ebad05691 | 31 | |
dwini | 2:bb9ebad05691 | 32 | void NeoPixelString::setPixel(unsigned i, neopixel::Pixel pixel) { |
dwini | 2:bb9ebad05691 | 33 | if (i < this->length) { |
dwini | 2:bb9ebad05691 | 34 | pixels[i] = pixel; |
dwini | 2:bb9ebad05691 | 35 | } |
dwini | 0:66a5d46a740f | 36 | } |
dwini | 0:66a5d46a740f | 37 | |
dwini | 0:66a5d46a740f | 38 | void NeoPixelString::diagnose(void) { |
dwini | 0:66a5d46a740f | 39 | update(Colors::Black); |
dwini | 0:66a5d46a740f | 40 | wait(1); |
dwini | 0:66a5d46a740f | 41 | for (int i = 0; i < 5; i++) { |
dwini | 0:66a5d46a740f | 42 | update(ColorAdjuster::intensity(Colors::Red, 5)); |
dwini | 0:66a5d46a740f | 43 | wait(0.5); |
dwini | 0:66a5d46a740f | 44 | update(ColorAdjuster::intensity(Colors::Green, 5)); |
dwini | 0:66a5d46a740f | 45 | wait(0.5); |
dwini | 0:66a5d46a740f | 46 | update(ColorAdjuster::intensity(Colors::Blue, 5)); |
dwini | 0:66a5d46a740f | 47 | wait(0.5); |
dwini | 0:66a5d46a740f | 48 | } |
dwini | 0:66a5d46a740f | 49 | |
dwini | 0:66a5d46a740f | 50 | update(Colors::Black); |
dwini | 0:66a5d46a740f | 51 | for (unsigned int i = 0; i < length; i++) { |
dwini | 0:66a5d46a740f | 52 | pixels[i] = ColorAdjuster::intensity(Colors::White, 5); |
dwini | 0:66a5d46a740f | 53 | PixelArray::update(pixels, length); |
dwini | 0:66a5d46a740f | 54 | wait(0.1); |
dwini | 0:66a5d46a740f | 55 | } |
dwini | 0:66a5d46a740f | 56 | } |