pololu-led-strip-arduino, 来自Pololu的可以寻址 RGB LED条的Arduino库

分享于 

13分钟阅读

GitHub

  繁體 雙語
Arduino library for addressable RGB LED strips from Pololu
  • 源代码名称:pololu-led-strip-arduino
  • 源代码网址:http://www.github.com/pololu/pololu-led-strip-arduino
  • pololu-led-strip-arduino源代码文档
  • pololu-led-strip-arduino源代码下载
  • Git URL:
    git://www.github.com/pololu/pololu-led-strip-arduino.git
    Git Clone代码到本地:
    git clone http://www.github.com/pololu/pololu-led-strip-arduino
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/pololu/pololu-led-strip-arduino
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    从Pololu中获取可以寻址 RGB LED条的库

    版本:4.2.0
    发布日期:2017-03-20
    Build Status
    www.pololu.com

    Image

    摘要

    这是一个用于Arduino的库,用于从Pololu控制这些可以寻址的RGB LED产品:

    这里库针对SK6812和WS2812B进行了优化,因此它以green-red-blue顺序传输颜色。

    如果你有 WS2811 LED或者高速 TM1804 LED条,请注意它的红色和绿色通道相对于SK6812和WS2812B交换。 你可能希望在库中使用 ,这并不要求你在代码中交换红和绿。

    这里版本的库不支持较旧的低速 TM1804 LED条。 如果你想控制这些,建议使用版本 1.2.0,它运行较慢,但可以与任何低速的TM1804 LED条,高速TM1804条,WS2812B条,条或者 WS2811 LED。

    这个库允许完全控制任意数量LED带的任意数量的LED条的颜色。 每个LED可以单独控制,LED条可以连接在一起。

    支持平台

    这个库和示例设计用于with版本 1.0和 1.5,并且可以能不会使用早期版本。

    库目前支持基于 ATmega168.ATmega328P。ATmega32U4或者ATmega2560的任何板,它的运行在 8 MHz。16 MHz或者 20 MHz。 this star star U4 Arduino Uno older older older Duemilanovae older Baby Baby Baby Baby Baby Baby Baby Baby Baby Baby Micro Micro Micro Micro Mega Mega Mega Mega Mega Mega Mega。 并不是所有Arduino上的引脚都支持( 请参见下面)。

    这个库还支持Due到期的,这是基于。

    启动

    硬件硬件

    可以寻址的RGB LED条可以在pololu网站上使用上链接购买。

    带连接器的LED输入有两个应该连接到Arduino的引脚。 带线的导线需要连接到它的中一个地址,并且带输入线的LED信号需要连接到它的中一个 I/O。 我们的示例草图假定信号线连接到插针 12. 这些连接可以使用两个雄性保费跳线导线,并将母端插入LED带。

    你还需要使用一个电源连接器将合适的电源连接到LED条。 电源必须处于正确的电压,并提供足够的电流以满足LED的要求。

    软件

    如果你使用的是版本 1.6.2或者更新版本的 Arduino软件( IDE ) 插件,你可以使用库管理器来安装这里库:

    • 在 Arduino IDE中,打开"略图"菜单,选择"包含库",然后单击"管理库。"。
    • 搜索"pololuledstrip"。
    • 单击列表中的PololuLedStrip条目。
    • 单击"安装"。

    如果无法正常工作,你可以手动安装库:

    • 从GitHub下载最新版本的发布文件,然后解压。
    • 将文件夹"pololu-led-strip-arduino-xxxx"重命名为"pololuledstrip"。
    • 将"pololuledstrip"文件夹拖到你的Arduino目录内的"程序库"目录中。 你可以通过打开"文件"菜单并在 Arduino IDE中选择"首选项"来查看你的绘图。 如果该位置中还没有"程序库"文件夹,则应将该文件夹设为。
    • 安装库后,重新启动 Arduino IDE。

    示例

    有几个示例草图可用来演示如何使用库。 你可以通过打开"文件"菜单,选择"范例",然后选择"pololuledstrip"来从 Arduino IDE访问它们。 如果无法找到这些示例,库可能安装不正确,你应该重新尝试上面的安装说明。

    LedStripGradient

    这里示例代码草图使用移动渐变 Pattern 对LED条进行照明。 你可以通过选择 File-> Examples-> PololuLedStrip-> LedStripGradient来打开这个示例。 单击"上载"按钮将它的加载到你的母板上。

    LedStripRainbow

    这个例子就像 LedStripGradient,但是制作了一个彩虹 Pattern。 你可以通过选择 File-> Examples-> PololuLedStrip-> LedStripRainbow来打开这个示例。 单击"上载"按钮将它的加载到你的母板上。

    LedStripColorTester

    这里示例代码草图允许你在串行监视器中键入颜色,并在LED条上查看它们。 你可以通过选择 File-> Examples-> PololuLedStrip-> LedStripColorTester来打开这个示例。 单击"上载"按钮将它的加载到你的母板上。 有关如何使用该代码的更多信息,请参见代码中的注释。

    时间详细信息

    这里库需要 1.1毫秒才能更新 30 led ( 1米)。 LED条采用高速一线协议,具有相对严格的时序要求,因这里该库禁用中断保证彩色传输。 然而,禁用中断会导致其他使用中断( 比如 Serial 库和 millis() 之类的功能)的库出现问题,这些库会跟踪时间。

    这个库提供了一个 interruptFriendly 选项,可以让它与基于中断的库共存。 当启用这里选项时,在每个颜色发送后,库将临时启用中断,每个 36微秒。 如果你可以保持所有中断足够短,那么这里选项应该允许这里库与中断库一起工作。 但是,对于( ) enabled超过 38微秒的中断,WS2812B 5微秒或者 8微秒,则该中断将被LED条解释为复位命令,因此该中断将被解释为 reset。 这可能导致LED条出现可见闪烁。 ,Arduinos Uno许多常见的,比如 Arduino,有一个运行每毫秒的中断,并且需要超过 8微秒,因此,除非禁用该中断,否则该选项会失败。 要打开 interruptFriendly 选项,请将这一行添加到 setup() 函数中:

    
    PololuLedStripBase::interruptFriendly = true;
    
    
    
    

    由于库默认禁用中断,所以它可能导致Arduino的计时函数丢失刻度。 因这里,可以从 millis() 像这样的函数访问的时间看起来比通常运行的时间慢。 demo代码,在 loop 函数的末尾添加一个 10毫秒延迟,这样可以确保Arduino只花费很少的时间更新LED条,从而限制了时间的影响。

    文档

    rgb_color

    库定义了一个名为 rgb_color的类型,它可以用来表示颜色。 这里类型的定义如下:

    
    typedef struct rgb_color
    
    
    {
    
    
     unsigned char red, green, blue;
    
    
    } rgb_color;
    
    
    
    

    字段 redgreenblue 分别是 0和 255之间的数字,表示红色。绿色和蓝色分量的亮度。

    PololuLedStrip <引脚>

    libary定义了一个名为 PololuLedStrip<pin>的模板类。 pin 模板参数是 unsigned char,应该是带输入线的LED数据与之连接的Arduino引脚的数量。 对于 ATmega2560-based Mega等电路板,只有以下引脚可用: 0 -5,10,18 -41和 50 -61 ( 端口A 至G )。 这个模板类继承自抽象类 PololuLedStripBase,如果你希望有指向LED条对象的指针,该类非常有用。

    此类除了默认的构造函数外没有构造函数。 此类具有一个函数:

    • void write(rgb_color * colors, unsigned int count)
      将指定的颜色写入LED条。 colors 参数应该是指向内存中 rgb_color 结构的array的指针。 count 参数是要写入的颜色数。 array 中的第一个颜色将写入最接近数据输入连接器的LED。 要更新LED条的所有 LED,count 应该等于或者等于strip中的LED数量。 如果 count 小于带子中的led数,则不会更新带近端部的一些 led。 这里函数暂时禁用中断。 在返回到允许颜色生效之前,这个函数在最后暂停超过 10个。

    PololuLedStripBase

    • static bool interruptFriendly;
      这里选项默认为 false。 将这里设置为 true 将更改 write 函数的行为,使它的在每个颜色发送后启用中断,每隔 36秒。 查看上面的讨论。

    链接LED条

    不需要特殊的代码将LED条组合在一起。 可以与单一( X+Y ) -meter LED带相同的方式控制到y 表LED条的x 表LED条。

    版本历史

    • 4.2.0 ( 2017-03-20 ): 为rgb_color添加了一个构造函数,它接受三个颜色值并更改示例以使用它。 添加了 keywords.txt,它是由 Arduino IDE用于语法突出显示的。
    • 4.1.1 ( 2017-01-16 ): 固定 library.properties"url"字段。
    • 4.1.0 ( 2016-11-03 ): 将重置时间从 50个μs更改为 80 μs,以支持 SK6812.
    • 4.0.0 ( 2016-08-22 ): 与Arduino库管理器一起使用的更新库。
    • 3.2.0 ( 2014-08-27 ): 增加了 8 MHz ( 感谢 odewdney ) 运行的AVRs支持。
    • 3.1.2 ( 2014-06-10 ): 在LedStripRainbow示例中修复HSV-to-RGB转换中的Bug。
    • 为了使 3.1.1 更容易扩展,( 2014-01-07 ): 使用 uint16_t 代替 byte,使它的更容易扩展到2 个 led。
    • 3.1.0 ( 2013-12-19 ): 添加了LedStripXmas示例。
    • 3.0.0 ( 2013-11-20 ): 切换红色和绿色通道并增加重置时间,这样库可以很好地使用新的WS2812和 WS2182B LED条。 如果在代码中使用红色和绿色,那么高速 TM1804 LED条仍然有效。
    • 2.1.0 ( 2013-11-11 ): 添加了LedStripRainbow示例。
    • 为了使库更快,2.0.0 ( 2013-10-07 ) 降低了对较旧的。较慢的LED条的支持。
    • 1.2.0 ( 2013-10-07 ): 改变了时间,使这个图书馆能够工作新的高速带,但也保持了旧的低速带。
    • 1.1.0 ( 2012-12-17 ): 增加了对ATmega32U4-based板( 如 Arduino Leonardo )的支持。 增加了对基于arm的电路板的支持,如 Due。
    • 1.0.0 ( 2012-03-09 ): 原始版本。

    str  添加  Arduino  LED  Strip  RGB  
    相关文章