Mündəricat:
- Təchizat
- Addım 1: Təchizat
- Addım 2: LedWall üçün Doğru Güc Təchizatının Müəyyən edilməsi
- Addım 3: Güc Kabeli
- Addım 4: Güc Təchizatını Bağlamaq
- Addım 5: ESP32S -ə qoşulma
- Addım 6: LED İşıq Şeritlərini Gücləndirin
- Addım 7: ESP32 -ni LED işıq şeridlərinə bağlayın
- Addım 8: Kompüterin Hazırlanması: C2102 Sürücüsü
- Addım 9: Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 1
- Addım 10: Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 2
- Addım 11: Arduino Proqramı - ESP32 dəstəyi əlavə edin - Addım 3
- Addım 12: Arduino IDE -yə Kitabxanalar əlavə edin
- Addım 13: Birinci Kod: Strand Testi
- Addım 14: SHU Nümunə Kodu
- Addım 15: Kodun ESP32 -yə yüklənməsi
- Addım 16: Sitatlar
Video: ESP32 ilə 500 LED Divar: 16 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
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
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
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
İ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
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ı 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
İ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
İ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
İ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
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ə:
Əl divar saatı ilə oynamaq: 14 addım
Əl Divar Saatı ilə oynamaq: Elektron əl divar saatı (kommersiya markalı kvarts) hazırda xüsusi bir şey deyil. Bir çox mağazada almaq olar. Bəzilərində son dərəcə ucuzdur; qiyməti təxminən 2 avro (50CZK) ilə. Bu aşağı qiymət, bu mövzuya daha yaxından baxmaq üçün motivasiya ola bilər
Uzaqdan İdarəetmə ilə İşıqlandırıcı İşıqlar - Mövcud Divar Açarları İşini Davam Edir: 8 Addım
Uzaqdan İdarəetmə ilə İşıqlandırma İşıqları - Mövcud Divar Açarları İşini davam etdirin: 4 Oktyabr 2017 -ni Yeniləyin - Uzaqdan İdarə Edilən İşıq Açarına baxın - Yeniləşdirmə. İşıq Açarı Hələ Çalışır, Təkmilləşdirilmiş Bluetooth Aşağı Enerji (BLE) versiyası üçün Əlavə Yazı yoxdur. 8 Noyabr 2016 -cı il Yeniləndi - Yenilənmiş Fan Taymerləri layihəsində edilən dəyişikliklərlə yeniləndi
Divar Saatı ilə Möhtəşəm Layihə: 11 addım
Divar Saatı ilə Möhtəşəm Layihə: Salam Dostlar, Bu blog bu blogda möhtəşəm olacaq, çünki Köhnə Divar saatından istifadə edərək inanılmaz bir LED effekti dövrəsi yaradacağam
ESP32 ilə PWM - Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: 6 addım
ESP32 ilə PWM | Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: Bu təlimatlarda Arduino IDE istifadə edərək ESP32 ilə PWM siqnallarının necə yaradılacağını görəcəyik. PWM əsasən hər hansı bir MCU -dan analoq çıxışı yaratmaq üçün istifadə olunur və bu analog çıxış 0V ilə 3.3V arasında ola bilər (esp32 vəziyyətində) & dan
Pi Zero W ilə Dakboard Divar Ekranı: 6 addım (şəkillərlə)
Pi Zero W ilə Dakboard Divar Ekranı: İT sahəsində çalışıram. Çox vaxt köhnə dəstini çıxarmağımızı istəyən müştərilərə müraciət edirik. Bu, adətən bizə bir yığın hurda qoyur və monitorlar boşa çıxan tapdığımız şeylərdən biridir. Evdə öz monitorlarımı təkmilləşdirmişdim və bu, köhnə cihazımı tərk etdi