Search Code

Tutorial ESP32 12/55 - Mashruuc 4 ee WS2812 RGB Srip oo leh Qalabka Barashada ESP32 IoT ee SunFounder

Tutorial ESP32 12/55 - Mashruuc 4 ee WS2812 RGB Srip oo leh Qalabka Barashada ESP32 IoT ee SunFounder

Cashiggan, waxaan ku baran doonaa sida loo xakameeyo xariijimta LED-ga WS2812 iyadoo la adeegsanayo kontoroolka ESP32. Mashruucani wuxuu kuu ogolaanayaa inaad abuurto midabyo kala duwan oo aad xakamayso LED kasta si gooni ah, taasoo ku siinaysa hab xiiso leh oo qurux badan oo aad ku baranayso barnaamijyada iyo elektaroonigga. Markaad dhammayso casharkan, waxaad yeelan doontaa qalab si buuxda u shaqeeya oo awood u leh inuu beddelo midabada iyo qaababka si firfircoon.

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

Iyadoo la adeegsanayo kontoroolka ESP32 ee SunFounder, kaas oo leh awoodaha Wi-Fi iyo Bluetooth-ka ee ku dhex dhisan, waxaan si fudud ugu xiri karnaa oo u xakameyn karnaa xariijimta LED-ga RGB ee WS2812. Dabacsanaanta xariijimtan LED-ga ah waxay u oggolaanaysaa codsiyo hal abuur leh, haddii ay tahay iftiin qurxin ah ama mashaariic waxbarasho. Si aad u fahanto tillaabooyinka ku lug leh, waxaad tixraaci kartaa fiidiyowga (fiidiyowga 00:00).

Qalabka La Sharxay

Qaybaha ugu muhiimsan ee mashruucan waxaa ka mid ah kontoroolka ESP32 iyo xariijimta LED-ga WS2812. ESP32 waa kontorool awood badan oo qaban kara hawlo la mid ah kuwa Arduino, laakiin leh fursado xiriir oo dheeri ah. Waxay leedahay astaamo hodan ah oo u oggolaanaya inay ku xidhmaato daruuraha, taasoo u oggolaanaysa xakamayn fog iyo diiwaangelin xogeed.

Xariijimta LED-ga WS2812 waxay ka kooban tahay LED-yada RGB ee si gooni ah loo cinwaan karo, taasoo la micno ah in LED kasta la xakameyn karo si uu u muujiyo midabyo kala duwan. Xariijimtu waxay ku shaqeysaa borotokool hal silig ah, taasoo u oggolaanaysa LED-yo badan inay isku xirmaan iyada oo aan lumaynin tayada signal-ka. LED kastaa wuxuu ka kooban yahay darawal ku dhex dhisan oo qaata signal-ka soo gala oo u kordhiya LED-ka xiga ee silsiladda.

Faahfaahinta Xogta

Soo saaraha Worldsemi
Nambarka qaybta WS2812
Danabka Logic/IO 3.5–5.3 V
Danabka sahayda 5 V
Qulqulka soo-saarka (kanaal kasta) 20 mA ugu badnaan
Qulqulka ugu sarreeya (kanaal kasta) 60 mA ugu badnaan
Hagaha soo noqnoqoshada PWM 400 Hz
Heerarka xadka gelinta 0.3 x VDD ilaa 0.7 x VDD
Hoos u dhaca danabka / RDS(on) / dheregsanaanta 0.5 V ugu badnaan
Xadka kulaylka -25 ilaa 80 °C
Baakad 5050
Qoraallo / noocyo kala duwan Waa la isku xiri karaa xariijimo dheer

 

  • Hubi sahayda korantada saxda ah (5 V) si aad uga fogaato dhaawaca LED-ga.
  • Isticmaal capacitor (100 µF) oo ku xiran darafyada sahayda korantada si loo simo kor u kaca danabka.
  • Ka dhig siligyada xogta kuwa gaagaaban si loo yareeyo hoos u dhaca signal-ka.
  • Ka digtoonow heerkulka LED-ga; hubi in si fiican loo kala bixiyo kulaylka.
  • U fiirso jihooyinka saxda ah markaad ku xirayso korantada iyo dhulka.
  • Isticmaal resistor-ka kor u jiidaya ee khadka xogta haddii aad isticmaalayso xariijimo dheer.

Tilmaamaha Xiritaanka

ESP32-12-WS2812-wiring

Si aad ugu xirto xariijimta LED-ga WS2812 ee ESP32, ku bilow adigoo ku xira sahayda korantada. Siligga +5V ee xariijimta LED-ga waa in lagu xiraa binka 5V ee ESP32, siligga dhulka (GND) waa in lagu xiraa mid ka mid ah binnada GND ee ESP32.

Marka xigta, ku xir siligga gelinta xogta ee xariijimta LED-ga binka 14 ee ESP32. Hubi in xiridda ay adag tahay si loo hubiyo gudbinta xogta saxda ah. Haddii aad isticmaalayso xariijimo badan ama masaafo dheer, tixgeli inaad isticmaasho level shifter si loo hubiyo tayada signal-ka. Qalabkani wuxuu kuu oggolaanayaa inaad si toos ah u xakamayso xariijimta LED-ga ee ESP32.

Tusaalooyinka Koodhka & Sharaxaadda

Koodhku wuxuu adeegsadaa maktabadda Adafruit NeoPixel si uu u xakameeyo xariijimta LED-ga WS2812. Wuxuu ku bilaabmaa adigoo bilaabaya xariijimta LED-ga oo u dhigaya midabka bilowga ah madow. Aqoonsiyada muhiimka ah ee koodhka waxaa ka mid ah LED_PIN, kaas oo qeexaya binka ku xiran khadka xogta ee xariijimta LED-ga, iyo NUM_LEDS, kaas oo qeexaya tirada LED-yada ee xariijimta.

#include  // Ku dar maktabadda Adafruit NeoPixel

#define LED_PIN 14 // Xariijimta LED-ga NeoPixel
#define NUM_LEDS 8 // Tirada LED-yada

Hawsha setup-ka, xariijimta waxaa lagu bilaabaa iyadoo la adeegsanayo strip.begin(), waxaana lagu dhigaa midabka bilowga ah madow iyadoo la adeegsanayo strip.show(). Tani waxay u diyaarisa xariijimta isbeddelada midabka marka barnaamijku shaqeeyo.

void setup() {
  strip.begin(); // Bilaab xariijimta NeoPixel
  strip.show(); // U dhig midabka bilowga ah madow
}

Loop-ka ugu weyn ee barnaamijku wuxuu ka kooban yahay laba for loop. Loop-ka koowaad wuxuu shidi karaa LED kasta midba midka kale isagoo u dhigaya midabkiisa oo cusboonaysiinaya xariijimta. Loop-ka labaad wuxuu damiyaa LED kasta si la mid ah. Tani waxay abuurtaa animation iftiin oo fudud laakiin wax ku ool ah.

void loop() {
  // Shid LED-yada midba midka kale
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 100, 45, 0); // U dhig midabka LED-ga i-aad casaan
    strip.show(); // Cusboonaysii xariijimta LED-ga midabada cusub
    delay(100); // Sug 100 milliseken
  }
  
  // Damii LED-yada midba midka kale
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 0, 0, 0); // U dhig midabka LED-ga i-aad madow (dami)
    strip.show(); // Cusboonaysii xariijimta LED-ga midabada cusub
    delay(100); // Sug 100 milliseken
  }
}

Daawashada koodhka dhammaystiran ee hoos ku qoran maqaalka si aad u hesho faahfaahin dheeri ah oo ku saabsan sida loo hirgeliyo saamaynta midabada kala duwan iyo animations-ka.

Muuujin / Waxa Lagu Filan Karaa

Marka aad dhammeysato fiilalka oo aad kor u gasho koodka, waa inaad aragtaa LEDs-ka ku yaal xariijimaha oo mid mid u iftiimaya midab go'an, ka dibna ay damiyaan isla habkaas. Tani waxay abuurtaa saameyn "nalka ordaya". Haddii LEDs-ku aysan u iftiimin sida la filayo, laba jeer hubi isku xirka fiilalka oo hubi in korontadu ku filan tahay. Sidoo kale, xaqiiji in pin-ka saxda ah lagu qeexay koodka (fiidiyowga 12:30).

Waqtiyada Fiidiyowga

  • 00:00 Bilow
  • 1:40 Hordhac ku saabsan WS2812 LED
  • 7:25 Bogga dukumeentiga mashruuca
  • 9:16 RGB Midabka oo la sharaxay
  • 13:16 Fiilalka oo la sharaxay
  • 13:48 Arduino Code-1 oo la sharaxay
  • 19:03 Doorashada guddiga ESP32 iyo Port-ka Arduino IDE
  • 20:45 Code-1 Tusaale
  • 22:00 Xakamaynta LED-ga gaarka ah
  • 24:16 Nalka socodka LED
  • 25:41 Nalka hore iyo gadaal

Sawirro

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

Waad u baahan tahay

Kheyraadka & Tixraacyada

Wali wax kaydsan ah oo weli ma jiro.

Faylasha📁

Fayl la'aan.