فهرست مطالب:
- تدارکات
- مرحله 1: لوازم
- مرحله 2: تعیین منبع تغذیه مناسب برای LedWall شما
- مرحله 3: سیم برق
- مرحله 4: سیم کشی منبع تغذیه
- مرحله 5: اتصال به ESP32S
- مرحله 6: تغذیه نوارهای نور LED
- مرحله 7: اتصال ESP32 به نوارهای چراغ LED
- مرحله 8: آماده سازی رایانه: درایور C2102
- مرحله 9: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 1
- مرحله 10: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 2
- مرحله 11: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 3
- مرحله 12: افزودن کتابخانه ها به Arduino IDE
- مرحله 13: کد اول: Strand Test
- مرحله 14: کد نمونه SHU
- مرحله 15: بارگذاری کد در ESP32
- مرحله 16: نقل قول ها
تصویری: دیوار LED 500 با ESP32: 16 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
سلام به همه! در پایان این آموزش شما می دانید که چگونه دیوار LED خود را ایجاد کنید.
این آموزش بر اساس برنامه تابستانی ارائه شده در دانشگاه قلب مقدس است.
خوش بگذره!
تدارکات
لوازم ذکر شده در زیر.
مرحله 1: لوازم
بیایید با جمع آوری همه چیزهایی که برای تکمیل Led Wall خود نیاز داریم ، جمع آوری کنیم:
(پیوندها در 7/10/2019 ایجاد شد)
نرم افزار آردوینو IDE
میکرو کنترلر ESP32
چراغ پیکسل LED
منبع تغذیه
سیم برق
ابزار سیم کشی
کابل های جامپر Breadboard
سیم برق
مرحله 2: تعیین منبع تغذیه مناسب برای LedWall شما
یک روش ریاضی ساده برای پیدا کردن منبع تغذیه مناسب برای شما وجود دارد.
ما از قانون قدرت اهم استفاده می کنیم: P = IxV (قدرت = شدت x ولتاژ)
ولتاژ توسط led های ما تعیین می شود: در این مورد 5V.
شدت بستگی به سخت افزار دارد ، یک Led تنها 30mA مصرف می کند.
بنابراین هر نوار 50 Leds 50 * 30mA = 1250mA = 1.25A مصرف می کند.
بنابراین دیوار 500 Led ما 10 برابر (10 نوار) مصرف می کند: 12.5A.
مصرف برق پس از آن 5V x 12.5A = 62.5W برای Leds است.
البته ، در بالای Leds شما باید ESP و هر مورد دیگر از مدار خود را حساب کنید.
ما منبع تغذیه 60A داریم ، مقدار بیشتری از آنچه نیاز داریم داریم.
مرحله 3: سیم برق
منبع تغذیه ما دارای اتصالات سیم است. ما باید یک سیم برق را برای اتصال آن به یک پریز 110 ولت مناسب کنیم.
- اتصال زن را از سیم برق جدا کنید. ما قسمت مردانه را نگه می داریم ، در غیر این صورت به عنوان NEMA 5-15P شناخته می شود.
- کابل را بچسبانید تا حدود 3 میلی متر مس روی همه سیم ها قابل مشاهده باشد.
در اینجا یک آموزش ویدیویی سریع در مورد چگونگی جدا کردن سیم ها آمده است:
مرحله 4: سیم کشی منبع تغذیه
در حال حاضر ما آماده سیم کشی منبع تغذیه خود هستیم!
همیشه هنگام کار روی منبع تغذیه آن را از برق بکشید.
سیم کشی
- سیم سیاه (فاز) به پین L منبع تغذیه متصل می شود
- سیم سفید (خنثی) به پین 'N' منبع تغذیه متصل می شود
- سیم سبز به پین "Ground" منبع تغذیه متصل می شود
(اگر سیم های داخلی سیم برق شما با رنگ ما مشابه نیستند ، ایمن باشید و نقشه ها را بصورت آنلاین جستجو کنید.)
آزمایش کردن
سیم برق رایانه را به هر پریز برق وصل کنید. چراغ سبز رنگ منبع تغذیه باید روشن شود.
مرحله 5: اتصال به ESP32S
با نگاه کردن به ESP خود باید برچسب هایی در کنار هر پین وجود داشته باشد. اگر برچسب گذاری نشده است ، می توانید "pinout" ESP فردی خود را به صورت آنلاین جستجو کنید.
با استفاده از سیم بلوز نرد به زن بلوز یا سیم برق ، موارد زیر را وصل کنید:
- پین ESP32S '5V' به '+V' منبع تغذیه (نارنجی در عکس بالا)
- پین 'GND' ESP32S به بخش '-V' منبع تغذیه (سیاه در عکس بالا)
(در برخی از ESP ها ، پین "5V" به عنوان "VCC" برچسب گذاری شده است ، هر دو معنی یکسانی دارند.)
لطفاً توجه داشته باشید که ESP شما ممکن است "pinout" متفاوتی نسبت به آنچه که ما استفاده می کنیم داشته باشد. به این ترتیب ممکن است سیم های خود را به مکان متفاوتی نسبت به تصویر بالا متصل کنید. تا زمانی که به پین های صحیح وصل می شوید (5V و GND) ، مکان فیزیکی روی برد مهم نیست.
TestingPas منبع تغذیه خود را دوباره وصل کنید ، و اگر ESP شما دارای نشانگر LED باشد (اکثر آن ها) ، چراغ روشن می شود تا نشان دهد که نیرو به ESP ارسال می شود. تبریک می گویم!
مرحله 6: تغذیه نوارهای نور LED
استفاده از سیم برق:
- سیم قرمز LED Light Strip را به منبع تغذیه به V+ وصل کنید.
- سیم آبی نوار چراغ LED را به منبع تغذیه V- وصل کنید.
مرحله 7: اتصال ESP32 به نوارهای چراغ LED
ESP32 ما به راننده WS2811 متصل به هر LED رنگ و روشنایی مورد نیاز را آموزش می دهد. برای انجام این کار ، ESP32 ما به کابل "داده" به نوارها نیاز دارد.
نوارهای Leds دارای یک اتصال 3 سیم هستند:
- قرمز: قدرت- آبی- خنثی- سفید: داده
بیایید کابل نوار White Led را به یک پین دیجیتالی در ESP وصل کنیم. لطفاً شماره پین انتخاب شده را به خاطر بسپارید زیرا بعداً باید آن را در کد انتخاب کنیم. ما شماره خود را به پین 13 وصل کردیم.
مرحله 8: آماده سازی رایانه: درایور C2102
اکنون که سخت افزار ما سیم کشی شده است ، می خواهیم اولین کد خود را برای آزمایش آن بارگذاری کنیم. به طور پیش فرض ، Windows یا MacOs نمی توانند با ESP32 ما ارتباط برقرار کنند. برای انجام این کار ، ما باید "درایور" تراشه ارتباطی USB ESP را بارگیری کنیم: C2102
این درایور باید بارگیری و نصب شود:
- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:
(پیوندها از 7/10/2019)
مرحله 9: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 1
قبل از اینکه بتوانیم از ESP32 خود با نرم افزار Arduino استفاده کنیم ، باید مطمئن شویم که این نرم افزار شناخته شده است. به طور پیش فرض ، نرم افزار Arduino نمی تواند کد ESP32 ما را کامپایل کند ، بیایید آن را برطرف کنیم:
مرحله 1: افزودن تخته به مدیر
1 - در آردوینو گزینه File >> Preferences را کلیک کنید
2- در قسمت "آدرس های اضافی مدیران تابلوها" ، پیوند زیر را کپی کنید:
مرحله 10: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 2
اکنون که نرم افزار آردوینو بردهای بیشتری "می شناسد" ، اجازه دهید پشتیبانی ESP32 خود را نصب کنیم
مرحله 2: نصب پشتیبانی ESP32
1 - در منوی بالا ، گزینه: Tools >> Board >> Boards Manager را انتخاب کنید
2 - پنجره ای ظاهر می شود. برای پیدا کردن "ESP32" از کادر جستجو ، واقع در گوشه سمت راست بالا استفاده کنید.
3 - محل ایجاد شده توسط espressif را پیدا کنید. آن را نصب کنید. (تصویر را ببینید)
مرحله 11: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 3
اکنون که نرم افزار آردوینو می تواند با ESP32 ما ارتباط برقرار کند ، اجازه دهید آن را به کامپیوتر وصل کرده و بررسی کنیم که همه چیز کار می کند.
1 - اجازه دهید مطمئن شویم که روی پلت فرم ESP32 کار می کنیم:
روی Tools >> Board >> ESP32 Dev Module کلیک کنید
1- مطمئن شویم که نرم افزار آردوینو می داند چگونه با ESP ما ارتباط برقرار کند:
بر روی Tools >> Port کلیک کرده و موردی را که از اتصال این کابل ظاهر می شود انتخاب کنید.
مهم:
اگر در بارگذاری کد در ESP خود مشکلی دارید ، ابتدا آن دو منو را بررسی کنید. اگر پورت با علامت تیک انتخاب نشده باشد ، نرم افزار Arduino با آن ارتباط برقرار نمی کند.
مرحله 12: افزودن کتابخانه ها به Arduino IDE
اکنون ما قصد داریم کتابخانه ای را اضافه کنیم که به ما امکان آزمایش Led Wall را بدهد!
1- بر روی Tools >> Manage Libraries کلیک کنید.
2- در گوشه سمت راست بالا ، NeoPixelBus را جستجو کنید. "NeoPixelBus by Makuna" را پیدا کنید ، آن را نصب کنید (تصویر را ببینید)
کتابخانه های جالب دیگر احتمالی: (برای این آموزش لازم نیست)
- NeoMatrix
- FastLed
- آرت نت
- GFX
مرحله 13: کد اول: Strand Test
اولین کد ما نمونه ای از کتابخانه است.
می توانید کد زیر را کپی / جایگذاری کنید یا روی آن کلیک کنید:
فایل >> مثالها >> Adafruit NeoPixelBus >> Strandtest
لطفاً مطمئن شوید که LED_PIN خود را به پستی که برای اتصال فیزیکی led های خود استفاده می کنید تغییر دهید. ما در طول این آموزش از 13 استفاده کردیم.
همچنین مطمئن شوید که اندازه رشته را با متغیر LED_COUNT تطبیق دهید.
// یک برنامه اساسی روزانه Striptest LED.
#شامل #ifdef _AVR_ #شامل // مورد نیاز برای 16 مگاهرتز Adafruit Trinket #endif // کدام پین روی آردوینو به NeoPixels متصل است؟ #تعریف LED_PIN 13 // چند NeoPixel به آردوینو وصل شده است؟ #LED_COUNT 500 تعریف کنید // شی نوار NeoPixel خود را اعلام کنید: نوار Adafruit_NeoPixel (LED_COUNT ، LED_PIN ، NEO_GRB + NEO_KHZ800) ؛ // Argument 1 = تعداد پیکسل ها در نوار NeoPixel // Argument 2 = شماره پین آردوینو (اکثر آنها معتبر هستند) // Argument 3 = پرچم های نوع پیکسل ، در صورت نیاز به هم اضافه کنید: // NEO_KHZ800 800 KHz بیت استریم (اکثر محصولات NeoPixel w/ LED های WS2812) // NEO_KHZ400 400 کیلوهرتز (کلاسیک 'v1' (نه v2) پیکسل های FLORA ، درایورهای WS2811) // پیکسل های NEO_GRB برای جریان بیت GRB (اکثر محصولات NeoPixel) // پیکسل های NEO_RGB برای جریان RGB بیت استریم (v1 پیکسل FLORA) ، نه v2) // NEO_RGBW پیکسل ها برای RGBW bitstream (محصولات NeoPixel RGBW) // عملکرد () setup ()-یکبار در هنگام راه اندازی اجرا می شود -------------------- ------------ void setup () {// این خطوط به طور خاص برای پشتیبانی از Adafruit Trinket 5V 16 مگاهرتز است. // هر تخته دیگر ، می توانید این قسمت را حذف کنید (اما ترک آن ضرری ندارد): #اگر تعریف شده باشد (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1) ؛ #endif // END کد اختصاصی Trinket. strip.begin ()؛ // INITIALIZE NeoPixel strip object (REQUIRED) strip.show ()؛ // خاموش کردن همه پیکسل ها ASAP strip.setBrightness (50) ؛ // تنظیم BRIGHTNESS روی 1/5 (حداکثر = 255)} // تابع loop ()-تا زمانی که برد روشن است مکرراً اجرا می شود --------------- حلقه خالی () {// طول نوار را با رنگهای مختلف پر کنید … colorWipe (strip. Color (255، 0، 0)، 50)؛ // رنگ قرمز پاک کردن (نوار. رنگ (0 ، 255 ، 0) ، 50) ؛ // رنگ سبز پاک کردن (نوار. رنگ (0 ، 0 ، 255) ، 50) ؛ // آبی // یک اثر تئاتر در رنگ های مختلف انجام دهید… theaterChase (strip. Color (127 ، 127 ، 127) ، 50) ؛ // سفید ، تئاتر نیمه روشنایی Chase (نوار. رنگ (127 ، 0 ، 0) ، 50) ؛ // قرمز ، تئاتر نیمه روشنایی Chase (نوار. رنگ (0 ، 0 ، 127) ، 50) ؛ // رنگین کمان آبی ، نیمه روشن (10) ؛ // جریان چرخه رنگین کمان در طول کل strip theaterChaseRainbow (50) ؛ // Rainbow-enhanced theaterChase variant} // برخی از عملکردهای خودمان برای ایجاد جلوه های متحرک ----------------- // پیکسل های نوار را یکی پس از دیگری با رنگ پر می کنیم. نوار پاک نمی شود // اول ؛ هر چیزی در آنجا پیکسل به پیکسل پوشانده می شود. گذر در رنگ // (به عنوان یک مقدار "بسته بندی شده" 32 بیتی ، که می توانید با تماس // strip دریافت کنید. رنگ (قرمز ، سبز ، آبی) همانطور که در تابع حلقه () بالا نشان داده شده است) ، // و a زمان تأخیر (بر حسب میلی ثانیه) بین پیکسل ها. void colorWipe (uint32_t color، int wait) {for (int i = 0؛ i strip.setPixelColor (i، color)؛ // تنظیم رنگ پیکسل (در RAM) strip.show ()؛ // نوار به روز رسانی برای مطابقت با تاخیر (منتظر بمانید) ؛ // یک لحظه مکث کنید}} // چراغهای تعقیب کننده به سبک تئاتر- marquee. گذر در یک رنگ (مقدار 32 بیتی ، // a la strip. رنگ (r ، g ، b) همانطور که در بالا ذکر شد) ، و زمان تأخیر (بر حسب ms) // بین فریم ها. void theaterChase (uint32_t color، int wait) {for (int a = 0؛ a <10؛ a ++) {// 10 بار تکرار … برای (int b = 0؛ b <3؛ b ++) {// 'b' از 0 تا 2 شمارش می کند… strip.clear ()؛ // همه پیکسل های RAM را روی 0 تنظیم کنید (خاموش) // 'c' از 'b' تا انتهای نوار در مراحل 3… برای (int c = b؛ c strip.setPixelColor (c ، color) ؛ // پیکسل 'c' را روی مقدار 'color'} تنظیم کنید strip.show ()؛ // نوار به روز رسانی با تاخیر در محتویات جدید (منتظر بمانید) ؛ // یک لحظه مکث کنید}}} // چرخه رنگین کمان در طول کل نوار. زمان تأخیر را (بر حسب میلی ثانیه) بین فریم ها منتقل کنید. رنگین کمان خالی (int wait) {// رنگ اولین پیکسل 5 حلقه کامل را از طریق چرخ رنگ. // چرخ رنگ دارای محدوده 65536 است اما این است خوب اگر رو به رو شدیم ، بنابراین // فقط از 0 تا 5*65536 را حساب کنید. هر بار 256 به firstPixelHue اضافه کنید // به این معنی که ما 5*65536/256 = 1280 از این حلقه خارجی عبور می دهیم: for (long firstPixelHue = 0؛ firstPixelHue <5*65536؛ firstPixelHue += 256) {برای (int i = 0؛ I // رنگ پیکسل را به مقدار تغییر می دهم تا یک دور کامل از // چرخ رنگ (محدوده 65536) در طول نوار // (مراحل strip.numPixels ()) انجام شود: int pixelHue = firstPixelHue + (i * 65536L / strip. // در اینجا ما فقط از نوع رنگ تک آرگومان استفاده می کنیم. نتیجه // قبل از اختصاص دادن به هر پیکسل: strip.setPixelColor (i ، strip.gamma32) از طریق strip.gamma32 () برای ارائه رنگهای "واقعی تر" عبور می کند. (strip. ColorHSV (pixelHue)))؛} strip.show ()؛ // نوار به روز رسانی با تاخیر مطالب جدید (منتظر بمانید) ؛ // یک لحظه مکث کنید}} // خیمه تئاتر تقویت شده با رنگین کمان. زمان تاخیر را بگذرانید (در ms) بین فریم ها. void theaterChaseRainbow (int wait) {i nt firstPixelHue = 0؛ // پیکسل اول با رنگ قرمز شروع می شود (رنگ 0) برای (int a = 0 ؛ a <30؛ a ++) {// 30 بار تکرار … برای (int b = 0؛ b RGB strip.setPixelColor (c ، رنگ) ؛ / / پیکسل 'c' را روی مقدار 'color'} تنظیم کنید strip.show ()؛ // نوار به روز رسانی را با تاخیر مطالب جدید (منتظر بمانید) ؛ // ابتدا یک لحظه مکث کنید PixelHue += 65536 /90 ؛ // یک چرخه چرخ رنگ بیش از 90 فریم}}}
مرحله 14: کد نمونه SHU
کد ما همه Led ها را یک به یک روشن می کند تا از کارکرد آنها مطمئن شوید:
// این مثال بین نشان دادن 500 پیکسل به رنگ قرمز می چرخد
#includeconst uint16_t PixelCount = 500؛ // این مثال 4 پیکسل را فرض می کند ، کوچکتر شدن آن باعث خرابی const uint8_t PixelPin = 13 خواهد شد؛ // مطمئن شوید این را روی پین صحیح تنظیم کرده اید ، برای Esp8266 نادیده گرفته شده است
#تعریف رنگ اشباع 128 // پیکسل سه عنصر ، در ترتیب و سرعت های مختلف
نوار NeoPixelBus (PixelCount ، PixelPin) ؛
// نوار NeoPixelBus (PixelCount ، PixelPin) ؛ RgbColor قرمز (0 ، رنگ اشباع ، 0) ؛ RgbColor سبز (رنگ اشباع ، 0 ، 0) ؛ RgbColor آبی (0 ، 0 ، رنگ اشباع) ؛ Rgb رنگ سفید (رنگ اشباع) ؛ RgbColor مشکی (0) ؛ HslColor hslRed (قرمز) ؛ HslColor hslGreen (سبز) ؛ HslColor hslBlue (آبی) ؛ HslColor hsl سفید (سفید) ؛ HslColor hslBlack (سیاه) ؛ void setup () {Serial.begin (115200) while (! Serial)؛ // منتظر سریال متصل شوید Serial.println ()؛ Serial.println ("در حال راه اندازی…") ؛ Serial.flush ()؛ // این همه نئوپیکسل ها را به یک نوار حالت خاموش بازنشانی می کند. شروع ()؛ strip. Show ()؛ Serial.println ()؛ Serial.println ("در حال اجرا …") ؛ } void loop () {تاخیر (100)؛ Serial.println ("رنگهای R ، G ، B ، W …") ؛ for (int i = 0؛ i <= 499؛ i ++) {// رنگها را تنظیم کنید ، // اگر آنها به ترتیب مطابقت ندارند ، باید از نوار ویژگی NeoGrbFeature استفاده کنید. SetPixelColor (i ، قرمز) ؛ strip. () تأخیر (100) ؛ strip. SetPixelColor (i ، hslRed) ؛ strip. Show ()؛ تأخیر (100) ؛ }}
مرحله 15: بارگذاری کد در ESP32
مهم:
برای اینکه بتوانید کد را روی هر کنترلر کوچک بارگذاری کنید ، باید در حالت برنامه نویسی باشد. بیشتر این کار را به صورت خودکار انجام دهید و تنها کاری که باید انجام دهید این است که روی بارگذاری در نرم افزار کلیک کنید.
ESP32 ما از شما می خواهد که دکمه برنامه نویسی را در حین ارسال کد نگه دارید. همچنین باید پس از بارگذاری کد با فشار دادن یک بار دکمه تنظیم مجدد آن را بازنشانی کنید.
دکمه برنامه نویسی ESP32 ما در سمت چپ ، دکمه تنظیم مجدد در سمت راست قرار دارد. اگر میکرو کنترلر دیگری دارید ، به دفترچه راهنمای خود مراجعه کنید.
مرحله 16: نقل قول ها
این آموزش با کمک آموزش های زیر ساخته شده است:
randomnerdtutorials.com/installing-the-esp…
برای نصب ESP32 در Arduino IDE استفاده می شود.
نویسندگان:
ناتانیل بارون گابریل کاسترو
ویراستار:
سدریک بلیملینگ
توصیه شده:
آردوینو - ربات حل کننده ماز (MicroMouse) ربات زیر دیوار: 6 مرحله (همراه با تصاویر)
آردوینو | ربات حل کننده ماز (MicroMouse) Wall Robot: خوش آمدید من اسحاق هستم و این اولین ربات من است & quot؛ Striker v1.0 & quot؛. این ربات برای حل یک پیچ و خم ساده طراحی شده بود. در مسابقه ما دو پیچ و خم و ربات داشتیم قادر به شناسایی آنها بود. هرگونه تغییر دیگر در پیچ و خم ممکن است نیاز به تغییر در
دیوار کاشی LED تعاملی (راحت تر از آنچه به نظر می رسد): 7 مرحله (همراه با تصاویر)
دیوار کاشی LED تعاملی (راحت تر از آنچه به نظر می رسد): در این پروژه من یک صفحه دیواری LED تعاملی با استفاده از قطعات آردوینو و چاپ سه بعدی ساختم. الهام بخش این پروژه تا حدی از کاشی های Nanoleaf بود. من می خواستم نسخه شخصی خود را ارائه دهم که نه تنها مقرون به صرفه تر بود ، بلکه
پانل های روشنایی دیوار مدولار: 11 مرحله (همراه با تصاویر)
پانل های نورپردازی دیواری مدولار: من در مورد چالش روشنایی شنیدم و آن را به عنوان فرصتی برای انجام یک پروژه طولانی مد نظر دیدم. من همیشه تزئینات دیوار با نورپردازی را دوست داشتم. مفاهیم زیادی برای خرید وجود دارد ، مانند Nanoleafs. اینها معمولاً بسیار گران هستند و
ساعتی که وقتی به دیوار نگاه می کنید از دیوار می افتد: 4 قدم
ساعتی که از دیوار جدا می شوید وقتی به آن نگاه می کنید: آیا تا به حال به دنبال ساعتی بوده اید که زمان را به شما اطلاع ندهد. من هیچکدام ، اما این چیزی است که شما با قرار دادن من در قرنطینه با چند قطعه الکترونیکی و اینترنت به دست می آورید
دیوار LED مدولار چاپ سه بعدی: 6 مرحله (همراه با تصاویر)
دیوار LED مدولار چاپ سه بعدی: به این ترتیب می توان دیوار LED را با استفاده از ماژول های چاپ سه بعدی ، چراغ های 12 میلیمتری WS2812 و توپ های پینگ پنگ 38 میلی متری بسیار آسان ساخت. با این حال ، ساخت سازه ای بسیار پیچیده بود. در عوض من یک سیستم مدولار سه بعدی طراحی کردم. ابعاد هر ماژول 30x30 سانتی متر است و