د ESP32 ټیوټوریل 31/55 - د خنډ څخه د مخنیوي سره د LED پټې پروژه | د SunFounder د ESP32 IoT زده کړې کټ
په دې ټیوټوریل کې، موږ به د ESP32 مایکروکنټرولر او د WS2812 LED پټي په کارولو سره یو پروژه جوړه کړو چې کولی شي د خنډ کشف کولو پر بنسټ خپل لوري بدل کړي. کله چې د LED پټه مخ په وړاندې حرکت کوي، دا به تصادفي رنګونه ښکاره کړي، او د خنډ په کشف کولو سره، دا به یو ټاکلی رنګ ته واړوي او لوري به بیرته راولي. دا پروژه د ESP32 وړتیاوې د انفراریډ خنډ مخنیوي سینسر سره په ګډه ښیې.
د دې ټیوټوریل په اوږدو کې، موږ به اړین هارډویر اجزا، د تارونو نښلولو لارښوونې، او هغه کوډ پوښو چې د دې پروژې د ژوندي کولو لپاره اړین دی. د لا زیات بصري توضیح لپاره، ډاډ ترلاسه کړئ چې لاندې تړل شوی ویډیو وګورئ (په ویډیو کې په 00:00 کې).
هارډویر تشریح شوی
دا پروژه څو اجزاو ته اړتیا لري، پشمول د ESP32 مایکروکنټرولر، د WS2812 LED پټه، او د انفراریډ خنډ مخنیوي سینسر. ESP32 یو پیاوړی مایکروکنټرولر دی چې په جوړ شوي Wi-Fi او بلوتوت باندې برخمن دی، چې دا د IoT غوښتنلیکونو لپاره مناسب کوي. د WS2812 LED پټه یو برنامه کیدونکی RGB LED پټه ده چې د هر LED انفرادي کنټرول ته اجازه ورکوي، موږ ته دا وړتیا راکوي چې متحرک رڼا اغیزې رامینځته کړو.
د انفراریډ خنډ مخنیوي سینسر د انفراریډ رڼا په خپرولو او د نږدې شیانو څخه د انعکاس په کشف کولو سره کار کوي. کله چې یو خنډ کشف شي، سینسر خپل محصول حالت بدلوي، چې ESP32 ته اجازه ورکوي چې د LED پټي چلند په بدلولو سره په مطابق ځواب ووایی.
ډیټاشیټ تفصیلات
| جوړونکی | WS2812B |
|---|---|
| د پرزې شمېره | WS2812B |
| منطق/IO ولټاژ | 3.3 V (عادي) |
| د برېښنا رسولو ولټاژ | 5 V (عادي) |
| د محصول جریان (په هر چینل) | 20 mA (اعظمي) |
| د لوړ جریان (په هر چینل) | 60 mA (اعظمي) |
| د PWM فریکونسي لارښود | 400 Hz (عادي) |
| د منطق داخلیدو حدونه | 0.3 Vcc (لوړ)، 0.1 Vcc (ټیټ) |
| د ولټاژ کمښت / RDS(on) / سنتریشن | 1.2 V (اعظمي) |
| حرارتي حدونه | 85 °C (اعظمي) |
| بسته بندي | سطحې نصب |
| یادښتونه / ډولونه | په مختلفو اوږدوالیو او کثافتونو کې شتون لري |
- ډاډ ترلاسه کړئ چې د LED پټه د غوره فعالیت لپاره د 5 V سره بریښنا کیږي.
- د ډیټا پن لپاره یو مناسب ریزسټر وکاروئ ترڅو د سیګنال بشپړتیا ستونزو مخه ونیسئ.
- د ډیر تودوخې مخنیوي لپاره د محصول جریان محدودیتونو څخه محتاط اوسئ.
- د ولټاژ سپیکونو مخنیوي لپاره د برېښنا رسولو په سمه توګه جلا کړئ.
- د مطلوب کشف حد ترلاسه کولو لپاره د انفراریډ سینسر په احتیاط سره تنظیم کړئ.
د تارونو نښلولو لارښوونې

د اجزاو د تارونو نښلولو لپاره، د انفراریډ خنډ مخنیوي سینسر سره پیل وکړئ. د سینسر د محصول پن په ESP32 کې پن 25 سره وصل کړئ. منځنی پن باید ځمکې سره وصل شي، او وروستی پن (VCC) باید د 3.3 V برېښنا سرچینې سره وصل شي.
بیا، د WS2812 LED پټي لپاره، د ډیټا پن (معمولا ژیړ تار) په ESP32 کې پن 14 سره وصل کړئ. سور تار باید د 5 V برېښنا سرچینې سره وصل شي، او تور تار باید ځمکې سره وصل شي. ډاډ ترلاسه کړئ چې ټولې اړیکې په سمه توګه خوندي کړئ ترڅو د نرم تارونو مخه ونیسئ.
د کوډ مثالونه او لارښود
دلته د هغه کوډ لنډه کتنه ده چې دا پروژه پرمخ وړي. لومړی، موږ د LED پټي کې د پکسلونو شمېر او د اړیکو لپاره کارول شوی ډیټا پن تعریف کوو:
#define NUM_PIXELS 8
#define DATA_PIN 14
په setup() فنکشن کې، موږ د LED پټه او انفراریډ سینسر پیل کوو:
void setup() {
pixels.begin();
pinMode(AVOID_PIN, INPUT_PULLUP);
uint32_t color = pixels.Color(random(256), random(256), random(256));
pixels.fill(color);
pixels.show();
}
په loop() فنکشن کې، موږ ګورو چې ایا یو خنډ کشف شوی او د LED پټه په مطابق کنټرول کوو:
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
} else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
دا کوډ د LED پټي ته اجازه ورکوي چې کله مخ په وړاندې حرکت کوي تصادفي رنګونه ښکاره کړي او کله چې یو خنډ کشف شي لوري بدل کړي. بشپړ کوډ د مقالې لاندې بار کیږي، نو ډاډ ترلاسه کړئ چې د ټولو تفصیلاتو لپاره یې وګورئ.
ښودنه / څه تمه وکړو
کله چې تنظیم بشپړ شي او کوډ پورته شي، د LED پټه باید مخ په وړاندې حرکت کولو په وخت کې تصادفي رنګونه ښکاره کړي. کله چې یو خنډ کشف شي، پټه به یو ټاکلی رنګ (لکه شین) ته واړوي او لوري به بیرته راولي. که خنډ لرې شي، پټه به د تصادفي رنګونو سره مخ په وړاندې حرکت بیا پیل کړي. په یاد ولرئ چې د انفراریډ سینسر کشف حد ممکن د کارول شوي برېښنا رسولو پر بنسټ توپیر ولري (په ویډیو کې په 10:30 کې).
د ویډیو وخت نښې
- 00:00 پیل
- 2:14 د پروژې پېژندنه
- 4:58 د تارونو اړیکه تشریح شوې
- 7:41 د خنډ مخنیوي سینسر تنظیمول
- 10:03 د آردوینو کوډ تشریح شوی
- 15:40 د ESP32 بورډ او COM پورټ په آردوینو IDE کې غوره کول
- 17:22 پروژه 1: ننداره
- 18:18 د بیرته راستنیدونکي رنګ بدلول
#include <Adafruit_NeoPixel.h>
// Set the number of pixels for the running light
#define NUM_PIXELS 8
// Set the data pin for the RGB LED strip
#define DATA_PIN 14
// Initialize the RGB LED strip object
Adafruit_NeoPixel pixels(NUM_PIXELS, DATA_PIN, NEO_GRB + NEO_KHZ800);
// Initialize the avoid sensor
#define AVOID_PIN 25
void setup() {
// Initialize the RGB LED strip
pixels.begin();
// Initialize the avoid sensor
pinMode(AVOID_PIN, INPUT_PULLUP);
// Set the initial LED color
uint32_t color = pixels.Color(random(256), random(256), random(256));
pixels.fill(color);
pixels.show();
}
void loop() {
// Read the input from the infrared sensor
bool avoid_value = digitalRead(AVOID_PIN);
// Generate a random color for the current pixel
uint32_t color = pixels.Color(random(256), random(256), random(256));
// If no obstacle is detected
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
// Turn on the current pixel with the random color
pixels.setPixelColor(i, color);
// Update the RGB LED strip display
pixels.show();
// Turn off the current pixel
pixels.setPixelColor(i, 0);
delay(100);
}
}
// If detects an obstacle, change the direction of the LED strip
else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
}
Common Course Links
Common Course Files
سرچینې او حوالې
-
اسنادESP32 Tutorial 31/55 - SunFounder doc page for flowing lightdocs.sunfounder.com
فایلونه📁
هیڅ فایل شتون نلري.