Esp32 Idf 用rmt控制 Ws2812 彩色灯带 博客园

Emily Johnson
-
esp32 idf 用rmt控制 ws2812 彩色灯带 博客园

在上一篇中,老周用 .NET Nano Framework 给大伙伴们演示了 WS2812 灯带的控制,包括用 SPI 和 红外RMT 的方式。利用 RMT 是一个很机灵的方案,不过,可能很多大伙伴对 ESP32 的 RMT 不是很熟悉。除了乐鑫自己的文档,没几个人写过相关的水文,可见这里头空白的水市场很充足,老周一时手痒,就决定再水一篇博文。 不管你有没有做过物联网项目,只要你有关注,你就会发现,当今时尚流行忽悠不擦嘴巴。许多教程就拿个 MicroPython 或者 Arduino,贴几行代码,然后叫你烧录进去看效果。可是,效果看完了,你知道了啥?你学到了啥?你知道这里头做了啥?全 TM 不知。做教程的人只管忽悠,然后就没下文了。这就是它们老喜欢用 Python 的原因。基于脚本语言的特性,很多库都是高度封装的,拿来直接敲几行代码就完事了。写教程的是这样,做培训的也是这样。 用 Arduino 好不好?好,开柜即用;用 MicroPython 好不好?好,开桶即用。这就是现在为什么 Py 流行的原因,做培训的演示起来多起劲,几行代码(估计他们为这几行代码都练了无数次,都背下来了)天天敲,而且这么简单的代码,现场演示也不怕出错,然后告诉你:看看,做 AI,做 Iot 多简单!但是,老周是很 BS 这些人的,只告诉你吃鱼很香,却不告诉你怎么捕的鱼。Python 不是不能用,而是你不能指望凭它来学编程。脚本语言本来就是做辅助用的。 如果你一开始用的是 C 语言,就算你没在做项目,你反而可以坚持玩几年,甚至十几年。哪怕业余玩玩,也能一层一层地挖掘出很多有趣的东西。 还有一种更离谱的观点:Py 适合科研人员,可以快速验证结果。C语言留给开发的苦逼去干。老周认为:做科研的人在底层和基础知识方面更应该比开发的人强,不然你研究个鸵鸟蛋!连基本的原理和细节都搞不清楚,那就是纸上谈兵,洗钱罢了。就像现在某些建筑,某些服装,为什么会出现许多反人类设计;很多产品也是反人类设计?正是因为做设计的人对生产、对技术、对基础原理不了解,闭上眼睛无脑瞎编乱涂。有些设计人员对自己、对产品、对他人也是不负责的,自己设计的东西做出来,也不去试用一下,看看你设想的东西多么不靠谱。 本教程将介绍如何使用乐鑫 ESP-IDF 框架,通过 RMT 外设驱动 微雪 ESP32-S3-Zero 迷你开发板 板载 WS2812 可寻址 LED,实现灯珠点亮和颜色切换功能。

WS2812 是一种集成了控制电路和发光电路的智能 RGB LED。它将一个 RGB LED 灯珠和一个控制芯片封装在一起,有时也被称为 "NeoPixel"。 特点:单数据线控制、可级联、内置 PWM 驱动、24 位色彩数据(8 位 R, 8 位 G, 8 位 B)。这意味着你可以用一根 GPIO 口控制多个 LED,并且独立设置每个灯珠的颜色和亮度。 数据传输:通过发送一连串高低电平脉冲来表示 "0" 码和 "1" 码。一个完整的周期大约为 1.25µs (TH+TL=1.25µs±600ns)。 数据以 24 位序列发送,每种颜色占 8 位,高位在前,通常采用 GRB 序列,发送完成后需要至少 50µs 的低电平复位脉冲。 在上一篇中,老周用 .NET Nano Framework 给大伙伴们演示了 WS2812 灯带的控制,包括用 SPI 和 红外RMT 的方式。利用 RMT 是一个很机灵的方案,不过,可能很多大伙伴对 ESP32 的 RMT 不是很熟悉。除了乐鑫自己的文档,没几个人写过相关的水文,可见这里头空白的水市场很充足,老周一时手痒,就决定再水一篇博文。 不管你有没有做过物联网项目,只要你有关注,你就会发现,当今时尚流行忽悠不擦嘴巴。许多教程就拿个 MicroPython 或者 Arduino,贴几行代码,然后叫你烧录进去看效果。可是,效果看完了,你知道了啥?你学到了啥?你知道这里头做了啥?全 TM 不知。做教程的人只管忽悠,然后就没下文了。这就是它们老喜欢用 Python 的原因。基于脚本语言的特性,很多库都是高度封装的,拿来直接敲几行代码就完事了。写教程的是这样,做培训的也是这样。

用 Arduino 好不好?好,开柜即用;用 MicroPython 好不好?好,开桶即用。这就是现在为什么 Py 流行的原因,做培训的演示起来多起劲,几行代码(估计他们为这几行代码都练了无数次,都背下来了)天天敲,而且这么简单的代码,现场演示也不怕出错,然后告诉你:看看,做 AI,做 Iot 多简单!但是,老周是很 BS 这些人的,只告诉你吃鱼很香,却不告诉你怎么捕的鱼。 为什么很多人学物联网就三分热度,一开始好玩轻松,玩几下就没意思了,直接 6 了。这就是学 Python 的害人之处。封装得太好了,入门前快乐满满,学起来简简单单。让菜鸟们对他们自己很烂的技术有了100%的信心,甚至天真地以为这就是编程。而等到真正入门了就没啥好玩了,也不知道自己学了啥,更不知道在干啥,很难再深入。于是弃坑了。Python 不是不能用,而是你不能指望凭它来学编程。脚本语言本来就是做辅助用的。 如果你一开始用的是 C 语言,就算你没在做项目,你反而可以坚持玩几年,甚至十几年。哪怕业余玩玩,也能一层一层地挖掘出很多有趣的东西。 在上一篇中,老周用 .NET Nano Framework 给大伙伴们演示了 WS2812 灯带的控制,包括用 SPI 和 红外RMT 的方式。利用 RMT 是一个很机灵的方案,不过,可能很多大伙伴对 ESP32 的 RMT 不是很熟悉。除了乐鑫自己的文档,没几个人写过相关的水文,可见这里头空白的水市场很充足,老周一时手痒,就决定再水一篇博文。 不管你有没有做过物联网项目,只要你有关注,你就会发现,当今时尚流行忽悠不擦嘴巴。许多教程就拿个 MicroPython 或者 Arduino,贴几行代码,然后叫你烧录进去看效果。可是,效果看完了,你知道了啥?你学到了啥?你知道这里头做了啥?全 TM 不知。做教程的人只管忽悠,然后就没下文了。这就是它们老喜欢用 Python 的原因。基于脚本语言的特性,很多库都是高度封装的,拿来直接敲几行代码就完事了。写教程的是这样,做培训的也是这样。 用 Arduino 好不好?好,开柜即用;用 MicroPython 好不好?好,开桶即用。这就是现在为什么 Py 流行的原因,做培训的演示起来多起劲,几行代码(估计他们为这几行代码都练了无数次,都背下来了)天天敲,而且这么简单的代码,现场演示也不怕出错,然后告诉你:看看,做 AI,做 Iot 多简单!但是,老周是很 BS 这些人的,只告诉你吃鱼很香,却不告诉你怎么捕的鱼。

为什么很多人学物联网就三分热度,一开始好玩轻松,玩几下就没意思了,直接 6 了。这就是学 Python 的害人之处。封装得太好了,入门前快乐满满,学起来简简单单。让菜鸟们对他们自己很烂的技术有了100%的信心,甚至天真地以为这就是编程。而等到真正入门了就没啥好玩了,也不知道自己学了啥,更不知道在干啥,很难再深入。于是弃坑了。Python 不是不能用,而是你不能指望凭它来学编程。脚本语言本来就是做辅助用的。 如果你一开始用的是 C 语言,就算你没在做项目,你反而可以坚持玩几年,甚至十几年。哪怕业余玩玩,也能一层一层地挖掘出很多有趣的东西。 希望能在ESP32上使用RMT控制4路WS2812灯带(现在调试时每条灯带上有40个LED,将来实际使用时可能会有几百个LED),具体步骤为蓝牙收到手机端的设置指令,然后通过led_strip.h里面的库函数设置灯带,目前IDF中的esp-idf/examples/peripherals/rmt/led_strip例程只能控制一条ws2812灯带,我尝试在代码中增加到4路RMT控制4路WS2812灯带,但是效果不理想,似乎会有时序问题,就会出现灯的颜色变了,我不确定是不是因为有蓝牙功能在使用,因为是freeRTOS系统,会不会是有更高级的任务,抢占了时间?怎么实现原子执行?(屏蔽掉其它任务),我现在不确定问题出在哪里。

People Also Search

在上一篇中,老周用 .NET Nano Framework 给大伙伴们演示了 WS2812 灯带的控制,包括用 SPI 和 红外RMT

在上一篇中,老周用 .NET Nano Framework 给大伙伴们演示了 WS2812 灯带的控制,包括用 SPI 和 红外RMT 的方式。利用 RMT 是一个很机灵的方案,不过,可能很多大伙伴对 ESP32 的 RMT 不是很熟悉。除了乐鑫自己的文档,没几个人写过相关的水文,可见这里头空白的水市场很充足,老周一时手痒,就决定再水一篇博文。 不管你有没有做过物联网项目,只要你有关注,你就会发现,当今时尚流行忽悠不擦嘴巴。许多教程就拿个 MicroPython 或者 Arduino,贴几行代码,然后叫你烧录进去看效果。可是,效果看完了,你知道了啥?你学到了啥?你知道这里头做了啥?全 TM 不知。做教程的人只管忽悠,然后就没下文了。这就是它们老喜欢用 Python 的原因。基于脚本语言的特性,很多库都是高度封装的,拿来直接敲几行代码就完事了。写教程的是这样,做培训的也是这样。 用 Ardu...

WS2812 是一种集成了控制电路和发光电路的智能 RGB LED。它将一个 RGB LED 灯珠和一个控制芯片封装在一起,有时也被称为 "NeoPixel"。 特点:单数据线控制、可级联、内置 PWM

WS2812 是一种集成了控制电路和发光电路的智能 RGB LED。它将一个 RGB LED 灯珠和一个控制芯片封装在一起,有时也被称为 "NeoPixel"。 特点:单数据线控制、可级联、内置 PWM 驱动、24 位色彩数据(8 位 R, 8 位 G, 8 位 B)。这意味着你可以用一根 GPIO 口控制多个 LED,并且独立设置每个灯珠的颜色和亮度。 数据传输:通过发送一连串高低电平脉冲来表示 "0" 码和 "1" 码。一个完整的周期大约为 1.25µs (TH+TL=1.25µs±600ns)。 数据以 24 位序列发送,每种颜色占 8 位,高位在前,通常采用 GRB 序列,发送完成后需要至少 50µs 的低电平复位脉冲。 在上一篇中,老周用 .NET Nano Framework 给大伙伴们演示了 WS2812 灯带的控制,包括用 SPI 和 红外RMT 的方式。利用 RMT 是一...

用 Arduino 好不好?好,开柜即用;用 MicroPython 好不好?好,开桶即用。这就是现在为什么 Py 流行的原因,做培训的演示起来多起劲,几行代码(估计他们为这几行代码都练了无数次,都背下来了)天天敲,而且这么简单的代码,现场演示也不怕出错,然后告诉你:看看,做 AI,做 Iot 多简单!但是,老周是很

用 Arduino 好不好?好,开柜即用;用 MicroPython 好不好?好,开桶即用。这就是现在为什么 Py 流行的原因,做培训的演示起来多起劲,几行代码(估计他们为这几行代码都练了无数次,都背下来了)天天敲,而且这么简单的代码,现场演示也不怕出错,然后告诉你:看看,做 AI,做 Iot 多简单!但是,老周是很 BS 这些人的,只告诉你吃鱼很香,却不告诉你怎么捕的鱼。 为什么很多人学物联网就三分热度,一开始好玩轻松,玩几下就没意思了,直接 6 了。这就是学 Python 的害人之处。封装得太好了,入门前快乐满满,学起来简简单单。让菜鸟们对他们自己很烂的技术有了100%的信心,甚至天真地以为这就是编程。而等到真正入门了就没啥好玩了,也不知道自己学了啥,更不知道在干啥,很难再深入。于是弃坑了。Python 不是不能用,而是你不能指望凭它来学编程。脚本语言本来就是做辅助用的。 如果你一开始...

为什么很多人学物联网就三分热度,一开始好玩轻松,玩几下就没意思了,直接 6 了。这就是学 Python 的害人之处。封装得太好了,入门前快乐满满,学起来简简单单。让菜鸟们对他们自己很烂的技术有了100%的信心,甚至天真地以为这就是编程。而等到真正入门了就没啥好玩了,也不知道自己学了啥,更不知道在干啥,很难再深入。于是弃坑了。Python 不是不能用,而是你不能指望凭它来学编程。脚本语言本来就是做辅助用的。 如果你一开始用的是 C 语言,就算你没在做项目,你反而可以坚持玩几年,甚至十几年。哪怕业余玩玩,也能一层一层地挖掘出很多有趣的东西。 希望能在ESP32上使用RMT控制4路WS2812灯带(现在调试时每条灯带上有40个LED,将来实际使用时可能会有几百个LED),具体步骤为蓝牙收到手机端的设置指令,然后通过led_strip.h里面的库函数设置灯带,目前IDF中的esp-idf/examples/peripherals/rmt/led_strip例程只能控制一条ws2812灯带,我尝试在代码中增加到4路RMT控制4路WS2812灯带,但是效果不理想,似乎会有时序问题,就会出现灯的颜色变了,我不确定是不是因为有蓝牙功能在使用,因为是freeRTOS系统,会不会是有更高级的任务,抢占了时间?怎么实现原子执行?(屏蔽掉其它任务),我现在不确定问题出在哪里。

为什么很多人学物联网就三分热度,一开始好玩轻松,玩几下就没意思了,直接 6 了。这就是学 Python 的害人之处。封装得太好了,入门前快乐满满,学起来简简单单。让菜鸟们对他们自己很烂的技术有了100%的信心,甚至天真地以为这就是编程。而等到真正入门了就没啥好玩了,也不知道自己学了啥,更不知道在干啥,很难再深入。于是弃坑了。Python 不是不能用,而是你不能指望凭它来学编程。脚本语言本来就是做辅助用的。 如果你一开始用的是 C 语言,就算你没在做项目,你反而可以坚持玩几年,甚至十几年。哪怕业余玩玩,也能一层一层地挖掘出很多有趣的东西。 希望能在ESP32上使用RMT控制4路WS2812灯带(现在调试时每条灯带上有40个LED,将来实际使用时可能会有几百个LED),具体步骤为蓝牙收到手机端的设置指令,然后通过led_strip.h里面的库函数设置灯带,目前IDF中的esp-idf/exam...