ESP32 سبق 12/55 - WS2812 RGB سٹرپ 4 پروجیکٹ سن فاؤنڈر کے ESP32 IoT لرننگ کٹ کے ساتھ
اس ٹیوٹوریل میں، ہم دریافت کریں گے کہ ESP32 مائیکروکنٹرولر کا استعمال کرتے ہوئے WS2812 LED سٹرپ کو کیسے کنٹرول کیا جائے۔ یہ پروجیکٹ آپ کو مختلف رنگ بنانے اور ہر LED کو انفرادی طور پر کنٹرول کرنے کی اجازت دیتا ہے، جو پروگرامنگ اور الیکٹرانکس سیکھنے کا ایک تفریحی اور بصری طور پر دلکش طریقہ فراہم کرتا ہے۔ اس ٹیوٹوریل کے اختتام تک، آپ کے پاس ایک مکمل فعال سیٹ اپ ہوگا جو رنگوں اور پیٹرن کو متحرک طور پر تبدیل کر سکتا ہے۔
SunFounder کے ESP32 مائیکروکنٹرولر کا استعمال کرتے ہوئے، جس میں بلٹ ان Wi-Fi اور Bluetooth صلاحیتیں ہیں، ہم WS2812 RGB LED سٹرپ کو آسانی سے جوڑ اور کنٹرول کر سکتے ہیں۔ اس LED سٹرپ کی لچک تخلیقی ایپلیکیشنز کی اجازت دیتی ہے، چاہے وہ آرائشی روشنی کے لیے ہو یا تعلیمی پروجیکٹس کے لیے۔ شامل مراحل کی بہتر تفہیم کے لیے، آپ ویڈیو (ویڈیو میں 00:00 پر) کا حوالہ دے سکتے ہیں۔
ہارڈویئر کی وضاحت
اس پروجیکٹ کے اہم اجزاء میں ESP32 مائیکروکنٹرولر اور WS2812 LED سٹرپ شامل ہیں۔ ESP32 ایک طاقتور مائیکروکنٹرولر ہے جو Arduino جیسے کام انجام دے سکتا ہے، لیکن اضافی کنیکٹیویٹی آپشنز کے ساتھ۔ اس میں خصوصیات کا ایک بھرپور سیٹ ہے جو اسے کلاؤڈ سے منسلک ہونے کے قابل بناتا ہے، جس سے ریموٹ کنٹرول اور ڈیٹا لاگنگ ممکن ہوتی ہے۔
WS2812 LED سٹرپ انفرادی طور پر ایڈریس ایبل RGB LEDs پر مشتمل ہے، جس کا مطلب ہے کہ ہر LED کو مختلف رنگ دکھانے کے لیے کنٹرول کیا جا سکتا ہے۔ سٹرپ سنگل وائر پروٹوکول پر کام کرتی ہے، جس سے متعدد LEDs کو سگنل کوالٹی کھوئے بغیر ایک ساتھ جوڑا جا سکتا ہے۔ ہر LED میں ایک بلٹ ان ڈرائیور ہوتا ہے جو ان پٹ سگنل لیتا ہے اور اسے چین میں اگلی LED کے لیے بڑھاتا ہے۔
ڈیٹاشیٹ کی تفصیلات
| مینوفیکچرر | Worldsemi |
|---|---|
| پارٹ نمبر | WS2812 |
| لاجک/IO وولٹیج | 3.5–5.3 V |
| سپلائی وولٹیج | 5 V |
| آؤٹ پٹ کرنٹ (فی چینل) | 20 mA زیادہ سے زیادہ |
| پیک کرنٹ (فی چینل) | 60 mA زیادہ سے زیادہ |
| PWM فریکوئنسی رہنمائی | 400 Hz |
| ان پٹ لاجک تھریشولڈز | 0.3 x VDD سے 0.7 x VDD |
| وولٹیج ڈراپ / RDS(on) / سیچوریشن | 0.5 V زیادہ سے زیادہ |
| تھرمل حدود | -25 سے 80 °C |
| پیکیج | 5050 |
| نوٹس / ویریئنٹس | لمبی سٹرپس کے لیے چین کیا جا سکتا ہے |
- LED کو نقصان سے بچانے کے لیے مناسب پاور سپلائی (5 V) کو یقینی بنائیں۔
- وولٹیج اسپائکس کو ہموار کرنے کے لیے پاور سپلائی ٹرمینلز پر ایک کیپسیٹر (100 µF) استعمال کریں۔
- سگنل کی کمی کو کم کرنے کے لیے ڈیٹا تاروں کو چھوٹا رکھیں۔
- LED کے درجہ حرارت سے محتاط رہیں؛ مناسب گرمی کی کھپت کو یقینی بنائیں۔
- پاور اور گراؤنڈ کو جوڑتے وقت صحیح پولیرٹی کا مشاہدہ کریں۔
- لمبی سٹرپس استعمال کرتے وقت ڈیٹا لائن پر پل اپ ریزسٹر استعمال کریں۔
وائرنگ ہدایات

WS2812 LED سٹرپ کو ESP32 سے جوڑنے کے لیے، پاور سپلائی کو جوڑ کر شروع کریں۔ LED سٹرپ کی +5V تار کو ESP32 کے 5V پن سے منسلک کیا جانا چاہیے، اور گراؤنڈ (GND) تار کو ESP32 کے کسی ایک GND پن سے منسلک کیا جانا چاہیے۔
اگلا، LED سٹرپ سے ڈیٹا ان پٹ تار کو ESP32 کے پن 14 سے جوڑیں۔ مناسب ڈیٹا ٹرانسمیشن کو یقینی بنانے کے لیے کنکشنز کو محفوظ بنائیں۔ اگر آپ متعدد سٹرپس یا لمبی دوری استعمال کر رہے ہیں، تو سگنل کی سالمیت کو یقینی بنانے کے لیے لیول شفٹر استعمال کرنے پر غور کریں۔ یہ سیٹ اپ آپ کو ESP32 سے براہ راست LED سٹرپ کو کنٹرول کرنے کی اجازت دے گا۔
کوڈ مثالیں اور واک تھرو
کوڈ WS2812 LED سٹرپ کو کنٹرول کرنے کے لیے Adafruit NeoPixel لائبریری استعمال کرتا ہے۔ یہ LED سٹرپ کو انیشیالائز کرکے اور ابتدائی رنگ کو سیاہ پر سیٹ کرکے شروع ہوتا ہے۔ کوڈ میں اہم شناخت کنندگان میں LED_PIN شامل ہے، جو LED سٹرپ کی ڈیٹا لائن سے منسلک پن کی وضاحت کرتا ہے، اور NUM_LEDS، جو سٹرپ میں LEDs کی تعداد بتاتا ہے۔
#include // Adafruit NeoPixel لائبریری شامل کریں
#define LED_PIN 14 // NeoPixel LED سٹرپ
#define NUM_LEDS 8 // LEDs کی تعداد
سیٹ اپ فنکشن میں، سٹرپ کو strip.begin() کا استعمال کرتے ہوئے انیشیالائز کیا جاتا ہے، اور ابتدائی رنگ strip.show() کے ساتھ سیاہ پر سیٹ کیا جاتا ہے۔ یہ پروگرام چلنے پر رنگ تبدیلیوں کے لیے سٹرپ کو تیار کرتا ہے۔
void setup() {
strip.begin(); // NeoPixel سٹرپ کو انیشیالائز کریں
strip.show(); // ابتدائی رنگ سیاہ پر سیٹ کریں
}
پروگرام کا مرکزی لوپ دو for لوپس پر مشتمل ہے۔ پہلا لوپ ہر LED کو ایک ایک کرکے اس کا رنگ سیٹ کرکے اور سٹرپ کو اپڈیٹ کرکے آن کرتا ہے۔ دوسرا لوپ اسی طریقے سے ہر LED کو بند کرتا ہے۔ یہ ایک سادہ لیکن مؤثر روشنی اینیمیشن بناتا ہے۔
void loop() {
// LEDs کو ایک ایک کرکے آن کریں
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // i-th LED کا رنگ سرخ پر سیٹ کریں
strip.show(); // نئے رنگوں کے ساتھ LED سٹرپ کو اپڈیٹ کریں
delay(100); // 100 ملی سیکنڈ انتظار کریں
}
// LEDs کو ایک ایک کرکے بند کریں
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // i-th LED کا رنگ سیاہ پر سیٹ کریں (اسے بند کریں)
strip.show(); // نئے رنگوں کے ساتھ LED سٹرپ کو اپڈیٹ کریں
delay(100); // 100 ملی سیکنڈ انتظار کریں
}
}
مختلف رنگ اثرات اور اینیمیشنز کو لاگو کرنے کے بارے میں مزید تفصیلات کے لیے مضمون کے نیچے مکمل کوڈ لوڈنگ دیکھیں۔
ڈیمونسٹریشن / کیا توقع کریں
ایک بار جب آپ وائرنگ مکمل کر لیں اور کوڈ اپ لوڈ کر لیں، تو آپ کو اسٹرپ پر ایل ای ڈیز کو ایک مخصوص رنگ میں ایک ایک کر کے روشن ہوتے دیکھنا چاہیے، اور پھر اسی ترتیب میں ان کا بند ہونا۔ یہ ایک "رننگ لائٹ" اثر پیدا کرتا ہے۔ اگر ایل ای ڈیز توقع کے مطابق روشن نہ ہوں، تو اپنی وائرنگ کنکشنز کو دوبارہ چیک کریں اور یقینی بنائیں کہ پاور سپلائی مناسب ہے۔ نیز، تصدیق کریں کہ کوڈ میں صحیح پن کی وضاحت کی گئی ہے (ویڈیو میں 12:30 پر)۔
ویڈیو ٹائم اسٹیمپس
- 00:00 آغاز
- 1:40 WS2812 ایل ای ڈی کا تعارف
- 7:25 پروجیکٹ دستاویزات کا صفحہ
- 9:16 آر جی بی رنگ کی وضاحت
- 13:16 وائرنگ کی وضاحت
- 13:48 آردوینو کوڈ-1 کی وضاحت
- 19:03 آردوینو آئی ڈی ای پر ای ایس پی 32 بورڈ اور پورٹ کا انتخاب
- 20:45 کوڈ-1 ڈیمو
- 22:00 انفرادی ایل ای ڈی کو کنٹرول کرنا
- 24:16 چلتی ہوئی لائٹ ایل ای ڈی
- 25:41 آگے پیچھے لائٹ
#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
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزون
-
ای بے
-
علی ایکسپریسPurchase WS2812 LED strip from AliExpresss.click.aliexpress.com
-
علی ایکسپریسPurchase WS2812 LED strip from AliExpress-2s.click.aliexpress.com
-
بینگوڈPurchase WS2812 LED strip from Banggoodbanggood.com
وسائل اور حوالہ جات
ابھی تک کوئی وسائل نہیں۔
فائلیں📁
کوئی فائلیں دستیاب نہیں ہیں۔