829|4

20

帖子

1

资源

一粒金砂(中级)

内置ws2811的8位全彩LED模块 [复制链接]

鎵规敞 2020-05-09 122921.png

鎵规敞 2020-05-09 123215.png

请教大神:

0.5us怎么延时?用time.sleep(0.0000005)?

time.sleep_us()里面不能用小数

C语言里看到别人都是用__nop()的,Micropython里没有吧?当然这样延时并不精确,控制多个LED的时候会不正常的。

有人说用SPI的DMA模式,MciroPython好像也没有吧?

请教WS2811怎么控制?

 

 

鎵规敞 2020-05-09 123306.png

回复

1万

帖子

14

资源

版主

在micropython中,nrf/esp8266/esp32内置了WS2812驱动,可以通过NeoPixel库直接使用,大部分GPIO都可以驱动。

 

STM32中没有直接集成,但是网上有通过SPI的MOSI引脚驱动的程序。


回复

1万

帖子

14

资源

版主

 官方的例程

 

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

 


回复

20

帖子

1

资源

一粒金砂(中级)

首先谢谢大神。

本来是想按官方文档的时序写驱动,可是发现怎么写,都只能点亮灯,不能灭。

百度了很多人的程序,大家都说这个延时掌握不了,或者说MicroPython根本做不到毫秒级以下的延时。

本着死磕的精神,去研究了下单步执行的时间。

我做了个1000步的循环,里面就做一个操作(置低电平),结果是9111毫秒,也就是平均每步要用9毫秒,

WS2811要做0.5毫秒的延时,根本做不出来,所以全部做成1码了,所以灯只亮不灭。

所以这条路只好放弃了。


回复

20

帖子

1

资源

一粒金砂(中级)

找了个WS2812的驱动,用SPI的MOSI脚发送数据,可以完美控制。

谢谢大神。


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表