İçindekiler:

ESP32 ile 500 LED Duvar: 16 Adım
ESP32 ile 500 LED Duvar: 16 Adım

Video: ESP32 ile 500 LED Duvar: 16 Adım

Video: ESP32 ile 500 LED Duvar: 16 Adım
Video: ESP32 [не]быстрый старт 2024, Kasım
Anonim
ESP32 ile 500 LED Duvar
ESP32 ile 500 LED Duvar

Herkese selam! Bu eğitimin sonunda kendi LED duvarınızı nasıl oluşturacağınızı öğreneceksiniz.

Bu eğitim, Sacred Heart Üniversitesi'nde sunulan bir yaz programına dayanmaktadır.

İyi eğlenceler!

Gereçler

Aşağıda listelenen sarf malzemeleri.

Adım 1: Sarf Malzemeleri

Gereçler
Gereçler

Led Duvarımızı tamamlamak için ihtiyacımız olan her şeyi toplayarak başlayalım:

(Linkler 7/10/2019 tarihinde oluşturulmuştur)

Arduino IDE Yazılımı

ESP32 Mikro Denetleyici

LED Piksel Işık

Güç kaynağı

Güç kablosu

Tel Sıyırma Aracı

Breadboard Jumper Kabloları

Elektrik kablosu

Adım 2: LedWall'ınız için Doğru Güç Kaynağını Belirleme

Hangi güç kaynağının sizin için en iyi olduğunu bulmanın basit bir matematiksel yolu var.

Ohm'un güç yasasını kullanıyoruz: P = IxV (Güç = Yoğunluk x Gerilim)

Voltaj ledlerimiz tarafından belirlenir: bu durumda 5V.

Yoğunluk donanıma bağlıdır, tek bir Led 30mA tüketir.

50 Led'lik her şerit bu nedenle 50 x 30mA = 1250mA = 1.25A tüketir.

500 Led duvarımız bu nedenle (10 şerit): 12.5A'nın 10 katını tüketir.

Güç kullanımı daha sonra Ledler için 5V x 12,5A = 62,5W'dir.

Tabii ki, Led'lerin üstünde ESP'yi ve devrenizin diğer tüm öğelerini hesaba katmanız gerekir.

60A güç kaynağımız var, ihtiyacımız olandan çok daha fazlasına sahibiz.

Adım 3: Güç Kablosu

Image
Image

Güç kaynağımız kablo konektörleriyle birlikte gelir. 110V'luk bir fişe bağlamak için bir güç kablosunu uyarlamamız gerekiyor.

- Güç kablosundan dişi konnektörü kesin. Erkek kısmı tutacağız, aksi takdirde NEMA 5-15P olarak bilinecek.

- Tüm kablolarda yaklaşık 3 mm bakır görünecek şekilde kabloyu soyun.

İşte kabloların nasıl soyulacağına dair hızlı bir video eğitimi:

Adım 4: Güç Kaynağını Kablolama

ESP32S'ye Güç Verme
ESP32S'ye Güç Verme

Artık güç kaynağımızı bağlamaya hazırız!

Üzerinde çalışırken her zaman güç kaynağının fişini çekin.

kablolama

  • Siyah kablo (Faz), güç kaynağının 'L' pinine bağlanır
  • Beyaz kablo (Nötr) güç kaynağının 'N' pinine bağlanır
  • Yeşil kablo, güç kaynağının 'Toprak' pinine bağlanır

(Güç kablonuzun iç kabloları bizimkiyle aynı renkte değilse, dikkatli olun ve şemalara çevrimiçi bakın.)

Test yapmak

Bilgisayarın güç kablosunu herhangi bir elektrik prizine takın. Güç kaynağındaki yeşil LED yanmalıdır.

Adım 5: ESP32S'ye Güç Verme

ESP'nize baktığınızda, her pinin yanında etiketler olmalıdır. Eğer etiketlenmemişse, bireysel ESP'nizin 'pinout'una çevrimiçi olarak bakabilirsiniz.

Bir erkek-dişi devre tahtası atlama kablosu veya bir elektrik kablosu kullanarak şunları bağlayın:

  • Güç kaynağının '+V' ucuna '5V' ESP32S pimi (yukarıdaki fotoğrafta turuncu)
  • Güç kaynağının '-V' bölümüne 'GND' ESP32S pimi (yukarıdaki fotoğrafta siyah)

(Bazı ESP'lerde '5V' pini bunun yerine 'VCC' olarak etiketlenmiştir, ikisi de aynı anlama gelir.)

Lütfen, ESP'nizin bizim kullandığımızdan farklı bir pin çıkışına sahip olabileceğini unutmayın. Bu nedenle, kablolarınızı yukarıdaki resimdekinden farklı bir yere bağlıyor olabilirsiniz. Doğru pinlere (5V ve) bağladığınız sürece GND), panodaki fiziksel konumun önemi yoktur.

TestingGüç kaynağınızı tekrar takın ve ESP'nizde bir LED göstergesi varsa (çoğu var), gücün ESP'ye gönderildiğini belirtmek için yanacaktır. Tebrikler!

Adım 6: LED Işık Şeritlerine Güç Verme

LED Işık Şeritlerine Güç Verme
LED Işık Şeritlerine Güç Verme

Elektrik kablolarının kullanılması:

- LED Işık Şeridi'nin kırmızı kablosunu güç kaynağındaki V+'ya bağlayın.

- LED Işık Şeridi'nin mavi kablosunu güç kaynağındaki V-'ye bağlayın.

Adım 7: ESP32'yi LED Işık Şeritlerine Bağlama

ESP32'miz, her bir led'e bağlı olan WS2811 sürücüsüne olması gereken renk ve parlaklığı bildirir. Bunu yapmak için, ESP32'mizin şeritlere giden bir "veri" kablosuna ihtiyacı vardır.

Led şeritleri 3 telli bir konektörle gelir:

- Kırmızı: Güç- Mavi: Nötr- Beyaz: Veri

Beyaz Led şerit kabloyu ESP üzerindeki dijital pin'e bağlayalım. Seçtiğiniz PIN numarasını daha sonra kodda seçmemiz gerekeceğinden lütfen unutmayınız. Bizimkini pin 13'e taktık.

Adım 8: Bilgisayarı Hazırlama: C2102 Sürücüsü

Artık donanımımız kablolu olduğundan, test etmek için ilk kodumuzu yüklemek istiyoruz. Varsayılan olarak, Windows veya MacO'lar ESP32'miz ile iletişim kuramaz. Bunu yapmak için, ESP USB iletişim çipi için bir "sürücü" indirmemiz gerekiyor: C2102.

Bu sürücü indirilmeli ve kurulmalı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:

(7/10/2019 tarihli bağlantılar)

Adım 9: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 1

Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 1
Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 1
Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 1
Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 1

ESP32'mizi Arduino yazılımı ile kullanabilmemiz için önce tanındığından emin olmamız gerekiyor. Varsayılan olarak, Arduino yazılımı ESP32'miz için kod derleyemez, hadi şunu düzeltelim:

Adım 1: Yöneticiye pano ekleme

1 - Arduino'da Dosya >> Tercihler seçeneğine tıklayın

2- "Ek Pano Yöneticisi URL'leri" alanına aşağıdaki bağlantıyı kopyalayın:

Adım 10: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 2

Arduino Yazılımı - ESP32 Desteği Ekleme - 2. Adım
Arduino Yazılımı - ESP32 Desteği Ekleme - 2. Adım
Arduino Yazılımı - ESP32 Desteği Ekleme - 2. Adım
Arduino Yazılımı - ESP32 Desteği Ekleme - 2. Adım

Arduino yazılımı artık daha fazla kart "bildiğine" göre, ESP32 desteğimizi yükleyelim

Adım 2: ESP32 desteğini yükleme

1 - Üst menüde şunları seçin: Araçlar >> Pano >> Pano Yöneticisi

2 - Bir pencere görünecektir. "ESP32"yi bulmak için sağ üst köşede bulunan arama kutusunu kullanın.

3 - Espressif tarafından yapılanı bulun. Yükle. (resme bakın)

Adım 11: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 3

Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 3
Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 3

Artık Arduino yazılımı bizim ESP32'miz ile haberleşebildiğine göre, onu bilgisayara bağlayalım ve her şeyin çalıştığını doğrulayalım.

1 - ESP32 platformunda çalıştığımızdan emin olalım:

Araçlar >> Anakart >> ESP32 Geliştirme Modülü'ne tıklayın

1- Arduino yazılımının ESP'miz ile nasıl iletişim kuracağını bildiğinden emin olalım:

Araçlar >> Bağlantı Noktası'na tıklayın ve bu kabloyu takarken çıkanı seçin.

Önemli:

Kodu ESP'nize yüklerken herhangi bir sorun yaşıyorsanız, önce bu iki menüyü kontrol edin. Bağlantı noktası bir onay işaretiyle seçilmezse, Arduino yazılımı onunla iletişim kurmaz.

Adım 12: Arduino IDE'ye Kitaplıklar Ekleme

Arduino IDE'ye Kitaplıklar Ekleme
Arduino IDE'ye Kitaplıklar Ekleme

Şimdi Led Duvarımızı test etmemizi sağlayacak bir kütüphane ekleyeceğiz!

1- Araçlar >> Kitaplıkları Yönet'e tıklayın.

2- Sağ üst köşede NeoPixelBus'u arayın. "NeoPixelBus by Makuna"yı bulun, kurun (resme bakın)

Potansiyel diğer ilginç Kütüphaneler:(Bu eğitim için gerekli değildir)

- NeoMatrix

- HızlıLed

- Artnet

- GFX

Adım 13: İlk Kod: Dizi Testi

İlk kodumuz Kütüphaneden bir örnektir.

Aşağıdaki kodu kopyalayabilir / yapıştırabilir veya üzerine tıklayabilirsiniz:

Dosya >> Örnekler >> Adafruit NeoPixelBus >> Strandtest

Lütfen LED_PIN'inizi, led'lerinizi fiziksel olarak bağlamak için kullandığınızla değiştirdiğinizden emin olun. Bu eğitim boyunca 13 kullandık.

Ayrıca şerit boyutunu LED_COUNT değişkeni ile uyarladığınızdan emin olun.

// Temel bir günlük LED Striptest programı.

#include#ifdef _AVR_ #include // 16 MHz Adafruit Biblo için gerekli #endif // Arduino üzerindeki hangi pin NeoPixels'e bağlı? #define LED_PIN 13 // Arduino'ya kaç NeoPiksel bağlı? #define LED_COUNT 500 // NeoPixel şerit nesnemizi bildirin: Adafruit_NeoPixel şeridi(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argüman 1 = NeoPixel şeridindeki piksel sayısı // Argüman 2 = Arduino pin numarası (çoğu geçerlidir) // Argüman 3 = Piksel tipi bayraklar, gerektiği gibi ekleyin: // NEO_KHZ800 800 KHz bit akışı (çoğu NeoPixel ürünü w/ WS2812 LED'ler) // NEO_KHZ400 400 KHz (klasik 'v1' (v2 değil) FLORA pikselleri, WS2811 sürücüleri) // NEO_GRB Pikselleri, GRB bit akışı (çoğu NeoPixel ürünü) için kablolanmıştır // NEO_RGB Pikseller, RGB bit akışı (v1 FLORA pikselleri) için kablolanmıştır, v2) değil // NEO_RGBW Pikseller RGBW bit akışı (NeoPixel RGBW ürünleri) için kablolanmıştır // setup() işlevi -- başlangıçta bir kez çalışır -------------------- ------------ void setup() { // Bu satırlar özellikle Adafruit Biblo 5V 16 MHz'i desteklemek içindir. // Başka herhangi bir kart, bu bölümü kaldırabilirsiniz (ancak bırakmanın zararı olmaz): #ifdefined(_AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // Bibloya özel kodun sonu. strip.begin(); // BAŞLAT NeoPixel şerit nesnesi (GEREKLİ) strip.show(); // En kısa sürede tüm pikselleri KAPATIN strip.setBrightness(50); // PARLAKLIK'ı yaklaşık 1/5'e ayarlayın (maks = 255) } // loop() işlevi -- kart açık olduğu sürece tekrar tekrar çalışır --------------- void loop() { // Şerit boyunca çeşitli renklerde doldurun… colorWipe(strip. Color(255, 0, 0), 50); // Red colorWipe(strip. Color(0, 255, 0), 50); // Green colorWipe(strip. Color(0, 0, 255), 50); // Mavi // Çeşitli renklerde tiyatro efekti yapın… TheaterChase(strip. Color(127, 127, 127), 50); // Beyaz, yarı parlaklık tiyatroChase(strip. Color(127, 0, 0), 50); // Kırmızı, yarı parlaklık tiyatroChase(strip. Color(0, 0, 127), 50); // Mavi, yarı parlaklık gökkuşağı(10); // Tüm şerit boyunca akan gökkuşağı döngüsü TheaterChaseRainbow(50); // Gökkuşağı ile geliştirilmiş tiyatroChase varyantı } // Animasyonlu efektler oluşturmak için kendimize ait bazı işlevler ----------------- // Şerit piksellerini birbiri ardına bir renkle doldurun. Şerit temizlenmez // önce; oradaki her şey piksel piksel kapsanacak. color ile // (yukarıdaki loop() işlevinde gösterildiği gibi // strip. Color(red, green, blue) çağırarak alabileceğiniz tek bir 'paketlenmiş' 32 bitlik değer olarak) // ve pikseller arasındaki gecikme süresi (milisaniye cinsinden). void colorWipe(uint32_t color, int wait) { for(int i=0; i strip.setPixelColor(i, color); // Pikselin rengini (RAM'de) ayarla strip.show(); // Stripi gecikmeyle eşleşecek şekilde güncelle(wait); // Bir an duraklat } } // Tiyatro-marquee tarzı takip ışıkları. Bir renk (32-bit değer, // a la strip. Color(r, g, b) yukarıda belirtildiği gibi), ve çerçeveler arasında bir gecikme süresi (ms olarak) // void TheaterChase(uint32_t color, int wait) { for(int a=0; a<10; a++) { // 10 kez tekrarla… for(int b=0; b<3; b++) { // 'b' 0'dan 2'ye kadar sayar… strip.clear(); // RAM'deki tüm pikselleri 0'a ayarlayın (kapalı) // 'c', 'b'den sonuna kadar sayar 3'lü adımlarla şeritleyin… for(int c=b; c strip.setPixelColor(c, color); // 'c' pikselini 'color' değerine ayarlayın } strip.show(); // Şeridi yeni içerik gecikmesiyle güncelleyin (bekle); // Bir an için duraklat } } } // Tüm şerit boyunca gökkuşağı döngüsü. Çerçeveler arasında gecikme süresi (ms olarak) geç. void gökkuşağı(int bekle) { // İlk pikselin tonu, 5 tam döngü boyunca çalışır renk çarkı. // Renk çarkının aralığı 65536'dır ancak Tamam, eğer yuvarlarsak, // sadece 0'dan 5*65536'ya kadar sayın. FirstPixelHue'ya her seferinde 256 eklemek // bu dış döngüden 5*65536/256 = 1280 geçiş yapacağımız anlamına gelir: for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) { for(int i= 0; I // Piksel tonunu şeridin uzunluğu boyunca // renk tekerleğinde (65536 aralığı) bir tam dönüş yapacak miktarda kaydırır // (strip.numPixels() adımları): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels()); // strip. ColorHSV() 1 veya 3 argüman alabilir: bir hue (0 ila 65535) veya // isteğe bağlı olarak doygunluk ve değer (parlaklık) ekleyin (her biri 0 ila 255). // Burada sadece tek argümanlı renk tonu değişkenini kullanıyoruz. Sonuç // 'daha doğru' renkler sağlamak için strip.gamma32() içinden geçirilir // her piksele atamadan önce: strip.setPixelColor(i, strip.gamma32 (strip. ColorHSV(pixelHue))); } strip.show(); // Stripi yeni içeriklerle güncelle gecikme(bekle); // Bir an için duraklat } } // Gökkuşağı ile geliştirilmiş sinema çerçevesi. Gecikme süresini geç (içinde) ms) çerçeveler arasında void TheaterChaseRainbow(int wait) { i nt ilkPixelHue = 0; // İlk piksel kırmızı (hue 0) ile başlar for(int a=0; a<30; a++) { // 30 kez tekrarlayın… for(int b=0; b RGB strip.setPixelColor(c, color); / / 'c' pikselini 'color' değerine ayarlayın } strip.show(); // Stripi yeni içeriklerle güncelle gecikme(bekle); // Önce bir an duraklatPixelHue += 65536 / 90; // Bir renk tekerleği döngüsü 90'dan fazla kare } } }

Adım 14: SHU Örnek Kodu

Image
Image

Kodumuz, çalıştıklarından emin olmak için tüm Led'leri tek tek açar:

// Bu örnek, 500 pikselin Kırmızı olarak gösterilmesi arasında geçiş yapacak

#includeconst uint16_t PixelCount = 500; // bu örnekte 4 piksel olduğu varsayılır, daha küçük yapmak hataya neden olur const uint8_t PixelPin = 13; // bunu doğru pine ayarladığınızdan emin olun, Esp8266 için yok sayılır

#define colorSaturation 128// farklı düzen ve hızlarda üç elemanlı piksel

NeoPixelBus şeridi (PixelCount, PixelPin);

//NeoPixelBus şeridi(PixelCount, PixelPin); RgbColor red(0, colorDoygunluk, 0); RgbColor yeşil(renkDoygunluğu, 0, 0); RgbColor blue(0, 0, colorDoygunluk); RgbColor beyaz(renkDoygunluğu); RgbColor siyah (0); HslColor hslRed(kırmızı); HslColor hslGreen(yeşil); HslColor hslBlue(mavi); HslColor hslBeyaz(beyaz); HslColor hslBlack(siyah); void setup() { Serial.begin(115200) while (!Serial); // seri eklemeyi bekle Serial.println(); Serial.println("Başlatılıyor…"); Seri.flush(); // bu, tüm neopikselleri kapalı durum şeridine sıfırlar. Begin(); şerit. Göster(); Seri.println(); Serial.println("Çalışıyor…"); } geçersiz döngü() { gecikme(100); Serial.println("Renkler R, G, B, W…"); for(int i = 0; i <=499;i++){ // renkleri ayarlayın, // sırayla uyuşmuyorlarsa NeoGrbFeature özellik şeridini kullanmanız gerekir. SetPixelColor(i, red);strip. Show (); gecikme(100); strip. SetPixelColor(i, hslRed); şerit. Göster(); gecikme(100); }}

Adım 15: Kodu ESP32'ye Yükleme

Önemli:

Herhangi bir mikro denetleyiciye kod yükleyebilmek için programlama modunda olması gerekir. Bunu çoğu otomatik olarak yapar ve tek yapmanız gereken yazılımda yükle'yi tıklamaktır.

ESP32'miz kod gönderilirken programlama butonuna basılı tutmanızı gerektirir. Ayrıca kod yüklendikten sonra reset butonuna bir kez basarak resetlemeniz gerekir.

ESP32'mizin programlama butonu solda, reset butonu sağda bulunmaktadır. Başka bir mikro denetleyiciniz varsa lütfen kılavuzunuza bakın.

Adım 16: Alıntılar

Bu talimat, aşağıdaki öğreticilerin yardımıyla yapılmıştır:

randomnerdtutorials.com/installing-the-esp…

ESP32'yi Arduino IDE'ye kurmak için kullanılır.

Yazarlar:

Nathaniel Barone Gabriel Castro

Editör:

Cedric Bleimling

Önerilen: