试着点亮ws2812b

STM32系列
pyboard相关
zl_cq
帖子: 118
注册时间: 2020年 6月 9日 17:19

试着点亮ws2812b

#1

帖子 zl_cq »

看了邵老师介绍的用ws2812制作的炫彩灯球,我买了一个8*8的ws2812b板子。准备试着点亮它。
电源和信号源都试着用pyboard板子直接供给ws2812b板子,看能不能点亮它。板子的电源是3.3v;用A0做输出,供给信号;用PWM调节脉冲宽度,1码的高电平时68%,0码的高电平是32%;1个字的宽度是1.25us正负600ns,计算得到频率是800KHz。
担心的是电源的电压和功率不够,先试试再说吧。

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: 试着点亮ws2812b

#2

帖子 shaoziyang »

3.3V可以工作,但是pyboard上LDO功率较小,如果亮度大就会带不动(通常一颗WS2812每路最大15mA)。

建议用5V直接供电,WS2812的电源是宽范围的,最高不超过5.3V就行。

zl_cq
帖子: 118
注册时间: 2020年 6月 9日 17:19

Re: 试着点亮ws2812b

#3

帖子 zl_cq »

邵老师好!怎么搜索和下载micropython的neopixel函数呢?

zl_cq
帖子: 118
注册时间: 2020年 6月 9日 17:19

Re: 试着点亮ws2812b

#4

帖子 zl_cq »

这个neopixel对不对?
neopixel程序.png
neopixel程序.png (33.79 KiB) 查看 2498 次
 

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: 试着点亮ws2812b

#5

帖子 shaoziyang »

有更简单的用法,参考一下官方这个说明,虽然是ESP32的,对于其它mcu也是一样用法:

https://docs.micropython.org/en/latest/ ... 106-driver

代码: 全选

from machine import Pin
from neopixel import NeoPixel

pin = Pin(0, Pin.OUT)   # set GPIO0 to output to drive NeoPixels
np = NeoPixel(pin, 8)   # create NeoPixel driver on GPIO0 for 8 pixels
np[0] = (255, 255, 255) # set the first pixel to white
np.write()              # write data to all pixels
r, g, b = np[0]         # get first pixel colour

zl_cq
帖子: 118
注册时间: 2020年 6月 9日 17:19

Re: 试着点亮ws2812b

#6

帖子 zl_cq »

请教一个问题:我给ws2812b的8*8板子供电、供信号后,板子上的灯不亮。当我拔掉信号线的瞬间,灯全亮了。
为什么是在断掉信号时灯会亮?

zl_cq
帖子: 118
注册时间: 2020年 6月 9日 17:19

Re: 试着点亮ws2812b

#7

帖子 zl_cq »

请教另一个问题:怎么获取neopixel模块?

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: 试着点亮ws2812b

#8

帖子 shaoziyang »

上电或插播信号线时,如果输入端没有做合适处理,可能因为干扰信号等原因,使得2812点亮。

在新版本的micropython中,已经内置了neopixel模块。如果import neopixel出错,多半是固件版本太低造成的。
 

zl_cq
帖子: 118
注册时间: 2020年 6月 9日 17:19

Re: 试着点亮ws2812b

#9

帖子 zl_cq »

通过试验,发现:在输入信号、电源供给都正常时,灯不亮。只有在输入信号去除时,灯才亮。
亮灯试验.png
亮灯试验.png (20.27 KiB) 查看 2578 次
 

zl_cq
帖子: 118
注册时间: 2020年 6月 9日 17:19

Re: 试着点亮ws2812b

#10

帖子 zl_cq »

请教一个问题:灯亮后,怎么才能灭呢?

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章