GithubHelp home page GithubHelp logo

plinioseniore / neopixelbus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from makuna/neopixelbus

0.0 2.0 0.0 115 KB

Adafruit enhanced NeoPixel support library

License: GNU General Public License v3.0

C++ 92.71% C 7.29%

neopixelbus's Introduction

NeoPixelBus

Donate

Arduino NeoPixel library

ESP8266 CUSTOMERS PLEASE READ: While this branch does work with the esp8266, due to the latest SDK releases it will not function reliably when WiFi is being used. Therefore I suggest you use the UartDriven branch, which includes a solution that will work with WiFi on. Further it contains enhancements that just can't be supported on AVR platform. Including HslColor object and an enhanced animator manager.

Gitter

Clone this into your Arduino\Library folder

This library is a modification of the Adafruit NeoPixel library. The Api is similiar, but it removes the overal brightness feature and adds animation support.

Installing This Library

Create a directory in your Arduino\Library folder named "NeoPixelBus" Clone (Git) this project into that folder.
It should now show up in the import list.

Samples

NeoPixelTest

this is simple example that sets four neopixels to red, green, blue, and then white in order; and then flashes them. If the first pixel is green and the second is red, you need to pass the NEO_RGB flag into the NeoPixelBus constructor.

NeoPixelFun

this is a more complex example, that includes code for three effects, and demonstrates animations.

API Documentation

RgbColor object

This represents a color and exposes useful methods to manipulate colors.

RgbColor(uint8_t r, uint8_t g, uint8_t b)

instantiates a RgbColor object with the given r, g, b values.

RgbColor(uint8_t brightness)

instantiates a RgbColor object with the given brightness. 0 is black, 128 is grey, 255 is white.

uint8_t CalculateBrightness()

returns the general brightness of the pixe, averaging color.

void Darken(uint8_t delta)

this will darken the color by the given amount

void Lighten(uint8_t delta)

this will lighten the color by the given amount

static RgbColor LinearBlend(RgbColor left, RgbColor right, uint8_t progress)

this will return a color that is a blend between the given colors. The amount to blend is given by the value of progress, 0 will return the left value, 255 will return the right value, 128 will return the value between them.

NOTE: This is not an accurate "visible light" color blend but is fast and in most cases good enough.

NeoPixelBus object

This represents a single NeoPixel Bus that is connected by a single pin. Please see Adafruit's documentation for details, but the differences are documented below.

NeoPixelBus(uint16_t n, uint8_t p = 6, uint8_t t = NEO_GRB | NEO_KHZ800);

instantiates a NewoPixelBus object, with n number of pixels on the bus, over the p pin, using the defined NeoPixel type. There are some NeoPixels that address the color values differently, so if you set the green color but it displays as red, use the NEO_RGB type flag.

NeoPixelBus strip = NeoPixelBus(4, 8, NEO_RGB | NEO_KHZ800);

It is rare, but some older NeoPixels require a slower communications speed, to include this support you must include the following define before the NeoPixelBus library include and then include the NEO_KHZ400 type flag to enable this slower speed.

#define INCLUDE_NEO_KHZ400_SUPPORT 
#include <NeoPixelBus.h>

NeoPixelBus strip = NeoPixelBus(4, 8, NEO_RGB | NEO_KHZ400);

void SetPixelColor(uint16_t n, RgbColor c)

This allows setting a pixel on the bus to a color as defined by a color object. If an animation is actively running on a pixel, it will be stopped.

RgbColor GetPixelColor(uint16_t n) const

this allows retrieving the current pixel color

void LinearFadePixelColor(uint16_t time, uint16_t n, RgbColor color)

this will setup an animation for a pixel to linear fade between the current color and the given color over the time given. The time is in milliseconds.

void StartAnimating()

this method will initialize the animation state. This should be called only if there are no active animations and new animations are started.

void UpdateAnimations()

this method will allow the animations to be processed and update the pixel color state.

NOTE: Show must still be called to push the color state to the physical NeoPixels.

bool IsAnimating() const

this method will return the current animation state. It will return false if there are no active animations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.