{"id":6633,"date":"2023-04-19T08:43:18","date_gmt":"2023-04-19T00:43:18","guid":{"rendered":"http:\/\/www.nvled.com\/?p=6633"},"modified":"2023-04-19T12:41:13","modified_gmt":"2023-04-19T04:41:13","slug":"arduino%e5%bc%80%e5%8f%91%e4%b9%8b%e6%b7%b1%e5%85%a5%e7%90%86%e8%a7%a3-ws2812b-%e5%bd%a9%e7%81%af-%ef%bc%88%e7%9b%b4%e6%8e%a5%e7%a8%8b%e5%ba%8f%e7%82%b9%e4%ba%ae-fastled%e5%ba%93","status":"publish","type":"post","link":"https:\/\/www.nvled.com\/?p=6633","title":{"rendered":"ARDUINO\u5f00\u53d1\u4e4b\u6df1\u5165\u7406\u89e3 WS2812B \u5f69\u706f \uff08\u76f4\u63a5\u7a0b\u5e8f\u70b9\u4eae + FASTLED\u5e93\u70b9\u4eae\uff09"},"content":{"rendered":"\n<p>\u6807\u7b7e\uff1a\u00a0Arduino \u5f00\u53d1\u6559\u7a0b\u00a0\u00a0ESP32 \u5b66\u4e60\u7b14\u8bb0 <br>\u7248\u6743\u58f0\u660e\uff1a\u672c\u6587\u4e3aqq_41868901\u539f\u521b\u6587\u7ae0\uff0c\u9075\u5faa\u00a0CC 4.0 BY-SA\u00a0\u7248\u6743\u534f\u8bae\uff0c\u8f6c\u8f7d\u8bf7\u9644\u4e0a\u539f\u6587\u51fa\u5904\u94fe\u63a5\u548c\u672c\u58f0\u660e\u3002 <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u76ee\u5f55<\/h2>\n\n\n\n<p>1.   WS2812B\u706f\u73e0\u7b80\u4ecb <br>2.   \u76f4\u63a5\u6539\u53d8IO\u53e3\u7535\u5e73\u6765\u9a71\u52a8WS2812\u706f\u73e0 <br>2.1. \u70b9\u4eae\u4e00\u4e2a\u706f <br>2.2. \u8bbe\u7f6eWS2812\u706f\u4e3a\u4efb\u610f\u989c\u8272 <br>2.3. \u70b9\u4eae\u591a\u4e2a\u706f\u73e0\uff0c\u5e76\u8bbe\u7f6e\u4e0d\u540c\u989c\u8272 <br>3.   \u7528Arduino\u7684\u5e93\u53bb\u9a71\u52a8\uff08\u65b9\u4fbf\u5f88\u591a\uff09 <br>3.1. FastLED\u5e93 <br>3.2. Adafruit_NeoPixel-master\u5e93 <br><br><strong>1. WS2812B\u706f\u73e0\u7b80\u4ecb <\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.freesion.com\/images\/755\/14f5f96528cdde3b7fe4e9ae0a1caab3.png\" alt=\"\" width=\"1200\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.freesion.com\/images\/319\/c700163d01bf2510dc45f2abaadbc2cf.png\" alt=\"\" width=\"1200\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.freesion.com\/images\/939\/a2d8127ee0fcff3bc851311f92aa3813.png\" alt=\"\" width=\"1200\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.freesion.com\/images\/98\/81e1dfe61fb26f5e7cbd6845bdb46042.png\" alt=\"\" width=\"1200\"\/><figcaption class=\"wp-element-caption\">        \u53ef\u4ee5\u770b\u5230\uff0cWS2812\u706f\u73e0\u652f\u6301\u7ea7\u8054\uff0c\u6211\u4eec\u53ea\u9700\u8981\u4e00\u4e2a\u5f15\u811a\u5373<strong>\u53ef\u9a71\u52a8 1024 \u4e2a\u706f\u73e0<\/strong>\uff0c\u8fd9\u65e0\u7591\u7ed9\u6211\u4eec\u7701\u4e86\u5f88\u591aIO\u53e3\uff0c\u9a71\u52a8\u65b9\u5f0f\u4e5f\u662f\u5f02\u5e38\u7684\u7b80\u5355\uff0c\u53ea\u9700\u8981\u6309\u7167\u683c\u5f0f\u53bb\u6539\u53d8IO\u53e3\u7535\u5e73\u5c31\u53ef\u4ee5\u4e86\uff0c\u8fd9\u8ba9\u4efb\u4f55\u4e00\u6b3e\u5355\u7247\u673a\u90fd\u53ef\u4ee5\u4f7f\u7528\u8fd9\u6b3e\u706f\u73e0\uff1b<br>        \u63a5\u4e0b\u6765\uff0c\u8ba9\u6211\u5e26\u9886\u5927\u5bb6\u4ece\u70b9\u4eae\u4e00\u4e2a\u706f\u5f00\u59cb\u5427~ <\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"2.%E7%9B%B4%E6%8E%A5%E6%94%B9%E5%8F%98IO%E5%8F%A3%E7%94%B5%E5%B9%B3%E6%9D%A5%E9%A9%B1%E5%8A%A8WS2812%E7%81%AF%E7%8F%A0\">2.\u76f4\u63a5\u6539\u53d8IO\u53e3\u7535\u5e73\u6765\u9a71\u52a8WS2812\u706f\u73e0<\/h1>\n\n\n\n<p><strong>\u672c\u6b21\u4f7f\u7528\u7684\u786c\u4ef6<\/strong>\uff1a<strong>ESP32<\/strong>&nbsp;+ 8*8&nbsp;<strong>WS2812<\/strong>\u70b9\u9635<\/p>\n\n\n\n<p><strong>\u5f00\u53d1\u73af\u5883\uff1aArduino IDE<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2.1.%E7%82%B9%E4%BA%AE%E4%B8%80%E4%B8%AA%E7%81%AF\">2.1.\u70b9\u4eae\u4e00\u4e2a\u706f<\/h2>\n\n\n\n<p>\u6211\u4eec\u770b\u4e0b&nbsp;<strong>WS2812&nbsp;<\/strong>\u8981\u6c42\u7684&nbsp;<strong>0&nbsp;\u548c 1<\/strong>&nbsp;\u662f\u4ec0\u4e48\u6837\u7684\u683c\u5f0f\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.freesion.com\/images\/853\/f2d495d6a6304c2caca3dcef08dede8d.png\" alt=\"\" width=\"1200\"\/><figcaption class=\"wp-element-caption\">\u7528IO\u53e3\u7535\u5e73\u6539\u53d8\u53bb\u6a21\u62df&nbsp;<strong>0\u7801<\/strong>&nbsp;\u548c&nbsp;<strong>1\u7801<\/strong>\uff1a<\/figcaption><\/figure>\n\n\n\n<pre><code class=\"language-cpp\">\/\/\u6a21\u62df\u7684ns\uff0c\u4e0d\u51c6\u786e\uff01\uff01\uff01\nvoid delay_ns(float a)\n{\n  for(int j;j&lt;a;j++)\n    NOP();\n}\n\n\/\/0\u7801\nvoid GPIO_0()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delay_ns(300);\n  digitalWrite(RGB_PIN,LOW);\n  delayMicroseconds(1);\n}\n\/\/1\u7801\nvoid GPIO_1()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delayMicroseconds(1);\n  digitalWrite(RGB_PIN,LOW);\n  delay_ns(300);\n}<\/code><\/pre>\n\n\n\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u6309\u7167\u683c\u5f0f\u53bb\u6539\u53d8IO\u53e3\u7535\u5e73\uff1a<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.freesion.com\/images\/672\/2db2837e94be7fd109fddb9b0434e430.png\" alt=\"\" width=\"1200\"\/><figcaption class=\"wp-element-caption\">\u5e38\u7528\u7684 WS2812&nbsp;\u706f\u73e0\u6709\u4e24\u79cd\u6570\u636e\u7ed3\u6784\uff0c\u4e00\u79cd\u4e3a&nbsp;<strong>RGB&nbsp;<\/strong>\u987a\u5e8f\uff0c\u4e00\u79cd\u4e3a&nbsp;<strong>GRB&nbsp;<\/strong>\u987a\u5e8f\uff0c\u6211\u624b\u4e2d\u7684\u4fbf\u662f RGB \u683c\u5f0f\uff0c<strong>\u63a5\u4e0b\u6765\u6211\u5c31\u7528RGB\u987a\u5e8f\u6765\u6f14\u793a\uff0c\u5982\u679c\u4f60\u7684\u662fGRB\u683c\u5f0f\uff0c\u4f60\u53ea\u9700\u8981\u6539\u53d8\u53d1\u9001\u987a\u5e8f\u5373\u53ef\uff0c\u8fd9\u5e76\u4e0d\u96be\u3002<\/strong><br>\u5047\u5982\u6211\u4eec\u8981\u8ba9\u4e00\u4e2a\u706f\u4eae\u7ea2\u8272\uff0c\u5373\u8981\u53d1\u900111111111 00000000 00000000 \uff0c\u524d\u9762\u768411111111&nbsp;\u5373\u5bf9\u5e94\u4e86255\u4eae\u5ea6\u7684\u7ea2\u8272\uff0c\u6211\u4eec\u53d1\u90018\u4e2aGPIO_1()\u548c16\u4e2aGPIO_0()\u5373\u53ef\uff1a<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th scope=\"col\">\u989c\u8272<\/th><th scope=\"col\">\u4e8c\u8fdb\u5236<\/th><th scope=\"col\">16\u8fdb\u5236<\/th><\/tr><\/thead><tbody><tr><td>\u7ea2\u8272<\/td><td>11111111 00000000 00000000<\/td><td>0xFF0000<\/td><\/tr><tr><td>\u7eff\u8272<\/td><td>00000000 11111111 00000000<\/td><td>0x00FF00<\/td><\/tr><tr><td>\u84dd\u8272<\/td><td>00000000 00000000 11111111<\/td><td>0x0000FF<\/td><\/tr><tr><td>\u9ed1\u8272<\/td><td>00000000 00000000 00000000<\/td><td>0x000000<\/td><\/tr><tr><td>\u767d\u8272<\/td><td>11111111 11111111 11111111<\/td><td>0xFFFFFF<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">\u989c\u8272\u6570\u636e<\/figcaption><\/figure>\n\n\n\n<pre><code class=\"language-cpp\">for (int i = 0; i &lt; 8; i++)\n  GPIO_1();\nfor (int i = 0; i &lt; 8; i++)\n  GPIO_0();\nfor (int i = 0; i &lt; 8; i++)\n  GPIO_0();<\/code><\/pre>\n\n\n\n<p>\u63a5\u4e0b\u6765\uff0c\u4f60\u4fbf\u53ef\u4ee5\u5c1d\u8bd5\u70b9\u4eae\u5404\u79cd\u989c\u8272\uff1a<\/p>\n\n\n\n<pre><code class=\"language-cpp\">#include &lt;WiFi.h&gt;\n\n\/\/\u5b9a\u4e49WS2812B\u5f15\u811a\n#define RGB_PIN 27\n\n\/\/\u6a21\u62df\u7eb3\u79d2\u5ef6\u65f6\uff0c\u4e0d\u51c6\u786e\nvoid delay_ns(float a)\n{\n  for(int j;j&lt;a;j++)\n    NOP();\n}\n\/\/0\u7801\nvoid GPIO_0()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delay_ns(300);\n  digitalWrite(RGB_PIN,LOW);\n  delayMicroseconds(1);\n}\n\/\/1\u7801\nvoid GPIO_1()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delayMicroseconds(1);\n  digitalWrite(RGB_PIN,LOW);\n  delay_ns(300);\n}\n\/\/\u7ea2\u8272\nvoid RGB_RED()\n{\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_1();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n}\n\/\/\u7eff\u8272\nvoid RGB_GREEN()\n{\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_1();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n}\n\/\/\u84dd\u8272\nvoid RGB_BLUE()\n{\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_1();\n}\n\/\/\u9ed1\u8272\uff0c\u5373\u7184\u706d\nvoid RGB_BLACK()\n{\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n  for (int i = 0; i &lt; 8; i++)\n    GPIO_0();\n}\n\nvoid setup(){\n  pinMode(RGB_PIN,OUTPUT);\n  digitalWrite(RGB_PIN,LOW);\n}\n\nvoid loop(){\n  RGB_RED();\/\/\u7ea2\n  delay(1000);\n  RGB_GREEN();\/\/\u7eff\u8272\n  delay(1000);\n  RGB_BLUE();\/\/\u84dd\u8272\n  delay(1000);\n  RGB_BLACK();\/\/\u9ed1\u8272\uff0c\u5373\u7184\u706d\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2.2.%E8%AE%BE%E7%BD%AEWS2812%E7%81%AF%E4%B8%BA%E4%BB%BB%E6%84%8F%E9%A2%9C%E8%89%B2\">2.2.\u8bbe\u7f6eWS2812\u706f\u4e3a\u4efb\u610f\u989c\u8272<\/h2>\n\n\n\n<p>\u6211\u4eec\u53ef\u4ee5\u5199\u4e2a\u51fd\u6570\uff0c\u5f62\u53c2\u4e3a\u4f60\u60f3\u8981\u53d1\u9001\u7684\u989c\u8272\uff0c\u4f8b\u5982\uff1a\u4f60\u60f3\u8981\u7684\u53d1\u9001\u7ea2\u8272\uff080xFF0000\uff09,\u4f60\u53ea\u9700\u8981\u8c03\u7528WS2812_Send_Date(0xFF0000)\u5373\u53ef\uff0c\u662f\u4e0d\u662f\u7b80\u5355\u4e86\u5f88\u591a\u3002<\/p>\n\n\n\n<pre><code class=\"language-cpp\">\/\/\u83b7\u53d6\u7684\u67d0\u4e00\u4f4d\u7684\u503c\n#define getbit(x,y)   ((x) &gt;&gt; (y)&amp;1)\n\nvoid WS2812_Send_Date(int32_t date)\n{\n  for(int i= 1;i&lt;25;i++)\n  {\n    if(getbit(date,24-i))\n      GPIO_1();\n    else\n      GPIO_0();\n  }\n}\n<\/code><\/pre>\n\n\n\n<p>\u63a5\u4e0b\u6765\u70b9\u4eae\u5404\u79cd\u989c\u8272\u8bd5\u8bd5\u5427\uff1a<\/p>\n\n\n\n<pre><code class=\"language-cpp\">#include &lt;WiFi.h&gt;\n#include &lt;math.h&gt;\n\n\/\/\u5b9a\u4e49WS2812B\u5f15\u811a\n#define RGB_PIN 27\n\n\/\/\u6307\u5b9a\u7684\u67d0\u4e00\u4f4d\u6570\u7f6e1\n#define setbit(x,y)  x|=(1&lt;&lt;y)\n\n\/\/\u6307\u5b9a\u7684\u67d0\u4e00\u4f4d\u6570\u7f6e0\n#define clrbit(x,y)  x&amp;=~(1&lt;&lt;y)\n\n\/\/\u6307\u5b9a\u7684\u67d0\u4e00\u4f4d\u6570\u53d6\u53cd\n#define reversebit(x,y)  x^=(1&lt;&lt;y)\n\n\/\/\u83b7\u53d6\u7684\u67d0\u4e00\u4f4d\u7684\u503c\n#define getbit(x,y)   ((x) &gt;&gt; (y)&amp;1)\n\n#define RED   0xFF0000\n#define GREEN 0x00FF00\n#define BLUE  0x0000FF\n#define BLACK 0x000000\n#define WHITE 0xFFFFFF\n\nvoid delay_ns(float a)\n{\n  for(int j;j&lt;(a\/2);j++)\n    NOP();\n}\n\nvoid GPIO_0()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delay_ns(300);\n  digitalWrite(RGB_PIN,LOW);\n  delayMicroseconds(1);\n}\nvoid GPIO_1()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delayMicroseconds(1);\n  digitalWrite(RGB_PIN,LOW);\n  delay_ns(300);\n}\n\nvoid WS2812_Send_Date(int32_t date)\n{\n  for(int i= 1;i&lt;25;i++)\n  {\n    if(getbit(date,24-i))\n      GPIO_1();\n    else\n      GPIO_0();\n    Serial.print(getbit(date,24-i));\n  }\n  Serial.println(\"\");\n}\n\nvoid setup(){\n  Serial.begin(115200);\n  pinMode(RGB_PIN,OUTPUT);\n  digitalWrite(RGB_PIN,LOW);\n}\n\nvoid loop(){\n  WS2812_Send_Date(RED);\n  delay(1000);\n  WS2812_Send_Date(GREEN);\n  delay(1000);\n  WS2812_Send_Date(BLUE);\n  delay(1000);\n  WS2812_Send_Date(BLACK);\n  delay(1000);\n  WS2812_Send_Date(WHITE);\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2.3.%E7%82%B9%E4%BA%AE%E5%A4%9A%E4%B8%AA%E7%81%AF%E7%8F%A0%EF%BC%8C%E5%B9%B6%E4%B8%8D%E5%90%8C%E8%AE%BE%E7%BD%AE%E9%A2%9C%E8%89%B2\">2.3.\u70b9\u4eae\u591a\u4e2a\u706f\u73e0\uff0c\u5e76\u8bbe\u7f6e\u4e0d\u540c\u989c\u8272<\/h2>\n\n\n\n<p>\u6309\u7167\u6570\u636e\u683c\u5f0f\uff0c\u6709\u51e0\u4e2a\u706f\u73e0\uff0c\u6211\u4eec\u53ea\u9700\u8981\u53d1\u9001\u51e0\u6b21\u6570\u636e\u5c31\u884c\uff0c\u6ce8\u610f\u591a\u4e2a\u706f\u73e0\u6570\u636e\u53d1\u9001\u4e0d\u53ef\u4ee5\u505c\u987f\uff0c\u8981\u4e00\u6b21\u6027\u53d1\u9001\u51fa\u53bb\uff0c\u4e0d\u7136\u706f\u73e0\u4f1a\u8ba4\u4e3a\u4f60\u53d1\u4e86\u591a\u4e2a\u5e27\u7684\u6570\u636e\u3002<\/p>\n\n\n\n<pre><code class=\"language-cpp\">#include &lt;WiFi.h&gt;\n#include &lt;math.h&gt;\n\n\/\/\u5b9a\u4e49WS2812B\u5f15\u811a\n#define RGB_PIN 27\n\n\/\/\u6307\u5b9a\u7684\u67d0\u4e00\u4f4d\u6570\u7f6e1\n#define setbit(x,y)  x|=(1&lt;&lt;y)\n\n\/\/\u6307\u5b9a\u7684\u67d0\u4e00\u4f4d\u6570\u7f6e0\n#define clrbit(x,y)  x&amp;=~(1&lt;&lt;y)\n\n\/\/\u6307\u5b9a\u7684\u67d0\u4e00\u4f4d\u6570\u53d6\u53cd\n#define reversebit(x,y)  x^=(1&lt;&lt;y)\n\n\/\/\u83b7\u53d6\u7684\u67d0\u4e00\u4f4d\u7684\u503c\n#define getbit(x,y)   ((x) &gt;&gt; (y)&amp;1)\n\n\/\/\u5b9a\u4e49\u5e38\u7528\u7684\u989c\u8272\n#define RED   0xFF0000\n#define GREEN 0x00FF00\n#define BLUE  0x0000FF\n#define BLACK 0x000000\n#define WHITE 0xFFFFFF\n\n#define RGB_NUM 64\/\/\u706f\u73e0\u6570\u76ee\n\/\/\u5982\u679c\u662fGRB\u683c\u5f0f\n\/\/#define R 1\n\/\/#define G 0\n\/\/#define B 2\n\/\/\u5982\u679c\u662fRGB\u683c\u5f0f\n#define R 0\n#define G 1\n#define B 2\nuint8_t WS2812[RGB_NUM][4];\n\nvoid delay_ns(float a)\n{\n  for(int j;j&lt;(a\/2);j++)\n    NOP();\n}\n\nvoid GPIO_0()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delay_ns(300);\n  digitalWrite(RGB_PIN,LOW);\n  delayMicroseconds(1);\n}\nvoid GPIO_1()\n{\n  digitalWrite(RGB_PIN,HIGH);\n  delayMicroseconds(1);\n  digitalWrite(RGB_PIN,LOW);\n  delay_ns(300);\n}\n\nvoid WS2812_send_date()\n{\n\tuint8_t i,j,k,a;\n\tfor(k=0;k&lt;RGB_NUM;k++)\n\t{\n\t\tfor(j=0;j&lt;3;j++)\n\t\t{\n\t\t\tswitch(j)\n\t\t\t{\n\t\t\t\tcase R:a=WS2812[k][R];break;\n\t\t\t\tcase G:a=WS2812[k][G];break;\n\t\t\t\tcase B:a=WS2812[k][B];break;\n\t\t\t}\n\t\t  for(i=1;i&lt;9;i++)\n\t\t\t{\n\t\t\t  if(getbit(a,8-i))\n          GPIO_1();\n        else\n          GPIO_0();\t\n\t\t\t}\n\t\t}\n\t}\n}\n\nvoid WS2812_colour_set(int32_t colour,uint8_t num)\n{\n  int32_t colour_buff = colour;\n  WS2812[num][R] = (colour&gt;&gt;16)&amp;0xFF;colour = colour_buff;\n  WS2812[num][G] = (colour&gt;&gt;8)&amp;0xFF;colour = colour_buff;\n  WS2812[num][B] = colour&amp;0xFF;\n}\n\nvoid setup(){\n  Serial.begin(115200);\n  pinMode(RGB_PIN,OUTPUT);\n  digitalWrite(RGB_PIN,LOW);\n}\n\nvoid loop(){\n  \/\/Serial.print(\"\u7ea2\u8272\uff1a\");\n  for(int i = 0;i&lt;RGB_NUM;i++)\n    WS2812_colour_set(RED,i);\n  WS2812_send_date();\n  \/\/Serial.printf(\"R = %d ; G = %d ; B = %d\\n\",WS2812[0][R],WS2812[0][G],WS2812[0][B]);\n  delay(1000);\n  \/\/Serial.print(\"\u7eff\u8272\uff1a\");\n  for(int i = 0;i&lt;RGB_NUM;i++)\n    WS2812_colour_set(GREEN,i);\n  WS2812_send_date();\n  \/\/Serial.printf(\"R = %d ; G = %d ; B = %d\\n\",WS2812[0][R],WS2812[0][G],WS2812[0][B]);\n  delay(1000);\n  \/\/Serial.print(\"\u84dd\u8272\uff1a\");\n  for(int i = 0;i&lt;RGB_NUM;i++)\n    WS2812_colour_set(BLUE,i);\n  WS2812_send_date();\n  \/\/Serial.printf(\"R = %d ; G = %d ; B = %d\\n\",WS2812[0][R],WS2812[0][G],WS2812[0][B]);\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"3.%E7%94%A8Arduino%E7%9A%84%E5%BA%93%E5%8E%BB%E9%A9%B1%E5%8A%A8%EF%BC%88%E6%96%B9%E4%BE%BF%E5%BE%88%E5%A4%9A%EF%BC%89\">3.\u7528ARDUINO\u7684\u5e93\u53bb\u9a71\u52a8\uff08\u65b9\u4fbf\u5f88\u591a\uff09<\/h1>\n\n\n\n<p>3.1.FASTLED\u5e93 <br>3.2. ADAFRUIT_NEOPIXEL-MASTER\u5e93 <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-center\">\u8f6c\u8f7d\u81ea: <a rel=\"noreferrer noopener\" href=\"https:\/\/www.freesion.com\/article\/1002597996\/\" target=\"_blank\">\u7070\u4fe1\u7f51<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6807\u7b7e\uff1a\u00a0Arduino \u5f00\u53d1\u6559\u7a0b\u00a0\u00a0ESP32 \u5b66\u4e60\u7b14\u8bb0 \u7248\u6743\u58f0\u660e\uff1a\u672c\u6587\u4e3aqq_&hellip;<\/p>\n","protected":false},"author":1,"featured_media":6637,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[288,147,289],"post_series":[],"_links":{"self":[{"href":"https:\/\/www.nvled.com\/index.php?rest_route=\/wp\/v2\/posts\/6633"}],"collection":[{"href":"https:\/\/www.nvled.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nvled.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nvled.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nvled.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6633"}],"version-history":[{"count":8,"href":"https:\/\/www.nvled.com\/index.php?rest_route=\/wp\/v2\/posts\/6633\/revisions"}],"predecessor-version":[{"id":6667,"href":"https:\/\/www.nvled.com\/index.php?rest_route=\/wp\/v2\/posts\/6633\/revisions\/6667"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nvled.com\/index.php?rest_route=\/wp\/v2\/media\/6637"}],"wp:attachment":[{"href":"https:\/\/www.nvled.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nvled.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nvled.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6633"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/www.nvled.com\/index.php?rest_route=%2Fwp%2Fv2%2Fpost_series&post=6633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}