ESP8266/ESP32控制ws2812的几种方法

42 篇文章 20 订阅

ESP8266

ESP8266的GPIO有效翻转大约需要2.5us(0.4MHz),而ws2812的控制电平要求精度在百ns级别,所以直接控制GPIO比较难实现。
在网上搜索了一下各种可行的方案:

  1. Arduino配合ws2812库

  2. non_os SDK,配合 Adafruit_NeoPixel.c

  3. SPI驱动(使用GPIO13)。将SPI的时钟调整为8MHz,发送一个字节所需时间1.25us,等于ws2812一个位的时间,SPI总线发送11000000b即为向ws2812发送逻辑0,SPI总线发送11111100b即为向ws2812发送逻辑1。
    初始化控制禁用CS和MISO使能,只使用MOSI作为WS2812的输出引脚。同时必须需要设置spi的事件回调函数,即使它是空的。
    原博客参考链接:https://blog.csdn.net/gengyuchao/article/details/93239317

  4. 使用open_rtos_sdk的驱动 (使用GPIO3即UART0_RXD)
    esp8266-setup/ws2812_i2s: WS2812 LED library from open-rtos-sdk ported to esp8266-setup and the original RTOS SDK
    Using RAM for DMA buffer. 12 bytes per pixel.
    Can not change output PIN. Use I2S DATA output pin which is GPIO3(UART0_RXD).

  5. 使用这个库THKDev/NeoPixelBus_ESP8266_RTOS: Adafruit enhanced NeoPixel support library with ESP8266 RTOS support,但是example都是基于arduino的。内置了很多效果。这里是WIKI地址Home · Makuna/NeoPixelBus Wiki,这里是案例Examples · Makuna/NeoPixelBus Wiki

  6. 使用WS2812FX移植库THKDev/WS2812FX_ESP8266_RTOS: WS2812 FX Library for ESP8266 RTOS,需要同时安装NeoPixelBus库这里还有使用WS2812FX库的方法

  7. PabloCastellano/awesome-ws2812: A curated list of awesome resources for ws2812 LED strips and matrices 这个仓库收集了很多ws2812相关的资料和驱动库链接。

  8. 一个非常好的web控制案例:toblum/McLighting: The ESP8266 based multi-client lighting gadget

ESP32

相关资源:

  1. 视频-【IOT College】ESP-IDF 环境下使用ESP32 驱动LED WS2812
  2. esp-idf/examples/peripherals/rmt/led_strip at 1cb31e50943bb757966ca91ed7f4852692a5b0ed · espressif/esp-idf
  3. 安信可ESP32-C3模组阿里云远程控制WS2812RGB灯条(基于ESP-IDF的SDK)_安信可科技 -CSDN博客
  4. JSchaenzle/ESP32-NeoPixel-WS2812-RMT: NeoPixel (WS2812) Driver Example code using RMT peripheral
  5. DominikN/ESP32_ledstrip_webserver: Control WS2812 based LED strip using a web server hosted by ESP32.
  6. 使用spi协议的方式传输控制数据
  7. 使用i2s协议的方式传输控制数据(据说最多支持12个灯?)

其它可能的方法:
据说ESP8266 GPIO0翻转速度比其它IO要快,但是似乎这种方法不太稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值