Èkọ́ ESP32 12/55 - WS2812 RGB Srip 4 Project pẹ̀lú SunFounder's ESP32 IoT Learning kit
Nínú ẹ̀kọ́ yìí, a óò ṣàwárí bí a ṣe lè darí okùn LED WS2812 ní lílo microcontroller ESP32. Iṣẹ́ yìí jẹ́ kí o lè ṣẹ̀dá onírúurú àwọ̀ àti darí LED kọ̀ọ̀kan lọ́tọ̀ọ̀tọ̀, tí ó ń pèsè ọ̀nà ìdárayá àti ẹ̀wà láti kọ́ ẹ̀kọ́ nípa siseto àti ẹ̀rọ ina. Ní ìparí ẹ̀kọ́ yìí, o ó ní ètò tí ó ṣiṣẹ́ pátápátá tí ó lè yí àwọ̀ àti àwọn àpẹẹrẹ padà ní ìyára.
Ní lílo microcontroller ESP32 láti ọ̀dọ̀ SunFounder, tí ó ní agbára Wi-Fi àti Bluetooth tí a kọ́ sínú rẹ̀, a lè so okùn LED WS2812 RGB pọ̀ àti darí rẹ̀ ní ìrọ̀rùn. Ìrọ̀rùn ti okùn LED yìí ń ṣe kí àwọn ohun èlò ẹ̀dá lè ṣeéṣe, yálà fún ìmọ́lẹ̀ ọ̀ṣọ́ tàbí àwọn iṣẹ́ ẹ̀kọ́. Fún òye tí ó dára jù nípa àwọn ìgbésẹ̀ tí ó wúlò, o lè wo fídíò náà (nínú fídíò ní 00:00).
Àlàyé Ohun Èlò
Àwọn èròjà pàtàkì fún iṣẹ́ yìí ní microcontroller ESP32 àti okùn LED WS2812. ESP32 jẹ́ microcontroller alágbára tí ó lè ṣe àwọn iṣẹ́ tí ó jọ ti Arduino, ṣùgbọ́n pẹ̀lú àwọn àṣàyàn ìsopọ̀ tí a fi kún un. Ó ní ọ̀pọ̀lọpọ̀ ẹ̀yà tí ó jẹ́ kí ó lè sopọ̀ mọ́ àwọsánmọ̀, tí ó ń gbà fún ìdarí ọ̀nà jíjìn àti ìkọ́lẹ̀ data.
Okùn LED WS2812 ní àwọn LED RGB tí a lè darí lọ́kọ̀ọ̀kan, èyí tí ó túmọ̀ sí pé LED kọ̀ọ̀kan ni a lè darí láti fi àwọ̀ ọ̀tọ̀ọ̀tọ̀ hàn. Okùn náà ń ṣiṣẹ́ lórí ìlànà okùn kan ṣoṣo, tí ó ń jẹ́ kí ọ̀pọ̀lọpọ̀ LED lè so pọ̀ láìsí pàdánù didára àmì ìdánimọ̀. LED kọ̀ọ̀kan ní ẹ̀rọ ìdarí tí a kọ́ sínú rẹ̀ tí ó ń gba àmì ìdánimọ̀ tí ó wọlé àti tí ó ń fún un ní agbára fún LED tí ó tẹ̀lé e nínú ẹ̀wọ̀n náà.
Àwọn Àlàyé Datasheet
| Olùṣe | Worldsemi |
|---|---|
| Nọ́mbà apá | WS2812 |
| Folti Logic/IO | 3.5–5.3 V |
| Folti ìpèsè | 5 V |
| Ìṣàn jáde (fún ikanni kọ̀ọ̀kan) | 20 mA tí ó pọ̀ jù |
| Ìṣàn gíga (fún ikanni kọ̀ọ̀kan) | 60 mA tí ó pọ̀ jù |
| Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM | 400 Hz |
| Àwọn ìpele ìwọ̀n ìwọlé | 0.3 x VDD sí 0.7 x VDD |
| Ìrẹ̀wẹ̀sì folti / RDS(on) / ìkún | 0.5 V tí ó pọ̀ jù |
| Àwọn ìwọ̀n ooru | -25 sí 80 °C |
| Àpótí | 5050 |
| Àwọn àkíyèsí / àwọn oríṣi | A lè so pọ̀ fún àwọn okùn gígùn |
- Rí i pé ìpèsè agbára tí ó tọ́ (5 V) wà láti yẹra fún ìbàjẹ́ LED.
- Lo capacitor (100 µF) ní àwọn ibùdó ìpèsè agbára láti dín àwọn ìyípadà folti kù.
- Jẹ́ kí àwọn okùn data kúrú láti dín ìbàjẹ́ àmì ìdánimọ̀ kù.
- Ṣọ́ra fún ìwọ̀n ooru LED; rí i pé ìtúká ooru tí ó tọ́ wà.
- Ṣàkíyèsí polarity tí ó tọ́ nígbà tí o bá so agbára àti ilẹ̀ pọ̀.
- Lo resistor ìfà sókè lórí okùn data bí o bá ń lo àwọn okùn gígùn.
Àwọn Ìtọ́sọ́nà Ìsopọ̀

Láti so okùn LED WS2812 pọ̀ mọ́ ESP32, bẹ̀rẹ̀ nípa sísopọ̀ ìpèsè agbára. Okùn +5V láti okùn LED yẹ kí ó sopọ̀ mọ́ pin 5V lórí ESP32, àti okùn ilẹ̀ (GND) yẹ kí ó sopọ̀ mọ́ ọ̀kan nínú àwọn pin GND lórí ESP32.
Lẹ́yìn náà, so okùn ìwọlé data láti okùn LED pọ̀ mọ́ pin 14 lórí ESP32. Rí i pé àwọn ìsopọ̀ náà dúró ṣinṣin láti rí i pé ìgbàtí data tí ó tọ́ wà. Bí o bá ń lo ọ̀pọ̀lọpọ̀ okùn tàbí àwọn ọ̀nà jíjìn, ronú nípa lílo level shifter láti rí i pé ìmúdarí àmì ìdánimọ̀ kò bàjẹ́. Ètò yìí yóò jẹ́ kí o darí okùn LED taára láti ESP32.
Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà
Kóòdù náà ń lo ẹ̀yà Adafruit NeoPixel láti darí okùn LED WS2812. Ó bẹ̀rẹ̀ nípa ṣíṣe ìbẹ̀rẹ̀ okùn LED àti ṣíṣe àwọ̀ àkọ́kọ́ sí dúdú. Àwọn ìdámọ̀ pàtàkì nínú kóòdù náà ní LED_PIN, èyí tí ó ń ṣàlàyé pin tí ó sopọ̀ mọ́ okùn data ti okùn LED, àti NUM_LEDS, èyí tí ó ń ṣàlàyé iye àwọn LED nínú okùn náà.
#include // Fi ẹ̀yà Adafruit NeoPixel sí inú
#define LED_PIN 14 // Okùn LED NeoPixel
#define NUM_LEDS 8 // Iye àwọn LED
Nínú iṣẹ́ ìṣètò, a ń ṣe ìbẹ̀rẹ̀ okùn náà ní lílo strip.begin(), àti a ń ṣètò àwọ̀ àkọ́kọ́ sí dúdú pẹ̀lú strip.show(). Èyí ń múra okùn náà sílẹ̀ fún àwọn ìyípadà àwọ̀ nígbà tí ètò náà bá ń ṣiṣẹ́.
void setup() {
strip.begin(); // Ṣe ìbẹ̀rẹ̀ okùn NeoPixel
strip.show(); // Ṣètò àwọ̀ àkọ́kọ́ sí dúdú
}
Lúùpù àkọ́kọ́ ti ètò náà ní àwọn lúùpù for méjì. Lúùpù àkọ́kọ́ ń tan LED kọ̀ọ̀kan sí ọ̀nà ní ọ̀kọ̀ọ̀kan nípa ṣíṣètò àwọ̀ rẹ̀ àti ṣíṣe ìmúdójúìwọ̀n okùn náà. Lúùpù kejì ń pa LED kọ̀ọ̀kan ní ọ̀kọ̀ọ̀kan ní ọ̀nà kan náà. Èyí ń ṣẹ̀dá ìmọ́lẹ̀ ìṣeré tí ó rọrùn ṣùgbọ́n tí ó gbéṣẹ́.
void loop() {
// Tan àwọn LED sí ọ̀nà ní ọ̀kọ̀ọ̀kan
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // Ṣètò àwọ̀ LED kẹ̀ẹ̀kẹ̀jì sí pupa
strip.show(); // Ṣe ìmúdójúìwọ̀n okùn LED pẹ̀lú àwọn àwọ̀ tuntun
delay(100); // Dúró fún 100 milliseconds
}
// Pa àwọn LED ní ọ̀kọ̀ọ̀kan
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Ṣètò àwọ̀ LED kẹ̀ẹ̀kẹ̀jì sí dúdú (pa á)
strip.show(); // Ṣe ìmúdójúìwọ̀n okùn LED pẹ̀lú àwọn àwọ̀ tuntun
delay(100); // Dúró fún 100 milliseconds
}
}
Wo kíkó kóòdù pátápátá ní ìsàlẹ̀ àpilẹ̀kọ yìí fún àwọn àlàyé síwájú síi nípa bí a ṣe lè ṣe àwọn ipa àwọ̀ àti ìṣeré ọ̀tọ̀ọ̀tọ̀.
Ìfihàn / Ohun Tí O Lè Retí
Nigbati o ba ti pari awọn okun ati gbe koodu naa soke, o yẹ ki o ri awọn LED lori okun naa ti n tan imọlẹ ọkọọkan ni awọ kan pato, atẹle pẹlu wọn ti n pa ni ọna kanna. Eyi ṣẹda ipa "ìmọlẹ ṣiṣe". Ti awọn LED ko ba tan imọlẹ bi a ti reti, ṣayẹwo awọn asopọ okun rẹ lẹẹmeji ki o rii daju pe ipese agbara to pe. Tun rii daju pe pin ti o tọ ni a ti ṣalaye ninu koodu (ninu fidio ni 12:30).
Awọn Akoko Fidio
- 00:00 Ibẹrẹ
- 1:40 Ifihan si WS2812 LED
- 7:25 Oju-iwe iwe iṣẹ akanṣe
- 9:16 Awọ RGB ti ṣalaye
- 13:16 Asopọ okun ti ṣalaye
- 13:48 Arduino Koodu-1 ti ṣalaye
- 19:03 Yiyan bọọdi ESP32 ati Ibudo lori Arduino IDE
- 20:45 Koodu-1 Ifihan
- 22:00 Ṣiṣakoso LED kọọkan
- 24:16 Imọlẹ LED ti n rin
- 25:41 Imọlẹ lọ ati pada
#include <Adafruit_NeoPixel.h> // Include the Adafruit NeoPixel library
#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs
// Create an instance of the Adafruit_NeoPixel class
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin(); // Initialize the NeoPixel strip
strip.show(); // Set initial color to black
}
void loop() {
// Turn on LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
// Turn off LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
}
Common Course Links
Common Course Files
Ohun ti o le nilo
-
Amazon
-
eBay
-
AliExpressPurchase WS2812 LED strip from AliExpresss.click.aliexpress.com
-
AliExpressPurchase WS2812 LED strip from AliExpress-2s.click.aliexpress.com
-
BanggoodPurchase WS2812 LED strip from Banggoodbanggood.com
Orisun & itọkasi
Ko si awọn orisun sibẹsibẹ.
Fáìlìs📁
Ko si awọn faili ti o wa.