Mündəricat:

ESP32 ilə 500 LED Divar: 16 addım
ESP32 ilə 500 LED Divar: 16 addım

Video: ESP32 ilə 500 LED Divar: 16 addım

Video: ESP32 ilə 500 LED Divar: 16 addım
Video: ESP32-S3 + Camera Module(OV2640) + LTE Module(SIM7600G-H) 2024, Noyabr
Anonim
ESP32 ilə 500 LED Divar
ESP32 ilə 500 LED Divar

Hər kəsə salam! Bu dərsliyin sonunda öz LED divarınızı necə quracağınızı öyrənəcəksiniz.

Bu dərslik Müqəddəs Ürək Universitetində təqdim olunan bir yay proqramına əsaslanır.

Əylənin!

Təchizat

Aşağıda sadalanan təchizatlar.

Addım 1: Təchizat

Təchizat
Təchizat

Led Divarımızı tamamlamaq üçün lazım olan hər şeyi toplayaraq başlayaq:

(Bağlantılar 7/10/2019 tarixində yaradılmışdır)

Arduino IDE proqramı

ESP32 mikro nəzarətçi

LED piksel işığı

Enerji təchizatı

Güc Kabeli

Tel Soyma Aləti

Çörək Paneli Jumper Kabelləri

Elektrik teli

Addım 2: LedWall üçün Doğru Güc Təchizatının Müəyyən edilməsi

Hansı enerji təchizatının sizin üçün ən uyğun olduğunu öyrənməyin sadə bir riyazi yolu var.

Ohm güc qanunu istifadə edirik: P = IxV (Güc = İntensivlik x Gerilim)

Gərginlik ledlərimiz tərəfindən müəyyən edilir: bu halda 5V.

Gərginlik aparatdan asılıdır, tək Led 30mA istehlak edir.

50 Ledin hər bir şeridi 50 x 30mA = 1250mA = 1.25A istehlak edir.

500 Led divarımız buna görə 10 qat daha çox istehlak edir (10 zolaq): 12.5A.

Güc istehlakı daha sonra Ledlər üçün 5V x 12.5A = 62.5W təşkil edir.

Əlbəttə ki, Ledlərin üstündə ESP və dövrənizin hər bir elementini hesablamalısınız.

60A güc mənbəyimiz var, ehtiyacımızdan çox şey var.

Addım 3: Güc Kabeli

Image
Image

Güc qaynağımız tel bağlayıcılarla gəlir. Güc kabelini 110V -luq bir fişə bağlamaq üçün uyğunlaşdırmalıyıq.

- Dişi konnektoru elektrik kabelindən kəsin. Kişi hissəsini saxlayacağıq, əks halda NEMA 5-15P olaraq bilinir.

- Kabelini soyun ki, bütün tellərdə təxminən 3 mm mis görünsün.

Telləri necə çıxarmaq barədə qısa bir video təlimatı:

Addım 4: Güc Təchizatını Bağlamaq

ESP32S -ə qoşulma
ESP32S -ə qoşulma

İndi enerji təchizatımızı bağlamağa hazırıq!

Həmişə işləyərkən elektrik enerjisini ayırın.

Kablolama

  • Qara tel (Faza) enerji təchizatının 'L' pininə qoşulur
  • Ağ tel (Neytral) enerji təchizatının 'N' pininə qoşulur
  • Yaşıl tel enerji təchizatının 'Ground' pininə qoşulur

(Elektrik kabelinizin daxili telləri bizimki ilə eyni rəngdə deyilsə, təhlükəsiz olun və onlayn sxemlərə baxın.)

Test

Kompüterin elektrik kabelini istənilən elektrik prizinə qoşun. Enerji təchizatında yaşıl LED yanmalıdır.

Addım 5: ESP32S -ə qoşulma

ESP -yə baxarkən, hər bir pinin yanında etiketlər olmalıdır. Əgər etiketlənməyibsə, fərdi ESP -nin "pinoutunu" onlayn olaraq axtara bilərsiniz.

Kişi -qadın çörək taxtası tullanan tel və ya elektrik telindən istifadə edərək aşağıdakıları bağlayın:

  • '5V' ESP32S pinini enerji təchizatının '+V' nöqtəsinə bağlayın (yuxarıdakı fotoda narıncı)
  • 'GND' ESP32S enerji təchizatının '-V' hissəsinə pin (yuxarıdakı fotoda qara)

(Bəzi ESP -lərdə '5V' pin 'VCC' olaraq etiketlənir, hər ikisi eyni şeyi ifadə edir.)

Nəzərə alın ki, ESP -də istifadə etdiyimizdən fərqli bir "pinout" ola bilər. Belə ki, tellərinizi yuxarıdakı şəkildəkindən fərqli bir yerə bağlaya bilərsiniz. Doğru pinlərə (5V və GND), lövhədəki fiziki yerin əhəmiyyəti yoxdur.

Yenidən enerji təchizatını bağlayın və ESP -də bir LED göstəricisi varsa (əksəriyyəti bunu göstərir), gücün ESP -ə göndərildiyini göstərmək üçün yanacaq. Təbrik edirik!

Addım 6: LED İşıq Şeritlərini Gücləndirin

LED İşıq Şeritlərinin Gücləndirilməsi
LED İşıq Şeritlərinin Gücləndirilməsi

Elektrik naqillərindən istifadə:

- LED İşıq Şeridinin qırmızı telini enerji təchizatı üzərindəki V+ -ya qoşun.

- LED İşıq Şeridinin mavi telini enerji təchizatı üzərindəki V-yə qoşun.

Addım 7: ESP32 -ni LED işıq şeridlərinə bağlayın

ESP32, hər bir LED -ə bağlı olan WS2811 sürücüsünə lazım olan rəng və parlaqlıq göstərişini verir.

Leds şeritləri 3 telli bağlayıcı ilə gəlir:

- Qırmızı: Güc- Mavi: Neytral- Ağ: Məlumat

White Led şerit kabelini ESP üzərindəki rəqəmsal bir pinlə bağlayaq. Zəhmət olmasa kodda seçməyimiz lazım olduğu üçün seçilmiş PIN nömrəsini unutmayın.

Addım 8: Kompüterin Hazırlanması: C2102 Sürücüsü

İndi donanımımız telli olduğundan, test etmək üçün ilk kodumuzu yükləmək istəyirik. Varsayılan olaraq, Windows və ya MacO -lar ESP32 ilə əlaqə qura bilmir. Bunu etmək üçün ESP USB ünsiyyət çipi üçün "sürücü" yükləməliyik: C2102.

Bu sürücü yüklənməli və quraşdırılmalıdır:

- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:

(Bağlantılar 10.07.2019 tarixindən etibarən)

Addım 9: Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 1

Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 1
Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 1
Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 1
Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 1

Arduino proqramı ilə ESP32 -dən istifadə etməzdən əvvəl onun tanındığından əmin olmalıyıq. Varsayılan olaraq, Arduino proqramı ESP32 -in kodunu tərtib edə bilmir, bunu düzəldək:

Addım 1: Menecerə lövhələr əlavə edin

1 - Arduino -da Fayl >> Tercihlər seçimini vurun

2- "Əlavə Panolar Meneceri URL'leri" sahəsində aşağıdakı linki kopyalayın:

Addım 10: Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 2

Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 2
Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 2
Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 2
Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 2

İndi Arduino proqramı daha çox lövhəni "tanıyır", ESP32 dəstəyimizi quraşdıraq

Addım 2: ESP32 dəstəyinin quraşdırılması

1 - Üst menyuda seçin: Alətlər >> Lövhə >> Lövhələr Meneceri

2 - Bir pəncərə görünəcək. "ESP32" tapmaq üçün sağ üst köşedeki axtarış qutusundan istifadə edin.

3 - espressifin hazırladığını tapın. Quraşdırın. (Şəkilə baxın)

Addım 11: Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 3

Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 3
Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 3

İndi Arduino proqramı ESP32 ilə əlaqə qura biləcəyi üçün onu kompüterə bağlayaq və hər şeyin işlədiyini yoxlayaq.

1 - ESP32 platformasında işlədiyimizdən əmin olaq:

Alətlər >> İdarə Heyəti >> ESP32 Dev Moduluna basın

1- Arduino proqramının ESP ilə necə əlaqə quracağını bildiyinə əmin olaq:

Alətlər >> Limana vurun və bu kabeli bağlayandan sonra açılan birini seçin.

Vacib:

Kodu ESP -yə yükləməklə bağlı hər hansı bir probleminiz varsa, əvvəlcə bu iki menyunu yoxlayın. Liman onay işareti ilə seçilməyibsə, Arduino proqramı onunla əlaqə qurmayacaq.

Addım 12: Arduino IDE -yə Kitabxanalar əlavə edin

Kitabxanaların Arduino IDE -yə əlavə edilməsi
Kitabxanaların Arduino IDE -yə əlavə edilməsi

İndi Led Divarımızı sınamağa imkan verəcək bir kitabxana əlavə edəcəyik!

1- Alətlər >> Kitabxanaları İdarə et düyməsini vurun.

2- Sağ üst küncdə NeoPixelBus axtarın. "NeoPixelBus by Makuna" tapın, quraşdırın (şəklə baxın)

Potensial digər maraqlı kitabxanalar: (Bu dərs üçün lazım deyil)

- NeoMatrix

- FastLed

- Artnet

- GFX

Addım 13: Birinci Kod: Strand Testi

İlk kodumuz Kitabxanadan bir nümunədir.

Aşağıdakı kodu kopyalaya / yapışdıra və ya vura bilərsiniz:

Fayl >> Nümunələr >> Adafruit NeoPixelBus >> Strandtest

Zəhmət olmasa, LED_PIN -inizi LED -lərinizi fiziki olaraq bağlamaq üçün istifadə etdiyinizə dəyişdirdiyinizə əmin olun. Bu dərsdə 13 istifadə etdik.

İpin ölçüsünü LED_COUNT dəyişən ilə uyğunlaşdırdığınızdan əmin olun.

// Əsas gündəlik LED Striptest proqramı.

#include #ifdef _AVR_ #include // 16 MHz Adafruit Biblo #endif üçün tələb olunur // Arduino -da hansı pin NeoPixel -ə bağlıdır? #define LED_PIN 13 // Arduino -ya neçə NeoPixel qoşulub? #define LED_COUNT 500 // NeoPixel şerit obyektimizi elan edin: Adafruit_NeoPixel şeridi (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Arqument 1 = NeoPixel şeridindəki piksellərin sayı // Arqument 2 = Arduino pin nömrəsi (əksəriyyəti etibarlıdır) // Arqument 3 = Piksel tipli bayraqlar, lazım olduqda əlavə edin: // NEO_KHZ800 800 KHz bit axını (əksər NeoPixel məhsulları/ WS2812 LEDləri) // NEO_KHZ400 400 KHz (klassik 'v1' (v2 deyil) FLORA pikselləri, WS2811 sürücüləri) // NEO_GRB Piksellər GRB bit axını üçün bağlanmışdır (əksər NeoPixel məhsulları) // NEO_RGB Piksellər RGB bit axını üçün bağlanmışdır (v1 FLORA pikselləri), v2 deyil) // NEO_RGBW Pikselləri RGBW bit axını (NeoPixel RGBW məhsulları) üçün qurulmuşdur // setup () funksiyası-başlanğıcda bir dəfə işləyir -------------------- ------------ void setup () {// Bu xətlər xüsusi olaraq Adafruit Trinket 5V 16 MHz-i dəstəkləmək üçündür. // İstənilən digər lövhə, bu hissəni silə bilərsiniz (ancaq zərər vermədən): #if müəyyən edilmişsə (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Trinket-ə məxsus kodun SONU. strip.begin (); // NeoPixel zolaq obyektini (TƏLƏB EDİR) strip.show () başlatın; // ASAP strip.setBrightness (50) ən qısa zamanda bütün pikselləri söndürün; // BRIGHTNESS-i təxminən 1/5 (max = 255) olaraq təyin edin} // loop () funksiyası-lövhə açıq olduğu müddətdə dəfələrlə işləyir --------------- void loop () {// Şeridin uzunluğu boyunca müxtəlif rənglərlə doldurun… colorWipe (strip. Color (255, 0, 0), 50); // Qırmızı colorWipe (strip. Color (0, 255, 0), 50); // Yaşıl colorWipe (strip. Color (0, 0, 255), 50); // Mavi // Müxtəlif rənglərdə teatr effekti yaradın… TheaterChase (strip. Color (127, 127, 127), 50); // Ağ, yarım parlaqlıq teatrıChase (şerit. Color (127, 0, 0), 50); // Qırmızı, yarım parlaqlıq teatrıChase (şerit. Color (0, 0, 127), 50); // Mavi, yarı parlaq göy qurşağı (10); // Bütün zolaq teatrı boyunca axan göy qurşağı dövrüChaseRainbow (50); // Gökkuşağı ilə gücləndirilmiş teatrChase variantı} // Cizgi effektləri yaratmaq üçün özümüzə aid bəzi funksiyalar ----------------- // Şerit piksellərini bir-birinin ardınca rənglə doldurun. Zolaq təmizlənməyib // əvvəlcə; hər şey piksel ilə piksel əhatə olunacaq. Rənglə keçin // ("strip" zəng edərək əldə edə biləcəyiniz bir "paketlənmiş" 32 bitlik dəyər olaraq yuxarıdakı loop () funksiyasında göstərildiyi kimi rəng (qırmızı, yaşıl, mavi), // və piksellər arasındakı gecikmə müddəti (milisaniyələrdə). void colorWipe (uint32_t color, int wait) {for (int i = 0; i strip.setPixelColor (i, color); // Pixelin rəngi (RAM -da) strip.show (); // Zolağı gecikməyə uyğun olaraq yeniləyin (gözləyin); // Bir anlıq durun}} // Teatr marquee üslubunda işıqları təqib edin. Rənglə keçin (32 bitlik dəyər, // a la strip. Yuxarıda qeyd edildiyi kimi rəng (r, g, b)), və çərçivələr arasında gecikmə müddəti (ms olaraq) // boşluq teatrChase (uint32_t rəng, int gözləmə) {for (int a = 0; a <10; a ++) {// 10 dəfə təkrarlayın… üçün (int b = 0; b <3; b ++) {// 'b' 0 -dan 2 -ə qədər sayılır… strip.clear (); // RAM -dakı bütün pikselləri 0 (off) olaraq təyin edin // 'c' 'b' dən sonuna qədər sayar zolağı 3 addımda… üçün (int c = b; c strip.setPixelColor (c, rəng); // 'c' pikselini 'rəng' dəyərinə təyin edin} strip.show (); // Yeni məzmun gecikmə ilə zolağı yeniləyin (gözləyin); // Bir anlıq durun}}} // Bütün zolaq boyunca göy qurşağı dövrü. Çərçivələr arasında gecikmə müddətini (ms olaraq) keçirin. void göy qurşağı (int gözləyin) {// İlk pikselin tonu 5 tam döngə keçir rəng çarxı. // Rəng təkərinin 65536 diapazonu var, amma bu Tamam yuvarlansaq, onda // yalnız 0 -dan 5*65536 -a qədər sayın. FirstPixelHue -a hər dəfə 256 əlavə etmək // bu xarici döngədən 5*65536/256 = 1280 keçid edəcəyimiz deməkdir: for (long firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {for (int i = 0; I // Zolağın uzunluğu boyunca // rəng çarxının (65536 aralığında) bir tam inqilabını etmək üçün piksel hue miqdarını // (strip.numPixels () addımlar): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () 1 və ya 3 arqument götürə bilər: bir rəng (0 ilə 65535) və ya // isteğe bağlı olaraq doyma və dəyər (parlaqlıq) əlavə edin (hər biri 0 ilə 255 arasında). // Burada yalnız bir arqumentli rəng variantından istifadə edirik. Nəticə // hər bir pikseldə təyin etməzdən əvvəl 'doğru "rənglər təmin etmək üçün strip.gamma32 () vasitəsilə ötürülür // strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue))))}}} strip.show (); // Yeni məzmunla zolağı yeniləyin (gözləyin); // Bir anlıq durun}} // Göy qurşağı ilə gücləndirilmiş teatr marquee. Gecikmə vaxtını keçin (ms) çərçivələr arasında. void teatrChaseRainbow (int wait) {i nt firstPixelHue = 0; // İlk piksel (int a = 0; a <30; a ++) üçün qırmızı (hue 0) ilə başlayır {// (int b = 0; b RGB strip.setPixelColor (c, color); / üçün 30 dəfə təkrarlayın. / / 'C' pikselini 'rəng' dəyərinə təyin edin} strip.show (); // Zolağı yeni məzmunla yeniləyin (gözləyin); // Bir an əvvəl durunPixelHue += 65536 /90; // Rəng çarxının bir dövrü 90 çərçivədən çox}}}

Addım 14: SHU Nümunə Kodu

Image
Image

Kodumuz bütün Ledləri işə saldıqlarından əmin olmaq üçün bir -bir işə salır:

// Bu nümunə 500 pikselin Qırmızı olaraq göstərilməsi arasında keçəcək

#daxil uint16_t PixelCount = 500; // bu nümunə 4 piksel qəbul edir, onu kiçiltmək uğursuzluğa səbəb olacaq uint8_t PixelPin = 13; // bunu Esp8266 üçün nəzərə alınmayan düzgün pinlə qurduğunuzdan əmin olun

#define colorSaturation 128 // üç elementli piksel, fərqli qaydada və sürətdə

NeoPixelBus zolağı (PixelCount, PixelPin);

// NeoPixelBus zolağı (PixelCount, PixelPin); RgbColor qırmızı (0, colorSaturation, 0); RgbColor yaşıl (colorSaturation, 0, 0); RgbColor mavi (0, 0, colorSaturation); RgbColor ağ (colorSaturation); RgbColor qara (0); HslColor hslRed (qırmızı); HslColor hslGreen (yaşıl); HslColor hslBlue (mavi); HslColor hslWhite (ağ); HslColor hslBlack (qara); void setup () {Serial.begin (115200) while (! Serial); // Serial.println () seriyalı əlavəni gözləyin; Serial.println ("Başlanır …"); Serial.flush (); // bu, bütün neopikselləri söndürülmüş bir dövlət zolağına sıfırlayır. Begin (); zolaq göstər (); Serial.println (); Serial.println ("Qaçır…"); } void loop () {gecikmə (100); Serial.println ("Rənglər G, B, W …"); for (int i = 0; i <= 499; i ++) {// rəngləri təyin edin, // sıraya uyğun gəlmirlərsə, NeoGrbFeature xüsusiyyət şeridindən istifadə etməlisiniz. SetPixelColor (i, qırmızı); strip. Show (); gecikmə (100); strip. SetPixelColor (i, hslRed); zolaq göstər (); gecikmə (100); }}

Addım 15: Kodun ESP32 -yə yüklənməsi

Vacib:

Hər hansı bir mikro nəzarətçiyə kod yükləyə bilmək üçün proqramlaşdırma rejimində olmalıdır. Əksəriyyəti bunu avtomatik olaraq yerinə yetirin və proqramda yükləmə düyməsini basmaq kifayətdir.

ESP32 kodumuz göndərilərkən proqramlaşdırma düyməsini basıb saxlamağınızı tələb edir. Kod yükləndikdən sonra sıfırlama düyməsinə bir dəfə basaraq onu da sıfırlamalısınız.

ESP32 proqramlaşdırma düyməmiz solda, sıfırlama düyməsi sağdadır. Başqa bir mikro nəzarətçiniz varsa, təlimatınıza baxın.

Addım 16: Sitatlar

Bu təlimat aşağıdakı dərslərin köməyi ilə hazırlanmışdır:

randomnerdtutorials.com/installing-the-esp…

ESP32 -ni Arduino IDE -yə quraşdırmaq üçün istifadə olunur.

Müəlliflər:

Nathaniel Barone, Gabriel Castro

Redaktor:

Cedric Bleimling

Tövsiyə: