Koyarwar ESP32 12/55 - Aikin WS2812 RGB Srip 4 tare da kayan koyon ESP32 IoT na SunFounder
A cikin wannan koyawa, za mu bincika yadda ake sarrafa tsiri na LED WS2812 ta amfani da microcontroller na ESP32. Wannan aikin yana ba ka damar ƙirƙirar launuka iri-iri da sarrafa kowane LED daban, yana ba da hanya mai daɗi da kyan gani don koyon shirye-shirye da kuma ilimin lantarki. A ƙarshen wannan koyawa, za ka sami tsari mai cikakken aiki wanda zai iya canza launuka da tsari a hankali.
Ta amfani da microcontroller na ESP32 daga SunFounder, wanda ke da damar Wi-Fi da Bluetooth a ciki, za mu iya haɗawa da sarrafa tsiri na LED WS2812 RGB cikin sauƙi. Sassauƙin wannan tsiri na LED yana ba da damar aikace-aikace masu ƙirƙira, ko don hasken ado ko ayyukan ilimi. Don ƙarin fahimtar matakan da suka shafi, za ka iya koma ga bidiyon a (a cikin bidiyo a 00:00).
Kayan Aiki Da Aka Bayyana
Babban abubuwan da suka haɗa wannan aikin sun haɗa da microcontroller na ESP32 da tsiri na LED WS2812. ESP32 microcontroller ne mai ƙarfi wanda zai iya yin ayyuka kamar na Arduino, amma tare da ƙarin zaɓuɓɓukan haɗi. Yana da tarin fasaloli waɗanda ke ba shi damar haɗawa da cloud, yana ba da damar sarrafawa daga nesa da kuma rubuta bayanai.
Tsiri na LED WS2812 ya ƙunshi LEDs na RGB waɗanda ake iya magance su daban, wanda ke nufin kowane LED za a iya sarrafa shi don nuna launuka daban-daban. Tsiri yana aiki akan tsarin waya guda ɗaya, yana ba da damar haɗa LEDs da yawa ba tare da rasa ingancin sigina ba. Kowane LED yana ƙunshe da direba mai ginawa wanda ke ɗaukar sigina mai shigowa kuma ya ƙara shi don LED na gaba a cikin sarkar.
Cikakkun Bayanai na Datasheet
| Mai ƙirƙira | Worldsemi |
|---|---|
| Lambar sashi | WS2812 |
| Wutar Logic/IO | 3.5–5.3 V |
| Wutar samarwa | 5 V |
| Fitar da wutar (kowane tashar) | 20 mA max |
| Kololuwar wutar (kowane tashar) | 60 mA max |
| Jagorar mitar PWM | 400 Hz |
| Matsakaicin shigar da logic | 0.3 x VDD zuwa 0.7 x VDD |
| Ragewar wutar / RDS(on) / saturation | 0.5 V max |
| Iyakokin zafi | -25 zuwa 80 °C |
| Kunshin | 5050 |
| Bayanan kula / bambance-bambance | Ana iya haɗa shi don tsiri masu tsawo |
- Tabbatar da samar da wutar da ta dace (5 V) don guje wa lalacewar LED.
- Yi amfani da capacitor (100 µF) a kan tashoshin wutar don daidaita hawan wutar.
- Ka gajarta wayoyin bayanai don rage raguwar sigina.
- Yi hattara da zafin LED; tabbatar da ingantaccen watsar zafi.
- Ka lura da daidaitaccen polarity lokacin haɗa wutar da ƙasa.
- Yi amfani da resistor na pull-up akan layin bayanai idan kana amfani da tsiri masu tsawo.
Umarnin Haɗin Waya

Don haɗa tsiri na LED WS2812 zuwa ESP32, fara da haɗa samar da wutar. Wayar +5V daga tsiri na LED ya kamata a haɗa shi zuwa pin 5V akan ESP32, kuma wayar ƙasa (GND) ya kamata a haɗa shi zuwa ɗaya daga cikin pins na GND akan ESP32.
Na gaba, haɗa wayar shigar da bayanai daga tsiri na LED zuwa pin 14 akan ESP32. Tabbatar cewa haɗin suna da aminci don tabbatar da ingantaccen watsa bayanai. Idan kana amfani da tsiri da yawa ko nisa mai tsawo, yi la'akari da amfani da level shifter don tabbatar da ingancin sigina. Wannan tsari zai ba ka damar sarrafa tsiri na LED kai tsaye daga ESP32.
Misalan Code & Bayani
Code ɗin yana amfani da library na Adafruit NeoPixel don sarrafa tsiri na LED WS2812. Yana farawa da fara tsiri na LED da saita launi na farko zuwa baƙi. Maɓallan da ke cikin code ɗin sun haɗa da LED_PIN, wanda ke bayyana pin da aka haɗa zuwa layin bayanai na tsiri na LED, da NUM_LEDS, wanda ke ƙayyade adadin LEDs a cikin tsiri.
#include // Haɗa library na Adafruit NeoPixel
#define LED_PIN 14 // Tsiri na NeoPixel LED
#define NUM_LEDS 8 // Adadin LEDs
A cikin aikin setup, ana fara tsiri ta amfani da strip.begin(), kuma ana saita launi na farko zuwa baƙi tare da strip.show(). Wannan yana shirya tsiri don canza launuka lokacin da shirin ke gudana.
void setup() {
strip.begin(); // Fara tsiri na NeoPixel
strip.show(); // Saita launi na farko zuwa baƙi
}
Babban madauki na shirin ya ƙunshi madaukai biyu na for. Madauki na farko yana kunna kowane LED ɗaya bayan ɗaya ta hanyar saita launinsa da sabunta tsiri. Madauki na biyu yana kashe kowane LED a hanya ɗaya. Wannan yana ƙirƙirar motsi mai sauƙi amma mai tasiri na haske.
void loop() {
// Kunna LEDs ɗaya bayan ɗaya
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // Saita launi na i-th LED zuwa ja
strip.show(); // Sabunta tsiri na LED tare da sabbin launuka
delay(100); // Jira milliseconds 100
}
// Kashe LEDs ɗaya bayan ɗaya
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Saita launi na i-th LED zuwa baƙi (kashe shi)
strip.show(); // Sabunta tsiri na LED tare da sabbin launuka
delay(100); // Jira milliseconds 100
}
}
Kalli cikakken code ɗin da aka ɗora a ƙasan labarin don ƙarin bayani kan yadda ake aiwatar da tasirin launuka daban-daban da motsi.
Nuni / Abin Da Za Ka Yi Tsammani
Da zar ka gama wayoyin kuma ka loda lambar, ya kamata ka ga LEDs a kan tsiri suna haskakawa daya bayan daya a cikin launi da aka kayyade, sannan su kashe a cikin tsari iri daya. Wannan yana haifar da tasirin "haske mai gudu". Idan LEDs basu haskaka ba kamar yadda ake tsammani, sake duba haɗin wayoyinka kuma ka tabbatar da cewa samar da wutar lantarki ya isa. Haka kuma, tabbatar da cewa an ayyana pin din da ya dace a cikin lambar (a cikin bidiyo a 12:30).
Lokutan Bidiyo
- 00:00 Farawa
- 1:40 Gabatarwa ga WS2812 LED
- 7:25 Shafin takardun aikin
- 9:16 Bayanin Launi RGB
- 13:16 Bayanin wayoyi
- 13:48 Bayanin Arduino Code-1
- 19:03 Zaɓin allo na ESP32 da Port akan Arduino IDE
- 20:45 Nunin Code-1
- 22:00 Sarrafa kowane LED
- 24:16 LED mai haske mai tafiya
- 25:41 Haske na gaba da baya
#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
Abin da zaka iya bukata
-
Amazon
-
eBay
-
AliExpressPurchase WS2812 LED stripe from AliExpresss.click.aliexpress.com
-
AliExpressPurchase WS2812 LED stripe from AliExpress-2s.click.aliexpress.com
-
BanggoodPurchase WS2812 LED stripe from Banggoodbanggood.com
Albarkatun da kuma shafukan da za a duba
Babu kayan aiki tukuna.
Fayiloli📁
Babu fayiloli da ake da su.