当前位置: 幻彩灯珠>>灯珠资讯>> led灯只有一个灯珠亮 rgb灯带只亮一种颜色

led灯只有一个灯珠亮 rgb灯带只亮一种颜色

led灯只有一个灯珠亮 rgb灯带只亮一种颜色

led灯只点亮一个珠子rgb灯带仅点亮一个颜色)

rgb灯介绍

WS2812是将控制电路和发光电路一体化的智能外部控制LED光源,其外形与5050的led灯珠相同,各珠子是一个像素点。各像素点的rgb3个基色能够实现256级的亮度显示,能够生成167771216种颜色,扫描频率不低于400Hz/s,串行级联接口仅通过一条信号线完成数据接收和解码。在刷新率为30帧/秒的情况下,级联数为1024个以上,数据发送速率达到800Kbps,所产生的光的颜色高度一致,性值相对较高。

WS2812销概略图

引脚号码引脚名称说明1DO控制数据信号输出端2DI控制数据信号输入端3VCC控制电路电源正极4NC伪5VDDled电源正极6VSS电源负极

数据序列图

0,1代码的高级时间:

T0H0码,高电平时间0.35us±150nsT0L0码,低电平时间0.8us±150nsT1H1码,高电平时间0.7us±150nsT1码,低电平时间0.6us±150nsREs低电平时间约50us?

TH+TL=1.25μs±600ns

时序图:

数据传输方式:

这里,D1是在MCU端发送的数据,D2、D3、D4是级联电路自动整形转发的数据。

24比特数据的构成:

这个按GRB的顺序发送数据。

安装关联库RGB LED

首先安装相关程序库。

sudo pip3 install rpi_ws281x adafruit-circuit-python-neo-pixelsudopython3-mpip-install-force-reinstalladafrit-blinkacircuitpython支持。x版本。

RGB LED和树莓派连接方法:

RGB LED 树莓派 VCC +5V GND GND DI D18 (GpIO1)

树莓派的D10、D12、D18或D21只有销能够驱动WS2812rgb灯。例1:点亮rgb

1个rgb实现灯的点亮。

#!/usr/bin/envpython#coDIng=utf-8import timeimport boardimport neopixel#定义rgb控制销是D10、D12、D18或D21pixel必须选择pin=board。D18#串联rgb珠的数量,这里仅点亮第一个numpixels=1#定义rgb数据顺序:rgb或者GRBCOLORORDER=neopixel。GRBpixels = neopixel.neopixel(pixel_pin, num_pixels, brightness=0.3, auto_write=False, pixel_ORDER=COLOR_ORDER#第1个rgb点亮灯,显示红色pixels。fill((255, 0, 0))pixels.show()程序必须在python3作为root执行。

效果图:

例2:rgb动态显示

实现红、绿、蓝、虹环的示例。

#!/usr/bin/envpython#coDIng=utf-8import timeimport boardimport neopixel#定义rgb控制销是D10、D12、D18或D21pixel必须选择pin=board。D18#串联rgb珠的数量numpixels=3#定义rgb数据顺序:rgb或者GRBCOLORORDER=neopixel。GRBpixels = neopixel.neopixel(pixel_pin, num_pixels, brightness=0.3, auto_write=False, pixel_ORDER=COLOR_ORDER)def wheel(pos): if pos lt; 0 or pos gt; 255: r = g = b = 0 elif pos lt; 85: r = int(pos * 3) g = int(255 – pos * 3) b = 0 elif pos lt; 170: pos -= 85 r = int(255 – pos * 3) g = 0 b = int(pos * 3) else: pos -= 170 r = 0 g = int(pos * 3) b = int(255 – pos * 3) return (r, g, b) if COLOR_ORDER in (neopixel.rgb, neopixel.GRB) else (r, g, b, 0)def rainbow(wait): for j in range(255): for i in range(num_pixels): pixel_index = (i * 256 //num_pixels) + j pixelsi = wheel(pixel_index 255) pixels.show() time.sleep(wait)while True: pixels.fill(255,0)#红色pixels。show() time.sllt;ickeygt;eep(1) pixels.fill((0,255,0)#绿pixels。show() time.sllt;ickeygt;eep(1) pixels.fill((0,0,255)#蓝色pixels。show() time.sllt;ickeygt;eep(1)rainbow(0.01)#彩虹程序需要在python3作为root来执行。

效果图:

附件:neopixel库的官方文档:AdafluitcircuitpythonneopixelLibrary