WS2812炫彩灯开发手册

ws2812 LED芯片API

概要

小龟小车内置了针对WS2812系列LED芯片的简化访问API,大家可以通过下面这些API快速的操控WS2812 LED全彩灯带。注意:由于WS2812灯珠的功耗很大,过长的灯带需要给小车加外接电源才行!

固件版本需要大于 V200106

注意:本API用到的RGB颜色为标准的8位红绿蓝三原色组成的长整型值,如0x112233代表红色为0x11、绿色为0x22、蓝色为0x33。


WS2812 API

car.ws2812.open(pin:str)->bool
在指定的小车扩展管脚上开启WS2812信号输出功能。 范例:
#打开A1管脚上的WS2812灯带的信号输出功能
car.ws2812.open("A1");

    参数:
  • pin: 扩展管脚的名称
car.ws2812.close(pin:str)->bool
关闭指定扩展管脚上的WS2812信号输出功能。 范例:
#关闭A1管脚上的WS2812灯带信号输出功能
car.ws2812.close("A1");

    参数:
  • pin: 扩展管脚的名称
car.ws2812.write(pin:str, colors:list)->bool
往指定管脚上输出色彩信号。如果指定的管脚没有执行过前面的open函数,管脚本身也是闲置的话,系统会自动开启该管脚的ws2812输出功能。 范例:
#往接在A1管脚上的WS2812灯带信号依次输出红绿蓝三盏灯
#WS2812灯带的RGB排序是Red, Green, Blue
car.ws2812.write("A1", [0x00FF00, 0xFF0000, 0x0000FF]);


    参数:
  • pin: 扩展管脚的名称
  • colors: 色彩列表,系统会自动根据列表次序把颜色输给灯带上对应次序的灯珠
car.ws2812.rgb(red:int, green:int, blue:int)->bool
根据红绿蓝三个单色数值合成一个RGB 32位整数供前面的write函数使用。 范例:
#往接在A1管脚上的WS2812灯带信号依次输出红绿蓝三盏灯
from car import ws2812
ws2812.write("A1", [ws2812.rgb(255,0,0), ws2812.rgb(0,255,0), ws2812.rgb(0,0,255)]);


    参数:
  • red: 红色数值 0到255
  • green: 绿色数值 0到255
  • blue: 蓝色数值 0到255