Search Code

Koyarwar ESP32 12/55 - Aikin WS2812 RGB Srip 4 tare da kayan koyon ESP32 IoT na SunFounder

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.

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

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

ESP32-12-WS2812-wiring

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

Hotuna

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
Harshe: 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
  }
}

Abin da zaka iya bukata

Albarkatun da kuma shafukan da za a duba

Babu kayan aiki tukuna.

Fayiloli📁

Babu fayiloli da ake da su.