Wa Koodu

Èkọ́ ESP32 12/55 - WS2812 RGB Srip 4 Project pẹ̀lú SunFounder's ESP32 IoT Learning kit

È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.

SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422

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ọ̀

ESP32-12-WS2812-wiring

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

Aworan

ESP32-12-WS2812-wiring
ESP32-12-WS2812-wiring
ESP32-12-WS2812-schematic
ESP32-12-WS2812-schematic
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
811-ESP32 Tutorial 12/55- Arduino code for WS2812 RGB LED stripe using ESP32
Ede: C++
#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
  }
}

Ohun ti o le nilo

Orisun & itọkasi

Ko si awọn orisun sibẹsibẹ.

Fáìlìs📁

Ko si awọn faili ti o wa.